et和const在{}内声明都会变为外部不能访问的值,但是const声明的是常量,也不能修改 函数是 JavaScript 中最常见的作用域单元。本质上,声明在一个函数内部的变量或函数会在所处的作用域中“隐藏”起来,这是有意为之的良好软件的设计原则。但函数不是唯一的作用域单元。块作用域指的是变量和函 ...
分类:
编程语言 时间:
2018-07-29 16:22:59
阅读次数:
169
1、let和const的相同点: ① 只在声明所在的块级作用域内有效。 ② 不提升,同时存在暂时性死区,只能在声明的位置后面使用。 ③ 不可重复声明。 2、let和const的不同点: ① let声明的变量可以改变,值和类型都可以改变;const声明的常量不可以改变,这意味着,const一旦声明,就 ...
分类:
其他好文 时间:
2018-07-27 19:21:12
阅读次数:
158
let实际上为 JavaScript 新增了块级作用域。 上面的函数有两个代码块,都声明了变量n,运行后输出 5。这表示外层代码块不受内层代码块的影响。如果两次都使用var定义变量n,最后输出的值才是 10。 ES6 允许块级作用域的任意嵌套。 上面代码使用了一个五层的块级作用域。外层作用域无法读取 ...
分类:
其他好文 时间:
2018-07-26 15:04:43
阅读次数:
134
声明变量的方式: var let const let 和 var的区别 var定义的变量是全局的会覆盖全局的定义 let定义的变量是局部的变量 let在一个作用域只能定义一次不能重复 ES5中只有全局作用域和函数作用域,并没有块级作用域。 请看下面的示例: var name = 'Q1mi' fun ...
分类:
其他好文 时间:
2018-07-23 22:45:55
阅读次数:
291
let和const 原先声明变量的形式 在es6之前,作用域只有全局作用域和函数作用域,没有块级作用域,所以考虑如下代码 我们本来想着用{}表示一块作用域,外面应该访问不到里面的变量,但是事实是var声明的变量泄漏到全局作用域了。所以引出let let有三个个特点: 不能重复赋值 作用域是局部作用域 ...
分类:
其他好文 时间:
2018-07-18 14:07:09
阅读次数:
222
一、变量 1.var关键字的弊端 var关键字的弊端:1.可以重复声明变量;2.无法限制变量修改;3.没有会计作用域,只有函数作用域。 惯用的解决办法是将onclick写进一个匿名函数。 2.let和const关键字 let和const关键字使得变量不可以被重复声明,且变量具有块级作用域。不同的是, ...
分类:
其他好文 时间:
2018-07-17 20:14:53
阅读次数:
227
1. const and let 除了函数作用域之外,增加了块级作用域和常量。const 定义的绑定不可以修改,let定义的绑定在{ }不能访问。之前的 var 如果不在函数作用域内,相当于定义了一个全局变量,并且有变量提升(将变量的声明提升至所在函数的最前面)。 2. 数组函数 新增了一些数组处理 ...
分类:
其他好文 时间:
2018-07-15 19:48:17
阅读次数:
173
1.const定义的变量不可以修改,而且必须初始化。 2.var定义的变量可以修改,如果不初始化会输出undefined,不会报错。 3.let是块级作用域,函数内部使用let定义后,对函数外部无影响。 ...
分类:
其他好文 时间:
2018-07-12 01:02:00
阅读次数:
136
函数和变量重名始终是一个令人头痛的问题,先讲变量吧,相信了解JS的朋友都知道,在JS中 是没有块级作用域的只有函数作用域,也就是说那些以大括号为界定符的代码块是管不住其中定义 的变量的作用域的,举例: 怎么解决? 一般来说有经验的程序员会尽量少的使用全局变量,尽可能使用局部变量,这不仅会减少变量重名 ...
分类:
编程语言 时间:
2018-07-06 01:47:31
阅读次数:
147
参考:阮一峰 http://es6.ruanyifeng.com/#docs/let 时间:2018-07-03 es6引入块级作用域 let:声明变量,与var有区别 1.以下介绍会与var进行对比 解析:a的作用域是块级作用域,a只在当前的代码块有作用,b是全局,所以显示如此 解析:let声明的 ...
分类:
其他好文 时间:
2018-07-03 20:05:17
阅读次数:
142