1 变量
var 变量的缺陷:
(1)可以重复声明;
(2)无法限制修改;
(3)没有块级作用域的概念;
let 不能重复声明,可修改-变量,块级作用域
const 不能重复声明,不可修改-常量,块级作用域
2 函数
原版:function name() { }
新版:() => { }
(1)如果只有一个参数,圆括号可以省略;
(2)如果只有一个return,花括号可以省略;
例子:
let show = a => a * 2;
等于 let show = (a) => {
return a * 2;
}
3 函数的参数
(1)参数扩展:
① 收集参数:...args接收剩余参数
② 展开数组:let arr = [1, 2, 3];
function show(a, b, c) {...}
show(...arr);
或者
let arr1 = [1, 2, 3];
let arr2 = [5, 6, 7];
let arr = [...arr1, ...arr2];
(2)默认参数
4 解构赋值
(1)左右结构必须相同
(2)右边必须是值
(3)声明赋值不能分开
例子 let [a, b, c] = [1, 2, 3];
let [{a, b}, [n1, n2], num, str] = [{a:1, b:2}, [1, 2], 1, 'naive'];
let [json, arr, num, str] = [{a:1, b:2}, [1, 2], 1, 'naive'];
5 数组
新增方法:
map ----- 映射
let arr = [12, 58, 99, 76];
let result = arr.map(item => item >= 60 ? "及格": "不及格");
映射为一个新的字符串数组
reduce ----- 汇总
let arr = [1, 2, 3];
let result = arr.reduce(function(tmp, item, index) {
rerturn tmp + item; // tmp是上一次的和,item是本次加数,index是加数的索引
})
filter ----- 过滤 函数内返回true则保留,false就删除
forEach ----- 迭代
6 字符串
(1)两个新方法:startsWith、endsWith
(2)字符串模板 `${a}`; let a = 12; 可以折行
7 面向对象
(1)添加了class关键字来创建类,添加了constructor构造方法,可以通过构造方法添加实例变量,可以再class里面定义方法,并且不需要function关键字(showname() {...})
(2)继承:使用extends关键字实现继承,赋值父类的参数可以再构造方法中调用super方法并传入参数值。
8 JSON
(1)JSON.stringify():将json对象解析为字符串;encodeURIComponent包裹可以用于URL传输。
JSON.parse():将字符串解析为json对象。
(2)字符串类型JSON的标准写法:
只能用双引号,所有的键必须用引号包起来。
(3)JSON简写
let a = 1; let b = 2; let json = {a, b, c: 121};
键和值一样的时候,可以只写一个
函数可以不写function关键字