const
是的,还有一个新的关键词!
ES6引入的第三个声明类关键词与let类似:const。
const声明的变量与let声明的变量类似,它们的不同之处在于,const声明的变量只可以在声明时赋值,不可随意修改,否则会导致SyntaxError(语法错误)。
当然,规范设计的足够明智,用const声明变量后必须要赋值,否则也抛出语法错误。
神秘的代理命名空间
“命名空间是一种绝妙的理念,我们应当多加利用!”——Tim Peters,“这是Python之禅”
嵌套作用域是编程语言背后的核心理念之一,这个理念始于大约57年前的 ALGOL,现在回过头看当时的决定无比正确。
在ES3之前,JavaScript中只有全局作用域和函数作用域。(让我们忽略with语句吧。)ES3中引入了try-catch语句,意味着语言中诞生一种新的作用域,只用于catch块中的异常变量。ES5添加了用于严格的eva l()方法的作用域。ES6添加了块作用域,for循环作用域,新的全局let作用域,模块作用域,以及求参数的默认值时使用的附加作用域。
所有自ES3开始添加的其它作用域非常重要,它们的加入使得JavaScript面向过程与面向对象的特性运行得犹如闭包一样平稳、精准,当然闭包也可以无缝衔接这些作用域实现各种功能。或许你在阅读这篇文章之前从未注意到这些作用域规则的存在,如果真的这样,那这门语言就恰如其分地完成了它的本职工作。
我现在可以使用let和const了么?
可以。如果要在Web上使用let和const特性,你需要使用一个诸如 Babel 、 Traceur或 TypeScript 的ES6转译器。(Babel和Traceur暂不支持临时死区特性。)
io.js支持let和const,但是只在严格模式下编码可以使用。Node.js同样支持,但是需要启用--harmony选项。
九年前 ,Brendan Eich在Firefox中实现了初版的let关键词。这个特性在随后的标准化进程中彻底地被重新设计了。Shu-yu Guo正在按照新标准对原有实现进行升级,该项目由Jeff Walden和其他人做代码审查。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
js的三种继承方式详解
[8539]
1.js原型(prototype)实现继承
代码如下
2.构造函数实现继承
代码如下:
3.call , apply实现继承 -----很方便!
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-85542-5.html
啊啊啊