ES6
声明方式
let:变量不允许重复声明 允许重复赋值 可以防治变量泄露
const:常量 变量不允许重复声明,也不允许重复赋值
编码转换
charCodeAt() 获取编码
String.fromCharCode(编码) 能让编码转成字符
\u4e00 - \u9fa5:对应所有的汉字
repeat()
接受1个参数 参数就是重复几次咱们的字符串
includes()
- 有点像indexOf()
- 查找会返回 布尔值
- 第一个参数 是要找的内容
- 第二个参数 从第几位开始
startsWith()
- 开头如果是你放入的第一个参数 就是true 不是就false
- 第二个参数 从第几位开始
endsWith()
- 第二个参数 从第几位结束
es6的字符串 变成了
,${} 模版,就是为了使用模板
find()
eg: [1,2,3,4].find(function (x,y,z){
console.log(x,y,z);
})
- 第一个参数 循环出来 数组所有的值
- 第二个参数 循环出来 下标
- 第三个参数 循环出来 数组本身
箭头函数
- 箭头函数和普通函数对比:
![]()
- 几种不同形式的箭头函数:
var f1 = () => 12;
var f2 = x => x * 2;
var f3 = (x, y) => {
var z = x * 2 + y;
y++;
x *= 3;
return (x + y + z) / 2;
};
解释:
只有在函数体的表达式个数多于1个,或者函数体包含非表达式语句的时候才需要用{..}包围。如果只有一个表达式,且省略了包围的{..}的话,则意味着表达式前面有一个隐含的return,如上图中代码展示的一样。
箭头函数总是函数表达式且是匿名函数表达式;并不存在函数声明。
箭头函数支持普通函数的所有功能,包括默认值,解构,rest参数
x = x => x;
console.log(x(1))//1
- 第一个x是方法名
- 第二个x是参数
- 第三个x是返回值
//需要传参的时候就加括号
x = (x,y,z) => {
console.log(1)
}
x``//1
//箭头函数用于匿名函数
[1,2,3,4].find((x,y,z)=>{
console.log(x,y,z);
})
//onclick的写法
document["onclick"] = () => {
document.body.style.background = 'red'
}
()括号作为返回体
let foo = ()=>("aaaa");
console.log(foo());//aaaa
let foo = ()=>({
a:"aaa",
b:"bbb"
});
console.log(foo());
//{
// a:"aaa",
// b:"bbb"
//}
延展参数
function show(x=5,y=3) {
console.log(x,y);
};
show();//x:5 y:3
show(9,0);//x:9 y:0
//调用时不传参数就使用延展参数,否则正常使用传入的参数
function show(x=5,y=[1,2,3]) {
console.log(x,y);
};
show();//x:5 y:[1,2,3]
延展参数可以任何类型,josn,string……都可以
展开(spread)/收集(rest)运算符
展开(spread):
function foo(x,y,z) {
console.log(x,y,z);
}
foo(...[1,2,3]);//1 2 3
var a = [2,3,4];
var b = [1,...a,5];
console.log(b)//1 2 3 4 5
当...用在数组之前时(实际上时任何iterable),它会把这个变量‘展开’为各个独立的值
收集(rest)
function show(...x) { //
console.log(x);//1,2,3,4,5,6,7 typeofx:object x是数组
console.log(arguments) //arguments不是数组
};
show(1,2,3,4,5,6,7);
收集所有的参数
解构赋值
对象解构
var data = {a:1,b:2};
let{a:a,b:b} = data;
console.log(a,b);//1,2
如果属性名和要赋值的变量名相同可以简写为:
let{a,b} = data;
console.log(a,b);//1,2
注意:这里省略的部分是x:而不是:x
验证:
var data = {a:1,b:2};
let{a:xa,b:xb} = data;
console.log(xa);//1
console.log(xb);//2
console.log(a)//报错,Uncaught ReferenceError: a is not defined
console.log(b)
- 赋值过程如下图
![]()



浙公网安备 33010602011771号