1、如果浏览器不支持ES6,可以在线解析JS代码。
https://babeljs.io/repl/ #
https://google.github.io/traceur-compiler/demo/repl.html#
2、块级作用域:{} 变量及函数的生效空间
补充:
全局作用域:定义于函数外部
局部作用域:定义于函数内部
3、let 用于定义变量。没有变量的提升功能。在前面会形成一个暂时性死区。不能重复申明。
- 对于for循环,()是父级作用域,里面是子集作用域,自能在内部执行,类似立即执行函数。
- 暂时性死区:在代码块内,使用let命令声明变量之前,该变量都是不可用的,若使用该变量,会报错(is not define)
4、const 定义常量 :不变的量。比如PI
- 一旦定义之后的所有操作中不能够对这个量进行改变。
- 申明的时候必须要赋值。其他特性与let一样。
const a = 100; - 对象、数组、JSON都是引用类型的数据,指向存储位置的指针地址不变,地址里存储的内容可变化。
5、解构:等号两边结构相同
- 解构的别名
let obj = {
name:"limazi",
age:56,
height:121,
weight:1000
};
let {name,age:sui,height,weight} = obj;
console.log(name,sui,height,weight)
- 解构的默认值
let [a,b,c=12] = [1,2];
undefined 与 null的默认值 - 当默认值为null的时候,如果赋值为undefined的时候,会失效,继续使用默认值。
let [x=1,y=null] = [1,undefined]; //x=1 y=null
6、字符串
- 添加字符串
let a = 'magua';
let html = `
sdnfl
sdfnj
fsdnjk
fsdnjk
sdfnj${a}adg
bc
`; //sdnflsdfnjfsdnjkfsdnjksdfnj(magua)adgbc
- 字符串查找
let a = [1,2,3,5,6]
console.log(a.includes(9)) //false
- 检测字符串
start/end Width() 以……开始/结束 - 字符串重复
repeat(次数) - 字符串补全长度
- padStart(字符串总个数,补充的字符串) 用于头部补全
- padEnd(字符串总个数,补充的字符串) 用于尾部补全
eg:
'x'.padStart(5, 'ab') // 'ababx'
'x'.padStart(4, 'ab') // 'abax'
'x'.padEnd(5, 'ab') // 'xabab'
7、箭头函数
- 格式:
s.onclick = ()=>{
let sum = 0;
for(let i=1;i<=100;i++){
sum+=i;
}
alert(sum);
}
- 箭头函数不能作为构造函数使用
let show = (a,b)=>a+b;
console.log(new show(1,2));
- 箭头函数的this是指定义他的对象
8、forEach 遍历数组,每一个元素单独处理
//val 指数组的每一项的值
//index 索引
//arr 数组本身
//没有返回值
arr.forEach(function(val,index,arr){
val.onclick = ()=>{
alert(this);
}
});
补充:
- map 遍历数组,进行数据处理
- filter 遍历数组,过滤数组,单独处理返回为true的保留
- some 遍历数组,查询数组中只要有一个符合条件,那么返回true。
- every 遍历数组,查询数组,只有在所有的元素都是符合条件的才返回true。
9、promise
http://es6.ruanyifeng.com/#docs/promise
10、reduce
https://www.jianshu.com/p/3ab871b3a4f2
网友评论