一、变量声明
let声明
特点:1.let声明的变量不可以重复声明
2.let声明的变量会产生暂时性死区,只在所声明的块级作用域有效
3.let声明的变量不能进行变量的提升
例:let name=“张张”;let name="笨笨"是错误的
const声明
特点:1.const声明的是一个常量
2.const声明的常量必须要赋初值,否则会报错
3.const声明的常量不能进行修改(不会改变值)
4.对数组和对象的元素修改,不算对常量的修改,不会报错(const只是保证变量名指向的地址不变,并不保证变量名指向的数据不变)
5.const声明的常量会产生暂时性死区,只在所声明的块级作用域有效
二、箭头函数
先来一个箭头函数的简单声明
var fn1 = () => {
console.log('箭头函数');
}
箭头函数与普通函数的区别:
参数只有一个,括号可以省略
var fn2 = x => {
console.log(111);
}
函数体只有return语句,可以省略{}和return
var fn3 = y => y;
如果返回一个对象,需要加()
var fn4 = obj => ({
a: 10
})
console.log(fn4());
箭头函数没有arguments内置对象(箭头函数不能作为构造函数,也没有原型属性)
var fn5 = x => {
// console.log(argumnets);
console.log("call");
console.log(this); //window
return x + 1;
}
箭头函数中的this永远指向父作用域
let person = {
name: 'jike',
init: function() {
//为body添加一个点击事件,看看这个点击后的this属性有什么不同
document.body.onclick = () => {
alert(this.name); //打印出jike
}
}
}