ES6的let命令】的更多相关文章

let与块级作用域 { var foo='foo'; let bar='bar'; } console.log(foo,'var'); //foo varconsole.log(bar ,'bar');//Uncaught ReferenceError: bar is not defined 在代码中,使用var申明的变量在代码块外面能被识别,但是let命令却不能被识别,这样就实现了js的块级作用域,我们在使用条件语句 循环语句等就会不担心变量污染的问题了,以下是两种写法等对比: es6: fo…
ES6新增了let命令,用来声明变量.它的用法类似于var. let和var声明变量的区别: 1.let声明的变量,只在let命令所在的代码块内有效,出了这个块级作用域就不起作用 先看一个例子: { let a=10; var b=1; } console.log(a); console.log(b); 上述例子运行结果如图: 以上例子中,分别用var和let声明了两个变量,然后在代码块之外调用这两个变量.let定义的a变量会报错 var声明的变量b会返回正确值.这表明,let声明的变量只在它所…
let命令 为es6新增命令,用来声明变量,类似于var,但是let所声明的变量,只在let命令所在的块级作用域内有效 块级作用域写法(ES6块级作用域允许任意嵌套): // 块级作用域写法 { let tmp = ...; ... } 块级作用域例1 for (let i = 0; i < 10; i++) { // ... } console.log(i);//ReferenceError: i is not defined 解析:上面代码中,i的作用域是for循环体内,在循环体外引用就会报…
一直以来以ecma为核心的js始终没有常量的概念,es6则弥补了这一个缺陷: const foo='foo'; foo='bar';//TypeError: Assignment to constant variable. 上例声明了一个基本类型的常量,如过试图修改初始值则会报错:如果是引用类型的值同样适用,但是有一点需要注意,举例说明: const foo=[]; foo=[1];//Assignment to constant variable. 正常报错,没毛病,再看: const foo…
今天看了看阮一峰的<ECMAScript 6入门>的let和const命令,看完let之后自己测试了一把,仿佛处在云里雾里之中.代码如下: "use strict"; let o = {}; for (let i=0; i<10; i++) { var j = i; console.log('for before ... i: ' + j); o[j] = function(){ i ++; console.log('func one ... i: ' + i); v…
1.作用域概念? 1.全局作用域 2.函数作用域 3.块级作用域(ES6新增) 2.如何使用let和const? 1.代码: 运行结果为1.将let改为var,发现结果不变. 代码: 发现报错!!!(未定义引用错误) 1.因为let声明的变量只在自己的块级作用域有效,for为一个块级作用域,声明的let在块级作用域之外不存在,其生命周期已结束,故访问(i)时报错. 2.ES6中强制开启严格模式,在严格模式下,变量未声明,不能引用. const: 1.输出3.1415926,const声明常量,不…
1.let命令所在的代码块内有效: 2.循环的计数器,就很合适使用let命令:(for循环还有一个特别之处,就是循环语句部分是一个父作用域,而循环体内部是一个单独的子作用域.) 例如:如下会输出十次sophie,表明for内部的i与循环里面的i不是通一个值 for (let i = 0; i < 10; i++) { let i = 'sophie'; console.log(i); }3.let声明的变量一定要在声明后使用,否则报错,这一点区别于var(var声明的变量可以再声明之前使用,提示…
本质 const实际上保证的,并不是变量的值不得改动,而是变量指向的那个内存地址所保存的数据不得改动. 对于简单类型的数据(数值.字符串.布尔值),值就保存在变量指向的那个内存地址,因此等同于常量. 但对于复合类型的数据(主要是对象和数组),变量指向的内存地址,保存的只是一个指向实际数据的指针,const只能保证这个指针是固定的(即总是指向另一个固定的地址),至于它指向的数据结构是不是可变的,就完全不能控制了.因此,将一个对象声明为常量必须非常小心. 基本用法 const PI = 3.1415…

es6

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>lcr</title> 1:引入的改变: script标签的type属性的值是module(或者traceur),而不是text/javascript <script type="module"> < /script&g…
来源:https://segmentfault.com/a/1190000005863641 let和const命令 ES6新增let命令,用于声明变量,是块级作用域. let声明的变量不会像var声明的变量发生“变量提升”现象,所以,变量一定要在声明后使用,不然就会报错. 暂时性死区:只要块级作用域内存在let命令,它所声明的变量就会“绑定”在这个区域,不再受外部的影响.即在代码块内,使用let命令声明变量之前,这个变量都是不可用的,这在语法上称为“暂时性死区”. ES6规定暂时性死区和不存在…