es6新特性知识点
1. let在for循环之类的里面用 在外面获不到会报错
for(i=0;i<5;i++){
let res = i;
console.log(res); //0,1,2,3,4
}
console.log(res); //报错res is not defined
2.const定义常量 不能改变 但是可以定义
let user ={name:"ll",age:24}
const KT =user;
user.name = 'bob';
console.log(user);
console.log(KT);
console的结果如下:
这时user中的内容可以改变,因为const的指针对应的是user内存空间的id 而不是内存中的数值
3.变量的解构赋值(数组)
let[a,b,c]=[1,2,3];
console.log(a); //1
console.log(b); //2
console.log(c); //3
4.变量的解构赋值(对象)
let {a,b,c}={a:1,b:2,c:3};
let {arr:[q,{s}]}={arr:["asw",{s:'uk'}]};
console.log(a); //1
console.log(b); //2
console.log(c); //3
console.log(q); //asw
console.log(s); //uk
5.变量的解构(其他)
let {length}="ty";
console.log(length) //结果2 获取字符串长度
5.新增字符串方法
let de="you";
de.includes('o');
console.log(de.includes('o')); // 结果true
de.startsWith('y');
console.log(de.startsWith('y')); //true
de.endsWith('u');
console.log(de.endsWith('u')); //true
de.repeat(3);
console.log(de.repeat(3)); //youyouyou
6.模板字符串
let title = "中国人";
let fonts = "family";
let really = `<div>
<span>${title}</span>
</div>`
console.log(really); //输出内容 格式保持的很完整
<div>
<span>中国人</span>
</div>
let title = "中国人";
let fonts = "family";
let contents = `<div>
<span>${title + `
<div>
<span>${fonts}</span>
</div>`}
</span>
</div>`
console.log(contents); //输出内容 格式很好看 完整
<div>
<span>中国人
<div>
<span>family</span>
</div>
</span>
</div>
7.symbol类型
以前的数据类型 undefined null Boolean String Number Object现在新增一个数据类型 symbol
let a = Symbol();
let b = Symbol();
console.log(a === b); //输出false
let name = Symbol();
// file1.js
{
var person = {};
person[name] = 'file1';
console.log('person[name]:',person[name]); //file1
}
// file2.js
{
let name = Symbol();
person[name] = 'file2';
console.log('person[name]:',person[name]); //file2
}
console.log('person[name]:',person[name]); //file1 若在局部变量中改变file1的值 可以在局部变量中使用 在全局中打印还是原始值
8.Proxy
var user = new Proxy({},{
get: function(obj,prop){
switch (prop) {
case 'full_name':
return obj.fname + ' ' + obj.lname;
}
},set: function(obj,prop) {
}
})
user.fname = 'Bob';
user.lname = 'Wood';
console.log('user.full_name:',user.full_name);
9.Set
var arr = [1,2,3,3];
var s = new Set([1,2,3,3]);
console.log(arr); // [1,2,3,3]
console.log(s); // {1,2,3} 每个值都是唯一的 传入多个相同的值,只会保留一个
s.size //检查数组长度
console.log(s.size); //3
s.add(4);
console.log(s) // {1,2,3,4}
s.delete(2);
console.log(s) // {1,3,4}
s.has(5);
console.log(s.has(5)) //返回false
console.log(s.has(3)) //返回true
s.clear(); //全部清空
console.log(s) //返回{}