[ES6] 22. Const】的更多相关文章

'const' keyword is for creating a read only variable, something you can never change once created. 'const' likes 'let' keyword alos has block scope. describe("using const", function(){ it("will make a variable read-only", function(){ c…
一直以来以ecma为核心的js始终没有常量的概念,es6则弥补了这一个缺陷: const foo='foo'; foo='bar';//TypeError: Assignment to constant variable. 上例声明了一个基本类型的常量,如过试图修改初始值则会报错:如果是引用类型的值同样适用,但是有一点需要注意,举例说明: const foo=[]; foo=[1];//Assignment to constant variable. 正常报错,没毛病,再看: const foo…
1.let命令:用法类似于var,但是所声明的变量,只在let命令所在的代码块有效. 例:var a = [ ]; for(var i=0;i<10;i++){ a[ i ] = function(){ console.log( i ); }; } a[ 6 ]( );     // 10 var a = [ ]: for(let i=0;i<10;i++){ a[ i ] = function(){ console.log( i ); }; } a[ 6 ]( );     // 6 这样子…
今天来总结一下ES6里面let与const的用法 先总体看一下ES6中的let都有哪些特性: let 特性 let声明的变量在js中不可以重复声明,防止变量的污染和覆盖 let声明的变量不涉及变量的提升,可以有效防止闭包问题 let声明的变量在块级作用域中有效 let声明的变量存在暂时性死区声明的变量在为执行到声明语句时,变量将会暂存在暂时性死区中,当执行完声明 语句时,将会从暂时性死区中将变量取出 1. 同名变量不可以重复声明 var a = 100; et b = 20; // 报错 2.…
ES6 中除了使用 var 定义变量,还有let.const,定义变量. function getValue(condition){ console.log(typeof value2); // undefined,与 if 语句中的 value2 不在同一个作用域中 //console.log(typeof v); //临时死区,需要先定义后使用,ReferenceError: v is not defined let v = "e"; let value1; // let valu…
ECMAScript 和 JavaScript的关系? 前者是后者的规格,后者是前者的实现. 符合ECMAScript 规格的还有 Flash 中的AcionScript 和 TypeScript. ES5中 只能用 var 定义变量,作用域在function中. ES6中 可以用 let 来定义变量,定义是块级作用域变量. let的声明范围就是{}内部. 循环语句中定义函数 , 此时 var 输出是10而不会是6,因为函数中的i 是全局作用域的i,定义其他函数的时候,扰动了i的值. 但是如果用…
https://blog.csdn.net/jin_doudouer/article/details/80493649 es6中新增了一个const.就是用来定义一个常量的.以前其实一直没有把这个放在 心上,觉得就是定义一个常量的,很easy,没有什么可以深入的. 问题来了: let obj = {'num1' : 20, 'num2' : 30}const obj1 = objconst num = obj.num1 obj.num1 = 40那么,试问这时候如果输出obj1 和 num的值,…
在es6中,引入了let和const关键字: 1.letES6 新增了let命令,用来声明变量.它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效. (1)在块级作用域里有效(比如循环遍历内部就可以用let定义变量) <script type="text/javascript"> { let a = 10; var b = 1; } console.log(b); console.log(a); </script> 报错:Reference…
JavaScript 严格模式(use strict) 严格模式下你不能使用未声明的变量. const c1 = 1; const c2 = {}; const c3 = []; 不能对c1的值进行再次的赋值: 也不能在对c2,c3进行赋值,但是可以改变c2的内容,因为c2是个对象,看例子 c2.p1 = 1; console.log(c2.p1)打印出来结果为1 同样,也可以往c3中添加元素,因为c3是个数组. const声明的变量与let声明的变量类似,它们的不同之处在于,const声明的变…
对比 声明方式 变量提升 作用域 初始值 重复定义const 否   块级 需要 不允许let   否     块级 不需要 不允许var 是    函数级 不需要 允许 变量提升:const 和 let 必须先声明再使用,不支持变量提升 console.log(c1, l1, v1); // 报错 // Uncaught ReferenceError: c1 is not defined const c1 = 'c1'; let l1 = 'l1'; var v1 = 'v1'; 作用域:co…