1.箭头函数
ES6新增语法,用来简化函数的书写()=>{}
<script>//箭头函数的基本使用let a = (a,b)=>{return a+b;}let c = a(1,2);console.log(c);//输出3</script>
2.简写形式:
2.1参数:只有一个参数时可以省略小括号a=>{};
<script>let fn2 = a=>{return a+1;}let d = fn2(4);console.log(d);//输出5</script>
2.2代码块:只有一行代码时,可以省略大括号(a,b)=>a+b相当于(a,b)=>{return a+b};
<script>let fn3 = (a,b)=>a+b;let e = fn3(5,6);console.log(e);//输出11</script>
2.3即省略()又省略{}:箭头函数的返回值就是这一行代码的执行结果a=>a+1
<script>let fn4 = a =>a+1;let f = fn4(3);console.log(f);//输出4</script>
3.箭头函数的特征
3.1不可以作为构造函数使用
<script>//箭头函数let fn2 = ()=>{}let f21 = new fn2();//报错fn2 is not a constructor,fn2不是一个构造函数</script>
3.2没有自己的this关键字(代码块内部的this是所在作用域的this)
<script>//函数声明function fn1(){console.log(this);//输出对象{name: '张三', age: 18}}//箭头函数let fn2 = ()=>{//console.log(arguments);//报错,箭头函数arguments不存在console.log(this);//输出对象window}fn1.call({name:"张三",age:18});fn2.call({name:"李四",age:20});//箭头函数没有自己的this,输出的是自己所在全局作用域window的this</script>
3.3没有new.target属性
4.new.target在函数内部,用来区分函数的调用方式;
4.1直接调用,new.target值为undefind
<script>function fn(){console.log(new.target);}//直接调用fn();//输出undefind</script>
4.2通过new关键字调用,new.target值为函数本身
<script>function fn1(){console.log(new.target);}//实例化调用new fn1();//输出结果如下图</script>
5.模版字符串``(反引号,数字1左边的键)
可以嵌套变量 ,可以换行,用${变量名}嵌套变量,
<script>let title = '标题';let str = '<ul><li>'+title+'</li></ul>';//模版字符串``let str1 = `<ul><li>${title}</li></ul>`;console.log(str);console.log(str1);</script>
输出结果如下