JavaScript(六)——ES6(let、参数增强、箭头函数和模板字符串)

 ECMA  ->  ECMAScript  ->  ES
            标准规范

ES6: js的第6套标准规范

  • 1.提升 与 Let
      • 块级作用域:解决全局污染
      • var let const三个区别
  • 2.参数增强
  • 3.箭头函数
  • 4.模板字符串


1.提升 与 Let

var 关键字定义的变量可以在使用后声明,也就是变量可以先使用再声明。

 //var a   		//会将第三行的var a提到最前面,提前声明变量
console.log(a);	//undefined
var a = 1;		//有var才提升
console.log(a);	//1

let
1.关键字定义的变量则不可以在使用后声明,也就是变量需要先声明再使用,存在块级作用域。
2.同一个作用域下,不允许重复声明同一个变量

console.log(a);	//引用报错ReferenceError:
let a = 1;		//let不再存在提升
console.log(a);	//1

块级作用域:解决全局污染

大括号之间的语句块就是一个块级作用域,例如:if、else、while、do-while、for…

在块级作用域下,let和const声明的都是局部的,无法被块级作用域以外访问到。

{
     //块级作用域
  var c = 3;
  let d = 4;//局部变量
  const e = 5;//局部常量
}
console.log(e);

var let const三个区别

  • var声明的变量存在提升,在同一个作用域下可以重复声明同一个变量
  • let声明的变量不存在提升,在同一个作用域下不允许重复声明同一个变量存在块级作用域,即使在全局作用域下let声明的变量也不是全局的
  • const 声明的时候必须赋值不允许重新赋值存在块级作用域

2.参数增强

function fn(a, b, c=0) {
     
	//es6之前设置参数的默认值方式
	//c = c || 0;
	console.log(a, b, c);
}

fn(10000,2000,500);
//未出现的实参就会使用默认值
fn(10000,2000);//1000,2000,0
fn(10000);//NaN

3.箭头函数

()=>{ }

简化了匿名函数的写法(去掉function,小括号和大括号之间使用箭头),不等价于匿名函数

var arr = [23,9,78,6,45];
arr.sort( (a,b)=>{
     
    return a-b;
} )

箭头函数的函数体重只有一行代码,并且是return形式,简化为:
arr.sort((a,b)=>a-b)




示例:用箭头函数求三个数的平均值

//方法一
var pingjun=(a,b,c)=> {
     
    return (a+b+c)/3;
};
//方法二
var pingjun= (a,b,c)=> (a+b+c)/3;

console.log(pingjun(1,2,3));

4.模板字符串

解决了字符串的拼接问题

   \` 模板字符串 ${
     JS表达式} \`

反引号(`)标识,它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。

// 普通字符串
console.log(`In JavaScript '\n' is a line-feed.`)
 
// 多行字符串
console.log(`In JavaScript this is
not legal.`)

var name = "ERYA", time = "tomorrow";
console.log(`
Hello ${
       name}, 
how are you ${
       time}?
`);

在这里插入图片描述
练习:声明变量保存一条员工的数据,格式为对象,包含的属性有编号,姓名,性别(1/0),工资;最后打印出以下格式


var emp = {
     
  eid: 2,
  ename: 'erya',
  sex: 0,
  salary: 50000
};
console.log(`
  编号:${
       emp.eid}
  姓名:${
       emp.ename}
  性别:${
       emp.sex ? '男' : '女'}
  工资:${
       emp.salary.toFixed(2)}元
`);

JavaScript(六)——ES6(let、参数增强、箭头函数和模板字符串)_第1张图片

你可能感兴趣的:(JavaScript,javascript,ES6)