前言 javascript中没有块级作用域(es6以前),javascript中作用域分为函数作用域和全局作用域。并且,大家可以认为全局作用域其实就是Window函数的函数作用域,我们编写的js代码,都存放在Window函数内(这是个假设),也就是说javascript中只有函数作用域(前面假设做前 ...
分类:
编程语言 时间:
2017-01-03 12:06:54
阅读次数:
195
相信同学们在看见这个标题的时候就一脸懵逼了,什么?JS能常量定义?别逗我好吗?确切的说,JS当中确实没有常量(ES6中好像有了常量定义的关键字),但是深入一下我们可以发现JS很多不为人知的性质,好好利用这些性质,就会发现一个不一样的JS世界。 首先,在JS当中,对象的属性其实还含有自己的隐含性质,比 ...
分类:
编程语言 时间:
2016-12-31 18:18:02
阅读次数:
254
解构赋值的用途1.交换变量的值 2.从函数返回多个值 3.函数参数的定义4.提取json数据5.函数参数的默认值6.遍历Map结构7.输入模块的制定方法 ...
分类:
其他好文 时间:
2016-12-31 07:24:21
阅读次数:
189
函数参数的解构赋值 函数参数解构赋值的默认值 函数参数的解构赋值的默认值undefined ...
分类:
其他好文 时间:
2016-12-31 07:20:40
阅读次数:
202
1.let和const命令 1.es6新增了let和const命令,与var用法类似,但它声明的变量只在let所在的代码块内有效(块级作用域,es5只有全局和函数作用域) 2.不存在变量提升 变量提升的意思是把下边的东西提到上面,在JS中,就是把定义在后面的东西(变量或函数)提升到前面来定义。 eg ...
分类:
其他好文 时间:
2016-12-30 18:44:51
阅读次数:
154
1.let声明变量,va声明变量,而const声明的常量 2.let与var的区别 let可以让变量长期驻扎在内存当作 let的作用域是分块的,块内的变量不会覆盖块外的变量值。 { //(模)块1 let a = 1; if(true){ //(模)块2 let a = 2; } console.l ...
分类:
其他好文 时间:
2016-12-30 01:59:38
阅读次数:
154
const 就不用多说了,一个值一经初始化不再发生变化,就用 const定义,效率更高 let 的作用域是块级作用域和全局作用域,块级作用域就是{} 比如 for 循环最适合用 let,在 for(){} 之外就不存在你定义的变量了 var 的作用域是函数作用域和全局作用域,函数作用域是在一个函数内 ...
分类:
其他好文 时间:
2016-12-28 12:09:02
阅读次数:
214
function* 声明 function* 声明(function关键字后跟一个星号)定义一个generator(生成器)函数,返回一个Generator对象。 生成器是一种可以从中退出并在之后重新进入的函数。生成器的环境(绑定的变量)会在每次执行后被保存,下次进入时可继续使用。 调用一个生成器函 ...
分类:
编程语言 时间:
2016-12-27 23:05:59
阅读次数:
267
1.Set和WeakSet Set与数组相似,但是Set结构的成员必须是唯一的. WeakSet与对象类型,但是WeakSet结构的成员只能是对象 Set结构的实例属性和方法 属性: Set.prototype.constructor:构造函数 Set.prototype.size:返回Set实例的 ...
分类:
其他好文 时间:
2016-12-27 20:32:12
阅读次数:
190
一、变量提升 在ES6之前,JavaScript没有块级作用域(一对花括号{}即为一个块级作用域),只有全局作用域和函数作用域。变量提升即将变量声明提升到它所在作用域的最开始的部分。上个简历的例子如: 1 2 3 4 5 6 7 8 9 10 console.log(global); // unde ...
分类:
Web程序 时间:
2016-12-27 13:54:34
阅读次数:
232