模板字符串

  1. //ES6 模板字符串 : 定义 `字符串`
  2. //插值表达式,可以解析js里的变量,还可以解析有返回值的表达式
  3. let str = `我${1+4}的名字是${flag?'张三':"李四"},我的年龄是${fn()}`;

展开运算符

  1. //展开数组
  2. var arr= [1,2,3,4];
  3. var arr2= [5];
  4. var res = [...arr,...arr2];
  5. console.log(res);
  6. //[1,2,3,4,5]
  7. 可以把伪数组转成数组
  8. function fn(){
  9. console.log(arguments);
  10. //通过 Array.from来把伪数组转成数组
  11. var arr = Array.fromarguments);
  12. console.log(arr);
  13. //通过展开运算符来转换
  14. var arr = [...arguments];
  15. console.log(arr);
  16. }
  17. fn(1,2,3)
  18. //处理不定参数,rest剩余参数
  19. function fn (a,...args){
  20. console.log(args);
  21. }
  22. fn(1,2,3,4)
  23. //对象的展开
  24. //合并对象,合并配置
  25. let obj1 = {name:'zhangsan'};
  26. let obj2 = {age:20};
  27. var obj = {...obj,...obj2};
  28. console.log(obj);
  29. //字符串的展开
  30. var str = 'sdafefczxcce';
  31. var arr = [...str];
  32. console.log(arr);

箭头函数

  1. 箭头函数的语法比函数表达式更简介
  2. 没有自己的this,arguments,super或new.target
  3. 不能用作构造函数
  4. 更适合那些本来需要匿名函数的地方
  5. 如果该函数是一个构造函数,this指向一个新的对象
  6. 严格模式下,this指向undefined
  7. 如果该函数是一个对象的方法,则this指向那个对象
  8. 自带return,隐式返还,不写大括号会自动返还 ```javascript var elements = [ ‘Hydrogen’, ‘Helium’, ‘Lithium’, ‘Beryllium’ ];

elements.map(function(element) { return element.length; }); // 返回数组:[8, 6, 7, 9]

// 上面的普通函数可以改写成如下的箭头函数 elements.map((element) => { return element.length; }); // [8, 6, 7, 9]

// 当箭头函数只有一个参数时,可以省略参数的圆括号 elements.map(element => { return element.length; }); // [8, 6, 7, 9]

// 当箭头函数的函数体只有一个 return 语句时,可以省略 return 关键字和方法体的花括号 elements.map(element => element.length); // [8, 6, 7, 9]

// 在这个例子中,因为我们只需要 length 属性,所以可以使用参数解构 // 需要注意的是字符串 "length" 是我们想要获得的属性的名称,而 lengthFooBArX 则只是个变量名, // 可以替换成任意合法的变量名 elements.map(({ “length”: lengthFooBArX }) => lengthFooBArX); // [8, 6, 7, 9]

  1. <a name="wlLId"></a>
  2. ## 函数默认参数
  3. 1. js函数默认值都是undefined,有参数就按参数来赋值
  4. ```javascript
  5. //解构赋值
  6. function fn ([a,b=5]) {
  7. console.log(a,b);
  8. }
  9. fn([1,2]) //1 2
  10. //ES5默认参数
  11. function fn(a,b){
  12. var a=a || 1;
  13. var b=b || 2;
  14. console.log(a,b);
  15. }
  16. fn('',0); //1 2
  17. //ES6默认参数
  18. function fn (a,b){
  19. console.log(a,b);
  20. }
  21. fn('',0) //0
  22. //短路运算符
  23. function fn(){
  24. let arg = arguments[arguments.length-1];//获取最后一位数
  25. if(typeof arg === 'function'){
  26. //如果这个数为函数
  27. arg && arg();
  28. }
  29. }
  30. fn(1,3,function(){
  31. console.log(111);
  32. })
  33. //是函数就执行,打印111,不是函数就不执行

新增数组方法

  1. //Array.from('伪数组')
  2. //Array.of();创建一个新数组
  3. let arr = Array.of(7);
  4. console.log(arr);
  1. //查找数组某一项
  2. let arr = [1,2,3,4,5,6];
  3. //查找数组内大于3的数
  4. var res = arr.filter(item=>item>3);
  1. //查找某个值的索引
  2. let arr = ['1','2','3'];
  3. //查找'2'的索引
  4. var res = arr.findIndex(item=>item=='2')
  1. //判断数组里是否包含某个值
  2. let arr=['1','2','3'];
  3. //查找'2'
  4. var res = arr.includes('2');
  1. //数组扁平化
  2. //flat默认参数是1
  3. var arr =[1,2[3,[4,5]]];
  4. //2代表扁平两次
  5. var res = arr.flat(2)
  1. var res = arr.toString();
  2. console.log(res);
  3. var newarr=res.split(',');
  4. console.log(newarr);
  1. //获取数组里某一项
  2. let arr = [1,2,3,4,5];
  3. console.log(arr[2]);
  4. conlose.log(arr[2]);
  5. console.log(arr[arr.length-2]);
  6. console.log(arr.at(2));
  7. console.log(arr.at(-2));
  1. //一个参数,数组会被这个参数填充起来
  2. let arr =[1,2,3,4,5];
  3. arr.fill(6);
  4. arr.fill('a',2,3);//包前不包后
  5. console.log(arr);

字符串新增方法

  1. //判断某个字符是否在字符串里
  2. var str = 'abchdef';
  3. //字符串里有无deg
  4. console.log(str.includes('deg'));
  1. //重复某个字符
  2. var str = '*';
  3. //重复五个*
  4. console.log(str.repeat(5));
  1. //根据给的位数补全字符串
  2. var str = 'abc';
  3. var res = str.padStart(5,'$');
  4. console.log(res); //$$abc
  5. var str = 'abc';
  6. var res = str.padEnd(6,'.'); //abc...
  7. console.log(res);
  1. //判断某个字符串 是以某某作为开头
  2. endsWidth:
  3. var str = 'hello world';
  4. console.log(str.startsWith('hello'));
  5. console.log(str.endsWith('ll'));