以下内容参考阮一峰老师的文章:http://es6.ruanyifeng.com/#docs/intro
一. ECMAScrpt 6简介
- 了解ES6转换器(bable,traceur)
- 申明变量的方法:var,let,const,function,import,class
二. let和const命令 let
命令
<!-- 声明的变量仅在块级作用域内有效 -->
{
let a=1;
}
a //报错
for(let i=0;i<10;i++){
}
console.log(i) //报错
<!-- 不存在变量提升 -->
console.log(bar); //报错
let bar = 2;
<!-- 暂时性死区 在代码块内,使用let命令声明变量之前,该变量都是不可用的 -->
var tmp=123;
if(true){
tmp = ‘abc‘;
let tmp;
} //报错
let x=x;//报错
<!-- 不允许重复声明 -->
function func(){
let a=1;
let a=2;
} //报错
2. 块级作用域
<!-- let 新增块级作用域-->
function f1(){
let n=5;
if(true){
let n=10;
}
console.log(n);
}
<!-- 允许块级作用域的任意嵌套 -->
{{{{
{let insane = "hello world!"}
console.log(insane); //报错,每一层都是一个单独的作用域
}}}}
<!-- 块级作用域内部,优先使用函数表达式 -->
let a= ‘secret‘;
let f=function(){
return a
}
<!-- 块级作用域必须用大括号,否则不存在 -->
3. `const`命令
<!- 声明一个只读的常量,一旦申明,常量的值就不能改变 -->
const PI=3.1415;
PI
pI=3 // 报错
<!-- const 一旦声明,必须赋值,不能先申明再赋值 -->
const foo; //报错
<!-- const和let作用域相同,只在块级作用域内有效 -->
if (true){
const MAX = 5;
}
MAX //报错
<!-- 声明的常量不提升,存在暂时性死区,只能在声明之后使用 -->
if(true){
console.log(MAX); //报错
const MAX = 5;
}
<!-- 不可重复声明
原文地址:https://blog.51cto.com/boss88/2433098
时间: 2024-11-02 16:16:31