Javascript es6 块级作用域
2017-02-04 00:00
10 查看
在javascript es6中,提到了一个新的概念,叫块级作用域,块级作用域就是用大括号包起来的来的代码块。
let,const是块级元素,var是局部作用域(局部作用域是function函数里可见),let和const的区别见如下代码段
const与let的区别在于const是它是不变的,而let是可变的。
但是对于const只是对于基本数据类型的值或者是引用数据类型的引用对象是不可变的,而引用对象里面的属性依然是可变的,如果想要引用对象里面的属性值都不可见怎么办呢?可以使用Object.freeze(),使用方法如下:
在全局作用域中,var会自动创建为一个全局对象(window)的属性,而let不会,相关代码如下
let不允许重定义,不允许先使用,后定义,相关代码如下
想快速了解更多的Javascript es6新特性,请点击如下链接:http://es6-features.org/
let,const是块级元素,var是局部作用域(局部作用域是function函数里可见),let和const的区别见如下代码段
function varTest() { var x = 1; if (true) { var x = 2; // same variable! console.log(x); // 2 } console.log(x); // 2 } function letTest() { let x = 1; if (true) { let x = 2; // different variable console.log(x); // 2 } console.log(x); // 1 }
const与let的区别在于const是它是不变的,而let是可变的。
但是对于const只是对于基本数据类型的值或者是引用数据类型的引用对象是不可变的,而引用对象里面的属性依然是可变的,如果想要引用对象里面的属性值都不可见怎么办呢?可以使用Object.freeze(),使用方法如下:
const wes = Object.freeze(person);
在全局作用域中,var会自动创建为一个全局对象(window)的属性,而let不会,相关代码如下
var x = 'global'; let y = 'global'; console.log(this.x); // "global" console.log(this.y); // undefined
let不允许重定义,不允许先使用,后定义,相关代码如下
let foo; let foo; // SyntaxError thrown.
console.log(foo); // ReferenceError let foo = 2;
想快速了解更多的Javascript es6新特性,请点击如下链接:http://es6-features.org/
相关文章推荐
- 用Javascript 验证表单提交&css简单认识
- BASE64编码在C#、Delphi和JavaScript中的实现
- javascript: Error 对象 错误处理
- div+css+javascript
- 简易而又灵活的Javascript拖拽框架(五)
- Javascript的IE和Firefox兼容性汇编
- 关于变量为Javascript关键字的问题
- JavaScript 原型链【转】
- JavaScript里关于this的疑惑
- javascript改变表单中的选中的文本
- flash与javascript通讯 SecurityError
- asp.net中调用javascript自定义函数的方法(包括引入JavaScript文件)总结
- Javascript之BOM详解
- 比较好的Javascript资源学习网站
- JavaScript 并非所有的东西都是对象
- javascript 一般用法
- JavaScript相关-基础语法,常用对象和简单事件
- JavaScript Maintainable
- 前端开发必须知道的JavaScript原型和继承
- Cocos2d-x使用Javascript开发js绑定C++<代码示例>