es6-1(let和const命令)

来源:互联网 发布:四川卫生网络直报系统 编辑:程序博客网 时间:2024/04/29 23:16

let和const和es5差不多,都是定义变量或者常量的声明命令

区别:1、let,声明的变量仅在块级作用域内有效

{  let a = 10;  var b = 1;}a // ReferenceError: a is not defined.b // 1

上面代码在代码块之中,分别用letvar声明了两个变量。然后在代码块之外调用这两个变量,结果let声明的变量报错,var声明的变量返回了正确的值。这表明,let声明的变量只在它所在的代码块有效

2、let不存在变量提升,let命令改变了语法行为,它所声明的变量一定要在声明后使用,否则报错。

// var 的情况console.log(foo); // 输出undefinedvar foo = 2;// let 的情况console.log(bar); // 报错ReferenceErrorlet bar = 2;
3、let不允许在相同作用域内,重复声明同一个变量。
// 报错function () {  let a = 10;  var a = 1;}// 报错function () {  let a = 10;  let a = 1;}

4、const声明一个只读的常量。一旦声明,常量的值就不能改变。

const PI = 3.1415;PI // 3.1415PI = 3;// TypeError: Assignment to constant variable.

const实际上保证的,并不是变量的值不得改动,而是变量指向的那个内存地址不得改动。对于简单类型的数据(数值、字符串、布尔值),值就保存在变量指向的那个内存地址,因此等同于常量。但对于复合类型的数据(主要是对象和数组),变量指向的内存地址,保存的只是一个指针,const只能保证这个指针是固定的,至于它指向的数据结构是不是可变的,就完全不能控制了。因此,将一个对象声明为常量必须非常小心。

ES6 声明变量的六种方法


ES5 只有两种声明变量的方法:var命令和function命令。ES6除了添加letconst命令,后面章节还会提到,另外两种声明变量的方法:import命令和class命令。所以,ES6 一共有6种声明变量的方法。

ps:(阮一峰)

顶层对象,在浏览器环境指的是window对象,在Node指的是global对象。ES5之中,顶层对象的属性与全局变量是等价的。

顶层对象的属性与全局变量挂钩,被认为是JavaScript语言最大的设计败笔之一。这样的设计带来了几个很大的问题,首先是没法在编译时就报出变量未声明的错误,只有运行时才能知道(因为全局变量可能是顶层对象的属性创造的,而属性的创造是动态的);其次,程序员很容易不知不觉地就创建了全局变量(比如打字出错);最后,顶层对象的属性是到处可以读写的,这非常不利于模块化编程。另一方面,window对象有实体含义,指的是浏览器的窗口对象,顶层对象是一个有实体含义的对象,也是不合适的。

ES6为了改变这一点,一方面规定,为了保持兼容性,var命令和function命令声明的全局变量,依旧是顶层对象的属性;另一方面规定,let命令、const命令、class命令声明的全局变量,不属于顶层对象的属性。也就是说,从ES6开始,全局变量将逐步与顶层对象的属性脱钩



原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小米手机打电话黑屏怎么办 小米手机突然黑屏怎么办 小米手机自动黑屏怎么办 手机打电话闪退怎么办 oppor9摔黑屏了怎么办 oppo摔黑屏了怎么办 opp手机来电黑屏怎么办 红米手机开不机怎么办 红米note2死机怎么办 红米note5a黑屏怎么办 红米note4x黑屏怎么办 打电话屏幕不亮怎么办 拨打电话时黑屏怎么办 三星手机打电话黑屏怎么办 三星s7打电话黑屏怎么办 三星手机不能开机怎么办 三星手机开机黑屏怎么办 华为手机打电话黑屏怎么办 金立m5手机壁纸黑屏怎么办 万斯开胶了怎么办 vans鞋鞋底开胶怎么办 手机软件出现闪退怎么办 酷派手机蓝屏怎么办 手机突然间黑屏怎么办 手机闪退怎么办 oppo 手机拨号键盘不见了怎么办 oppor9无限重启怎么办 oppor9手机拨号黑屏怎么办 oppo手机摔黑屏怎么办 vivo手机黑屏打不开怎么办 oppo手机黑屏怎么办啊 oppo手机没反应怎么办 oppo黑屏死机了怎么办 来电闹钟时黑屏怎么办 oppo拨号删除了怎么办 电话拨出后黑屏怎么办 手机老是蹦广告怎么办 手机自动出广告怎么办 电脑没有拨号连接怎么办 拨号连接删了怎么办 红米note5黑屏怎么办