#ECMScript6
####ECMAScript和JavaScript的关系 ECMAScript6是JavaScript语言的下一代标准,2015年6月正式发布。Mozilla公司将在这个标准的基础上,推出JavaScript2.0
ECMAScript是JavaScript语言的国际标准,而JavaScript是ECMAScript的实现
####浏览器兼容
#let命令
###基本用法 ES6新增了let命令,用来声明变量。用法类似于var,但所生命的变量,只在let命令所在的代码块内有效
###不存在变量提升 let不像var那样会存在变量提升
###暂时性死区 只要块级作用域内存在let命令,它所生命的变量就'绑定'(binding)这个区域,不在受外部影响
###不允许重复声明
let不允许在相同作用域内,重复声明同一个变量
#const命令 const也用来声明常量,一旦声明常量的值不可改变。
#跨模块常量
//module.jsexport const variantName = 'Lily';export const floatcount = 3.1.4//use.js //导入全部import * as var variant from './module';console.log(variant.variantName); //导入某一个import variantName as variant from './module'; //导入某几个import { variantName , floatcount} as variant from './module'复制代码
#全局对象属性 全局对象是最顶层的对象,在浏览器环境指的是window对象,在Node.js指的是global对象。在JavaScript语言中,所有全局变量都是全局对象的属性。(Node的情况比较特,这一条只对REPL环境适用,模块环境必须显式生命global属性)
ES6规定,var命令和function命令声明的全局变量,属于全局对象的属性;let命令、const命令、class命令声明的全局变量,不属于全局对象的属性
var name = 'test';//浏览器环境下console.log(window.name); //输出 name //node.js环境下console.log(global.name); //输出 name //通用环境下console.log(this.name); //输出 name复制代码