es6常用方法面试常问
1.let和const
2.箭头函数
3.解构赋值
4.模板字符串
5.set和map
6.扩展运算符
7.数组和字符串的扩展方法
8.import、export
9.class
10.symbol
11.函数的默认参数
12.prmoise
13.generator、迭代器
let、const、var
let和var的区别
1. var可以重复定义,let不可以重复定义
例如:
var count = 0;
var count = 1;
console.log('count:',count)
let index = 0;
//let index = 1;
//console.log('index ',index)
**let就会报错:Uncaught SyntaxError: Identifier 'index' has already been declared**
console.log(count)
console.log(index)
2.var有变量提升,let没有变量提升(也可以叫预解析)
例如:
//var coun;
//console.log('count:',count) 放上面显示undefined
//变量提升值提升变量不提升值
var count = 0;
//console.log(index)
**let就会报错:Uncaught ReferenceError: Cannot access 'index' before initializationat**
let index = 0; //推荐用let
3.var没有块级作用域,let有块级作用域
//检测是否有块级作用域
var:
if(true){
var title = 'hello JS'
}
function fn(){
console.log('函数内部访问:',title)
}
fn()
console.log('全局访问:',title)
或者:
for(var i = 0; i < 5; i++){
console.log(i)
}
console.log('i:',i)
let:外面访问不到,只能访问里面
if(true){
let title = 'hello JS'
console.log('内部访问:',title)
}
//console.log('全局访问:',title)
const
const:定义常量,即值不会改变的量
特点: const定义常量必须赋值
适用场景:于引入一些npm包,或者定义项目固定不变的值
const pt = 3.14159;
pt=100; //报错
console.log(pt)
面试官会问:如何改变const定义的值?
答: 可以通过const定义一个对象,那对象中的属性是可以改变值的
const obj ={ //obj是不可以改变的,里面可以改变
name:"alice",
age:20
}
obj.name='jack' //也可以改变
console.log(obj)