2017-03-06 14:08:44
JavaScript函数式编程(二)
拖延症了好久,第二篇终于写出来了。 上一篇在这里: JavaScript函数式编程(一) 上一篇文章里我们提到了纯函数的概念,所谓的纯函数就是,对于相同的输入,永远会得到相同的输出,而且没有任何可观察的副作用,也不依赖外部环境的状态(我偷懒复制过来的)。 但是实际的编程中,特别是前端的编程范畴里,“不依赖外部环境”这个条件是根本不可能的,我们总是不可避免地接触到 DOM、AJAX 这些状态随时都在变化的东西。所以我们需要用更强大..
1125
2017-03-06 14:14:21
JavaScript函数式编程(一)
一、引言 说到函数式编程,大家可能第一印象都是学院派的那些晦涩难懂的代码,充满了一大堆抽象的不知所云的符号,似乎只有大学里的计算机教授才会使用这些东西。在曾经的某个时代可能确实如此,但是近年来随着技术的发展,函数式编程已经在实际生产中发挥巨大的作用了,越来越多的语言开始加入闭包,匿名函数等非常典型的函数式编程的特性,从某种程度上来讲,函数式编程正在逐步“同化”命令式编程。 JavaScript 作为一种典型的多范式编程语言,这两年随着..
1174
2017-03-06 14:24:34
JavaScript参数传递中值和引用的一种理解的代码实例
值(value)和引用(reference)是各种编程语言老生常谈的话题,js也不例外。 我将剖析一个例子的实际运行过程,跟大家分享我对js参数传递中的值和引用的理解。 参考官网数据类型的两种分类,本文将这两种分类简称为基本类型(boolean, null, undefined, string, number, symbol)和object类型。 首先,用一个example 演示参数传递的应用: var obj = {}; obj..
1292
2017-03-06 14:29:20
JavaScript面向对象精要(二)
JavaScript 面向对象精要(一) 构造函数和原型对象 构造函数也是函数,用new创建对象时调用的函数,与普通函数的一个区别是,其首字母应该大写。但如果将构造函数当作普通函数调用(缺少new关键字),则应该注意this指向的问题。 var name = 'Pomy'; function Per(){ console.log('Hello '+this.name); } var per1 = new Per(); //'H..
1300
2017-03-06 14:32:46
JavaScript 面向对象精要(一)
数据类型 在JavaScript中,数据类型分为两类: 原始类型 保存一些简单数据,如true,5等。JavaScript共有5中原始类型: boolean:布尔,值为true或false number:数字,值为任何整型会浮点数值 string:字符串,值为由单引号或双引号括出的单个字符或连续字符(JavaScript不区分字符类型) null:空类型,其仅有一个值:nulll undefined:未定义,其仅有一个值:u..
1335
2017-03-06 14:37:59
详细介绍有趣的JavaScript原生数组函数的代码示例
在JavaScript中,创建数组可以使用Array构造函数,或者使用数组直接量[],后者是首选方法。Array对象继承自Object.prototype,对数组执行typeof操作符返回object而不是array。然而,[] instanceof Array也返回true。也就是说,类数组对象的实现更复杂,例如strings对象、arguments对象,arguments对象不是Array的实例,但有length属性,并能通过索引取..
1757
2017-03-06 14:42:28
关于面试开发常用的 JavaScript 知识点总结
No1.语法和类型 1.声明定义 变量类型:var,定义变量;let,定义块域(scope)本地变量;const,定义只读常量。 变量格式:以字母、下划线“_”或者$符号开头,大小写敏感。 变量赋值:声明但未赋值的变量在使用时值为undefined,未声明的变量直接使用会抛异常。 未赋值变量作计算:结果为NaN。例如: var x, y = 1; console.log(x + y); //结果为NaN,因为x没有赋值。 2.作用域 ..
1540
2017-03-06 14:45:50
JavaScript 异步进化史的代码实例详细介绍
前言 JS 中最基础的异步调用方式是 callback,它将回调函数 callback 传给异步 API,由浏览器或 Node 在异步完成后,通知 JS 引擎调用 callback。对于简单的异步操作,用 callback 实现,是够用的。但随着负责交互页面和 Node 出现,callback 方案的弊端开始浮现出来。 Promise 规范孕育而生,并被纳入 ES6 的规范中。后来 ES7 又在 Promise 的基础上将 async ..
1047
2017-03-06 14:49:09
关于14 个折磨人的 JavaScript 面试题的代码示例详细分析
前端工程师有时候面试时会遇到一类面试官,他们问的问题对于语言本身非常较真儿,往往不是候选人可能期待的面向实际的问题(有些候选人强调能干活就行,至于知不知道其中缘由是无关痛痒的)。这类题目,虽然没有逻辑,但某种程度说,确实考察了候选人对于javascript这门语言的理解。 突然想到这个话题是无聊在翻自己的Github,看看以前都写过什么丑货。然后翻到了这篇解释Javascript quiz的文章quiz-legend,反正没事儿,就想..
1749
2017-03-06 14:56:05
详细介绍JavaScript数组中的22个常用方法的代码详细介绍
前面的话 数组总共有22种方法,本文将其分为对象继承方法、数组转换方法、栈和队列方法、数组排序方法、数组拼接方法、创建子数组方法、数组删改方法、数组位置方法、数组归并方法和数组迭代方法共10类来进行详细介绍 对象继承方法 数组是一种特殊的对象,继承了对象Object的toString()、toLocaleString()和valueOf()方法 【toString()】toString()方法返回由数组中每个值的字符串形式拼接而成的一个..
1561