var:javaScript用于声明变量的操作符
如 Var A //声明变量后不赋值将会被给予一个特殊的值 undifined
(PS:undifined值是派生至null 所以 undifined==null)
(PS:Null类型是只有一个值null的数据类型,表示空对象引用[指针],使用typeof检测会返回object)
(除了typeof可以检测数据类型还有其他检测方式和公式吗 用途呢?)
let:Es6新增的命令,作用与var类似 但let所声明的变量只在let所在的代码块生效
(Es6目前支持的浏览器版本 各大版本浏览器支持情况)
(各个浏览器的内核 )
浏览器 | 内核 |
---|---|
IE | trident内核 |
Firefox | gecko内核 |
safari | webkit内核 |
opera | 以前是presto内核,现在改用google chrome的Blink内核 |
Chrome | Blink(基于webkit,google与opera software共同开发) |
(如何查看?navigator.userAgent即可。
不过具体的监听兼容各个浏览器还需要一大段代码 )
(如何使用Es6语法编译并兼容各个浏览器?traceur.js babel.js 下次再贴代码吧)
特点:
1.不存在变量声明提升 (什么是变量声明提升?什么是函数声明提升?)
2.暂时性死区(什么是暂时性死区?)
3.不允许重复声明变量
4.let为javaScript增加了函数作用域
(什么是块级函数作用域?为什么需要块级作用域?作用域链?闭包?)
const:也能用于声明变量,但一般用于声明常量,一旦声明后便不可修改
(但我偏偏要修改呢?)
特点:
1.const声明的常量只在当前代码内生效
(那我如何设置跨模块常量呢?模块又是?如何设定模块?)
用途:
全局对象与全局变量
全局对象:
浏览器端环境指的是window对象(window对象下的BOM属性/对象有?)
Node.Js指的是global对象
(PS:Es6规定Var和function声明的全局变量都是全局对象的属性而let和const所声明的全局变量不属于全局变量的属性)
变量的赋值 解构赋值(Es6)