代码改变世界

[js高手之路] es6系列教程 - 函数的默认参数详解

2017-08-06 20:21 by ghostwu, 73 阅读, 收藏, 编辑
摘要: 在ES6之前,我们一般用短路表达式处理默认参数 短路表达式(就是上例中的 || )的运算规则是: var res = a || 20; 如果a是true 就返回a, 如果a是false就返回20; 上述例子中, 第八行代码,本意是输出0, 0, 结果0被当做false, 在传递参数0的时候,输出了后阅读全文

[js高手之路] es6系列教程 - 对象功能扩展详解

2017-08-06 10:31 by ghostwu, 115 阅读, 收藏, 编辑
摘要: 第一:字面量对象的方法,支持缩写形式 方法缩写规则: 在原来的基础上去掉 冒号 和 function关键字 第二:对象中的属性与变量名或者参数 同名的时候, 可以省略赋值的操作 上面例子中的写法,可以简写为: 如果同时出现同名参数和let定义的同名变量时候,会报语法错误,如果不知道为什么,请看下我之阅读全文

[js高手之路] es6系列教程 - 箭头函数详解

2017-08-05 17:27 by ghostwu, 151 阅读, 收藏, 编辑
摘要: 箭头函数是es6新增的非常有意思的特性,初次写起来,可能会觉得别扭,习惯之后,会发现很精简. 什么是箭头函数? 箭头函数是一种使用箭头( => )定义函数的新语法, 主要有以下特性: 不能通过new关键字调用 没有原型, 因为不能通过new调用,所以没有原型 没有this, super,argume阅读全文

最通俗易懂的javascript变量提升

2017-08-04 21:22 by ghostwu, 44 阅读, 收藏, 编辑
摘要: 在我没有讲什么是变量提升,以及变量提升的规则之前, 或者你没有学习过变量提升,如果按照现有的javascript理解, 对于上述的例子,你可能会认为第3行代码的输出结果应该是undefined, 因为第二行是var a; 声明变量,但是没有赋值,所以a的值是undefined, 但是正确的结果是gh阅读全文

[js高手之路] es6系列教程 - var, let, const详解

2017-08-04 16:58 by ghostwu, 61 阅读, 收藏, 编辑
摘要: 我们从es5的变量提升开始说起, 由于变量提升的原因, 上述程序, 在第2行和第7行都能访问到a的值, 只不过是undefined, 如果你不熟悉javascript这种变量的预解释机制,可能会认为第2行和第7行会报错, 只有flag为true的时候,变量a才声明了, 其实javascript在词法阅读全文

学生问的一道javascript面试题[来自腾讯]

2017-08-02 09:30 by ghostwu, 2241 阅读, 收藏, 编辑
摘要: 这是一道非常好的面试题, 考察以下知识点: 1,this的指向 2,原型(prototype)以及原型链 3,继承 4,引用 要解出这道题,要理解以下几句话就可以了: 1,每一个构造函数,都有一个原型[[prototype]]属性 指向构造函数的原型对象 2,每一个实例生成的时候,都会在内存中产生一阅读全文