一、ES6新增的变量的定义
let const 关键词定义变量
1、let定义变量:
特点:
A、不会进行预解析,结果会报错
B、与forEach()中的变量类似,每次执行都会定义一个互相之间不影响的新变量
C、不能重复定义变量名称,一个变量名称只能定义一次
D、定义的变量如果在{}中,则只能在{}中被执行调用,其他位置都不可以。所以在不同{}中,定义的变量名称是可以重复之用的
E、在循环中最好只用let定义
2、const定义变量:
特点:
A、在js中,const定义的变量成为常量,不能被重复赋值,数据已经定义,不能修改
B、const也是定义在{}中,不能在{}外调用
C、const定义的是对象、数组、函数、引用数据类型。其中只要引用数据类型的地址没变化,就可以改变引用数据类型中的单元存储的数据
D、const可以预解析,结果为undefined
3、内外部调用演示示例:
//每次循环都是独立的,互不影响i变量存储对应的数值
var oLis = document.querySelectorAll('li');
for(let i = 0; i <= oLis.length - 1; i++){
oLis[i].onclick = function(){
//在内部调用是没有问题的
console.log(i+1)
}
}
//如果在外面调用let定义的变量,则会报错
console.log(i)
4、分别使用var、let、const重复赋值做对比
A、使用var声明变量
//使用var声明变量
var int1 = 100;
var int1 = 200;
//结果为200,重复复置会覆盖之前的
console.log(int1);
B、使用let声明变量
//使用let声明变量
let int2 = 300;
let int2 = 400;
//因为同一个变量,两次用let声明,所以会报错
console.log(int2);
C、使用const声明变量
//使用const声明变量
const int3 = 500;
const int3 = 600;
//因为同一个变量,两次用const声明,所以会报错
console.log(int3);
5、特殊用法:
A、let虽然不能在{}外面调用,但可以在直接调用函数
function fun2(){
let str = '上海';
return str;
}
//调用函数,即可输出结果为‘上海’
console.log(fun2());
B、const虽然一旦赋值,就不能改变。但可以修改数组、对象中存储的数据
//修改数组数据,但不修改数组
const arr = [1,2,3,4,5];
arr[0] = '北京'
//输出[北京,2,3,4,5];
console.log(arr);
//修改对象数据,但不修改对象
const obj = {name:'张三'};
obj.name = '李四';
//输出{name:李四}
console.log(obj)
二、箭头函数:函数的另外一种写法
1、普通函数:
fun1 = function(){
函数
}
2、箭头函数:
fun2 = ()=>{}
3、特点
A、与普通函数执行效果完全相同
B、将函数主题function()换成了()=>
C、如果只有一个参数,可以不写(),例如:e=>{console.log(e);}
D、如果只有一行代码,可以不写{},例如:e=>console.log(e)
A True Master Is An Eternal Student(真正的大师总是怀着一颗学徒的心) ------(Master Yi)