箭头函数的几种方式:
1. () => 返回值
function fn(){ //原来的函数
}
let fn = () => 2; //箭头函数
console.log(fn());
2. 形参 => 返回值
let fn2 = num => num*2;
console.log(fn2(10));
3. (形参,形参) => 返回值
let fn3 = (a,b) => a+b;
console.log(fn3(2,5));
// 没有参数或多个参数时,都需要带有()。 只有一个参数的时候,可以省略()
() => {
// 执行语句
// }
(形参,形参) => {
// 执行语句;
// return 返回值;
// }
// 注意:箭头函数在定义的时候,需要绑定一个变量 或者自调用
箭头函数的不定参:
回顾:在es5中,当我们不确定函数参数的时候,可以使用arguments对象来调用参数
function fun(){
console.log(arguments[0]);//1
}
fun(1,2,3,4,5,6,7);
es6中,没有arguments对象来帮助我们调用参数
let fun = () =>{
console.log(arguments);//报错
}
fun(12,3,4,5,6,2,4);
rest 参数(剩余参数)
let fun2 = (...arg) => {
console.log(arg);//12,3,4,5,6,7,8
}
fun2(12,3,4,5,6,7,8);
箭头函数中, this的指向问题
document.onclick = function(){
console.log(this); //document
}
document.onclick = ()=>{
console.log(this); //window
}
箭头函数,本身没有this。 this会指向 定义函数时 所在的作用域
let fn1;
let fn2 = function(){
console.log(this);//window
fn1 = ()=>{
console.log(this);//window
}
}
fn2 = fn2.bind(document.body);
fn2();
fn1();
document.onclick = function(){
console.log(this); // document
function ff(){
console.log(this); //window
}
let ff = ()=>{
console.log(this); //document
}
ff();
}
箭头函数的 默认参数
let fn = (a=10,b=5) => {
return a+b;
}
模板字符串
模板字符串 ``
插值运算符 ${} 可以写表达式 可以写函数
<p>我叫小明,今年18岁,就要上初中了</p>
<script>
let p = document.querySelector("p");
let name = ()=>{
let n = "花花";
return n;
};
let age = "18";
let school = "高中";
p.textContent = `我叫${name()},今年${age}岁,就要上${school}了`;
//需要判断的时候, 用三目运算符
// p.textContent = `我叫${name()},今年${age>13?"保密":age}岁,就要上${school}了`;
</script>
字符串新增的方法
str.startsWith: 判断是否已指定字符串开头的
参数1 : 指定字符串
参数2 : 指定的开始位置 (从1开始)
let str = "好好学习,每天进步一点点";
console.log(str.startsWith("好好")); //true
console.log(str.endsWith("学习",3)); //false
// repeat(): 将字符串重复指定的次数 (次数不限)
let str2 = "a";
console.log(str2.repeat(3)); //aaa