数组循环

  1. forEach
  2. map
  3. some
  4. every
  5. reduce
    1. var arr=['zhangsan','lisi','wangwu'];
    2. arr.forEach(function(item,key,arr){
    3. console.log(item,key,arr);
    4. })
    1. var arr =['zhangsan','lisi','wangwu'];
    2. var res=arr.map(function(item,key,arr){
    3. return item;
    4. })
    ```javascript //every && some :|| var arr = [false,false,ture,ture]; var res = arr.every(function(item,key,arr){ console.log(item,key,arr) returen item; }) console.log(res)

var res = arr.some(function(item,key,arr){ console.log(item,key,arr) return item })

  1. ```javascript
  2. //数字累加
  3. var arr = [1,2,3,4];
  4. var res = arr.reduce(function(pre,current,index){
  5. console.log(pre,current,index)
  6. return pre+current;
  7. //pre是上次累加结果,current是当前循环的值
  8. },0)//从零开始累加
  9. //数组累加
  10. var arr = [1,2,3,4];
  11. var res = arr.reduce(function(pre,current){
  12. pre.push(current+10);
  13. returen pre;
  14. },[]);
  15. console.log(res);
  16. //对象累加
  17. var arr = [1,2,3,4];
  18. var res = arr.reduce(function(pre,current){
  19. pre[current]=1;
  20. return pre;
  21. },{})
  22. //{1:1,2:1,3:1,4:1}
  23. console.log(res)
  24. //数组去重
  25. var arr = [1,2,1,3,4,5,3,3,5,6,7];
  26. var res = arr.reduce(function(pre,current){
  27. //pre[current]=1;
  28. //{a:1,b:1,c:1}
  29. //核心:判断current:abc存不存在?不存在初始化一个a:1
  30. //存在 在以前的基础上 加1 a:1 ++ --->a:2
  31. type pre[current]==='undefined'?pre[current]=1:pre[current]++;
  32. returen pre;
  33. },{});
  34. console.log(res);

严格模式

  1. 语法比普通js环境更严格的一种模式
  2. ‘use strict’ 开启严格模式
  3. 声明必须有var关键字
  4. 形参不可重复
  5. 声明式函数调用的时候内部没有this

    let和var的区别

  6. let允许声明一个在作用域限制在块级中的变量,语句或表达式

  7. var声明的变量只能是全局或者整个函数块的
  8. let不能重复声明
  9. let不会被预解析

    const常量

  10. 常量不能重新赋值

  11. 初始化的时候不能不被赋值
  12. 不能重复声明
  13. 块级作用域
  14. 不会被预解析

    解构赋值

    ```javascript //数组解构赋值 let arr = [‘zhangsan’,’lisi’,’wangwu’]; let [a,b,c]=arr; console.log(a,b,c) //zhangsan lisi wangwu

//对象的解构 let obj ={ name:’zhangsan’, age:20, height:’188cm’ } let {name:name,age:age,height:height}=obj; //直接把对象的键名和键值设置成一个 let{name,age,height}=obj; console.log(name,age,height) //zhangsan 20 188cm //ES6对象中,键名跟键值一样,那么可以简写 let name =’zhangsan’; let age=30; let obj={ name, age } console.log(obj); //zhangsan 30 ```