跳至主要內容

ES6基础、新特征

白日梦想家yy...大约 2 分钟

ES6基础、新特征

块级作用域

  • 使用let关键字声明的变量,不存在变量的提升,不能多次声明,只能在块级作用域(使用大括号{ })下访问,不能被外部访问
  • 例如 if else while do while for switch等

ES5和ES6中的区别

  • ES5中只分全局和函数作用域,只有函数{ }构建局部作用域
  • ES6中所有{ }都将构成局部作用域,结合let关键字使用,创建局部变量
if(true){
    //ES5中,在{ }内var声明的变量不受{ }限制,外界也可访问
    var a = 1;  
    
    //ES6中,let声明的变量只能在{ }中使用
    let b = 2; 
}
  • let声明的变量不存在变量提升,不允许重复声明,只能重新赋值,带关键字是重复声明,不带是重新赋值
//不报错,先变量提升后赋值,此时是undefined
console.log(a);
var a = 1; 

//报错,不允许变量提升
console.log(b);
let b =2;

//重复声明和重新赋值
let c = 3;  
let c =5;  //报错,重复声明
c = 5;  //不报错,重新赋值

参数增强

  • 可以给参数(形参)设置默认值
  • 如果实参只有2个,形参有3个,可以给第三个形参设置默认值
function add(a,b,c=1){  //第三个形参设置默认值
    return a+b+c;
}
add(1,2)

箭头函数

  • 匿名函数的一种简写方法,但不等同于匿名函数
  • 省略了function关键字
  • 语法:(形参)=>
//ES5匿名函数写法
var f1 = function (a,b){  
    console.log(a,b)
}
f1(10,23);

//ES6中箭头函数写法
var f2 = (a,b)=>{console.log(a, b)};
f2(12,34)
  • 如果匿名函数的函数体只有一条return语句,可以省略
//ES5匿名函数语法
var f3 = function (a){
    return a*a;
}
console.log(f3(10));

//ES6中用箭头函数可以简写为
var f3 = (a)=>{return a*a};  //第一种简写
var f3 = (a)=>a*a;  //进一步简写
console.log(f3(10));

模板字符串

  • 直接在字符串中书写JS表达式
  • ` (反引号,键盘左上方第二排第一个)创建字符串,结合${JS表达式}在字符串中表示数据
//声明变量
var a = 1;
var b = 2;

//模板字符串
console.log( ` 
    标题:${a}  
    其它:${b.toFixed(2)}
` );
上次编辑于:
贡献者: mygit