ES6 let和const命令(4)】的更多相关文章

const 用来声明常量.一旦声明,就不能改变. const在声明必须初始化,只声明不赋值会出错 const的作用域与let一样,只在声明的块级作用域有效. const命令声明的常量也不提升,同样存在暂时性死去,只能在声明后使用. 对于复合型变量,变量名不指向数据,而是指向数据所在的地址.const命令只是保证变量名指向的地址不变,并不保证该地址的数据不变,所以将一个变量声明为常量要非常小心. const foo = {}; foo.prop = 123; console.log(foo.pro…
基本用法 ES新增了let命令,用于声明变量.其用法类似于var,但是所声明的变量只在let命令所在的代码块中有效. for(let i = 0;i<5;i++) {} console.log(i);//ReferenceError:i is not defined 而下面代码的var作用就是全局 for (var i = 0; i < 5; i++) {} console.log(i);//5 如果将console.log(i)放在{}中,ES6将会输出6 不存在变量提升 let不像var那…
hi,我又回来了,今天学习一下const命令. 声明一个常量 const声明一个只读常量,一旦声明,常量的值便不可改变. 例子如下: const food = 12; food = 23; // Uncaught TypeError: Assignment to constant variable. 还可以声明一个变量 const可以声明一个变量,声明以后,必须初始化,否则变错. 例子如下: const food; // Uncaught SyntaxError: Missing initial…
const声明的常量只在当前代码块有效.如果想设置跨模块的常量,可以采用下面的写法. //constants.js模块 export const A = 1; export const B = 3; export const C = 4; //test1.js模块 import * as constants from './constants'; console.log(constants.A);//1 console.log(constants.b);//3 //test2.js模块 impo…
1.const声明一个只读常量,一旦声明,常量的值就不能改变 1 const PI=3.1415; 2 console.log(PI);//3.1415 3 4 PI=3;//Uncaught TypeError: Assignment to constant variable. 2.const一旦声明常量,就必须立即初始化,不能留到以后赋值 1 const WIDTH;//Uncaught SyntaxError: Missing initializer in const declaratio…
  1.const声明一个只读常量,一旦声明,常量的值就不能改变 1 const PI=3.1415; 2 console.log(PI);//3.1415 3 4 PI=3;//Uncaught TypeError: Assignment to constant variable. 2.const一旦声明常量,就必须立即初始化,不能留到以后赋值 1 const WIDTH;//Uncaught SyntaxError: Missing initializer in const declarat…
一.let定义变量 { let a = 1;} console.log(a);只在let所在的代码块有效,console的结果是a is not defined,报错. 不存在var的变量提升,即使用let的话变量一定要在声明之后再使用,否则会报错.存在暂时性死区,即在声明变量之前使用该变量,会报错,即使使用typeof运算符.不允许在相同作用域内重复声明同一个变量.二.constconst声明一个只读的常量.一旦声明,常量的值就不能改变.这意味着,const一旦声明变量,就必须立即初始化,不能…
为什么要使用块级作用域 在ES5中只有全局作用域和函数作用域,没有块级作用域,因此带来了这些麻烦 内层变量可能会覆盖外层变量 var tmp = new Date(); console.log(tmp);//Thu Jan 12 2017 15:47:08 GMT+0800 (中国标准时间) function f() { console.log(tmp);//undefined if (false) { var tmp = "hello world"; console.log(tmp)…
let和const命令: Es6新增了let命令,声明变量,但与var不一样的,只在let命令所在的代码块内有效(如for循环之外let声明的变量就不再有效).并且let不像var那样会发生"变量提升"现象,所以,变量一定要在声明后使用,否则报错. 暂时性死区; 只要块级作用域内存在let命令,它所声明的变量就"绑定"binding这个区域,不再受外部的影响. 注意: es6明确规定:如果区块中存在let和const命令,这个区块会对这些命令声明的变量,从一开始就形…
ES6之let(理解闭包)和const命令 最近做项目的过程中,使用到了ES6,因为之前很少接触,所以使用起来还不够熟悉.因此购买了阮一峰老师的ES6标准入门,在此感谢阮一峰老师的著作. 我们知道,ECMAScript 6即ES6是ECMAScript的第五个版本,因为在2015年6月正式发布,所以又成为ECMAScript2015.ES6的主要目的是为了是JS用于编写复杂的大型应用程序,成为企业级的开发语言. 说明:由于有时候我们希望得知es6代码的具体实现原理或者说希望能够转化为es5使用,…