一、let 声明的变量只在它所在的代码块有效 --(for循环的计数器) 1、for循环还有一个特别之处,就是设置循环变量的那部分是一个父作用域,而循环体内部是一个单独的子作用域。 2、不存在变量提升 <==> var命令会发生“变量提升”现象 3、暂时性死区,只要块级作用域内存在let命令,它所声 ...
分类:
其他好文 时间:
2019-11-16 10:34:42
阅读次数:
69
参考:https://www.jianshu.com/p/ac1787f6c50f 变量声明:const 与 let const:常量,必须初始化值 let:变量 格式:const 变量A = "值" let 变量B = "值" 作用域:两者都为块级作用域 模板字符串: 示例: 箭头函数: 特点:1 ...
分类:
编程语言 时间:
2019-11-07 10:05:19
阅读次数:
94
定义变量的方式: var 变量可以没有初始值,变量可以修改,变量可以覆盖,存在变量提升。 // 变量提升机制 let 块级作用域,不允许重复声明,不存在变量提升,值在当前作用域内生效,在使用未定义的变量会报错。 const 变量必须有初始值,变量值不可改变,变量值不可覆盖,只有在当前作用域内有效。变 ...
分类:
编程语言 时间:
2019-11-06 23:09:58
阅读次数:
260
块级作用域 ES5中只有全局作用域和函数作用域,没有块级作用域, 1 //内层变量可能覆盖外层变量 2 3 var tmp = new Date(); 4 5 function f() { 6 console.log(tmp); 7 if (false) { 8 var tmp = 'hello w ...
分类:
其他好文 时间:
2019-11-06 23:01:40
阅读次数:
120
1,const 和 let let表示声明局部变量,而const表示声明常量,两者都为块级作用域; const 声明的变量都会被认为是常量,意思就是它的值被设置完成后就不能再修改了 2,模板字符串 在ES6之前,我们往往这么处理模板字符串: 通过“\”和“+”来构建模板 而对ES6来说 // thi ...
分类:
其他好文 时间:
2019-11-04 15:14:33
阅读次数:
96
1.变量:var 1.可以重复声明2.无法限制修改3.没有块级作用域 let1不能重复声明2,变量——可以修改(赋值)3.块级作用域 const1.不能重复声明2.常量——不可以修改(赋值)3.块级作用域 ...
分类:
其他好文 时间:
2019-11-03 16:38:48
阅读次数:
70
1.const定义的变量不可以修改,而且必须初始化。 2.var定义的变量可以修改,如果不初始化会输出undefined,不会报错。 3.let是块级作用域,函数内部使用let定义后,对函数外部无影响。 ...
分类:
Web程序 时间:
2019-10-28 11:03:46
阅读次数:
75
6.JavaScript作用域 作用域 概念 简单地说,作用域就是在上下文中,变量与函数的可访问范围。它可以分为 块级作用域 和 函数作用域 。 作用 作用域控制着变量与函数的可见性和生命周期。 作用域链 概念 作用域链可以理解为一组对象列表,包含父级和自身的变量对象,因此我们便能通过作用域链访问到 ...
分类:
编程语言 时间:
2019-10-27 12:37:19
阅读次数:
74
ES6:也就使es2015,这一版更新了非常重要的知识点,也是目前前端面试内容占比最多的一部分 1、let,const. 1.11块级作用域:见到这种变量首先想到的就是es6新添了一种作用域,块级作用域。而生效过程即使在有let和const存在就会有会计作用域,顾名思义就是在大括号里有作用域,即fo ...
分类:
其他好文 时间:
2019-10-25 14:55:07
阅读次数:
93
1. 没有块级作用域 在其他类C语言中,由花括号封闭的代码块都有自己的作用域(如果用ECMAScript的话来说,就是它们自己的执行环境), 所以支持根据条件来定义变量。 ES5: 这里是在一个if语句中定义了变量color。如果是在C、C++或Java中,color会在if语句执 行完毕后被销毁。 ...
分类:
其他好文 时间:
2019-10-24 13:18:33
阅读次数:
100