1.自执行函数(匿名函数的一种)

  • +function(){}();
  • -function(){}();
  • ~function(){}();
  • !function(){}();
  • 示例代码如下:

    1. // 自执行函数,自己执行自己
    2. let res = (function (n){
    3. console.log(n);
    4. return 1;
    5. console.log(666);
    6. })(123);
    7. console.log(res);
    8. // (function (){})();
    9. (function(){}());
    10. +function(){}();
    11. -function(){}();
    12. ~function(){}();
    13. !function(){}();

    2.数组的增删查改

  • 是一个特殊的对象

  • 数组的索引从0开始,依次递增,代表了每个元素的索引位置
  • 数组有一个长度属性值,可以控制数据的长度、
  • push,可以往数组内添加元素,返回数组的长度

    1. // - 1、push:
    2. // + 含义:给数组末尾增加内容
    3. // + 参数:多个
    4. // + 返回值:是新增后数组的长度
    5. // + 原数组是否变化:变化
    6. let ary = [100,200,300,400];
    7. // 只有血统纯正的数组才可以用数组的方法
    8. console.log(ary.push(500,600)); // 6
    9. console.log(ary); // [100,200,300,400,500,600]
    10. // ary[ary.length] = 'xxxx'
  • unshift,给数组头部增加内容,可增加多个参数,返回数组的长度

    1. // - 2、unshift
    2. // + 含义:给数组开头增加内容
    3. // + 参数:多个
    4. // + 返回值:是新增之后数组的长度
    5. // + 原数组是否变化:变化
    6. let ary = [100,200,300,400];
    7. // console.log(ary.unshift(200,200));
    8. let res = ary.unshift(200,[900]);
    9. console.log(res); // 6
    10. console.log(ary); // [200,[900],100,200,300,400]
  • pop,删除数组末尾最后一项内容,返回删除的那一项元素,无参数直接使用

  • shift删除数组开头的第一项内容,返回删除的那一项元素,无参数直接使用
  • splice,实现数组的指定删除元素 ```javascript // - 5、splice: // + 含义:实现数组的增删改 // + 参数:不固定 // + 返回值:是一个新的数组,数组里边存储的是删除的那几项 // + 原数组是否变化:变化

    let ary = [100,200,300,400]; // 传参数量0个:什么都不干

    // console.log(ary.splice()); // [] // console.log(ary); // [100,200,300,400]

// 传参数量1个:n:从索引n开始,删除到数组末尾

  1. // console.log(ary.splice(2)); // [300,400]
  2. // console.log(ary); // [100,200]

// 传参数量2个:n,m:从索引n开始,删除m个 (可以删除任意位置的那一项) console.log( ary.splice(1,1)); // [200] console.log(ary); // [100,300,400]

// ary.splice(2,10); // console.log(ary); // [100,200]

  1. // ary.splice(4,10)
  2. // console.log(ary); // [100,200,300,400]

// 传参数量3个:n,m,x:从索引n开始,删除m个,用x进行替换(从第三个参数开始都是替换的内容)

  1. // console.log(ary.splice(2,1,900)); // [300]
  2. // console.log(ary); // [100,200,900,400]
  3. // ary.splice(2,2,900,1000,2000) // 从索引2开始删除2个,用900,1000和2000进行替换
  4. // console.log(ary); // [100, 200, 900, 1000, 2000]
  5. // 传参:n,0,x:从索引n开始,删除0个,把x放到索引n对应值的前面
  6. // let ary = [100,200,300,400];
  7. // // n
  8. // // 往数组开头新增800
  9. // ary.splice(0,0,800); // 数组开头新增
  10. // ary.splice(ary.length,0,800) // 数组末尾新增
  11. // 把10放到索引n的后面
  12. // splice(n+1,0,10)
  1. - slice 数组的截取,返回值是一个数组,数组是被截取的内容
  2. ```javascript
  3. // - 6、slice:
  4. // + 含义:数组的截取
  5. // + 参数:不固定
  6. // + 返回值:是一个新的数组,数组里存储的是截取的内容
  7. // + 原数组是否变化:不变化
  8. let ary = [100,200,300,400];
  9. // 不传参:克隆原数组
  10. // console.log(ary.slice()); // [100,200,300,400]
  11. // console.log(ary); // [100,200,300,400];
  12. // 传一个参数n:从索引n开始,截取到末尾
  13. // console.log(ary.slice(2)); // [300,400]
  14. // console.log(ary); // [100,200,300,400];
  15. // 传两个参数n,m:从索引n开始,截取到索引m(不包含m对应的那一项)
  16. // console.log(ary.slice(1,3)); // [200,300]
  17. console.log(ary.slice(2,100)); // [300,400]

3.数组的方法

  • join方法,把当前数组以特定的分隔符转换成字符串,如果不传入字符串,则默认以逗号分开
  • eval可以把字符串变成JS运算式

    1. // - 8、join
    2. // + 含义:把当前的数组以特定的分隔符转化为字符串
    3. // + 参数:字符串的分隔符
    4. // + 返回值:是转化后的字符串
    5. // + 不发生变化
    6. let ary = [100, 200, 300, 400];
    7. // console.log(ary.join('$')); // '100$200$300$400'
    8. // console.log(ary.join()); // '100,200,300,400'
    9. // console.log(ary.join('')); // '100200300400'
    10. // 把数组的里的内容进行求和
    11. // console.log(ary.join('+')); // '100+200+300+400'
    12. // console.log(eval('100+200+300+400')); // 可以把字符串变成js表达式
    13. // console.log('1+2'); //'1+2'
    14. // let res = eval(ary.join('+')); // 给数组内容进行求和
    15. // console.log(res);
    16. // function fn() {
    17. // console.log(100);
    18. // }
    19. // eval('fn()')
  • reverse,讲数组倒转进行排列.无参数

  • sort,排序,讲数组按照特定规律进行排序.默认是正序排列。可传函数参数,默认比较的是

    1. // + 含义:把数组按照规律进行排序
    2. // + 参数:不传或者传函数
    3. // + 返回值:排序之后的数组
    4. // + 发生变化
    5. // let ary = [1, 8, 5, 4];
    6. // console.log(ary.sort()); // 默认升序 [1,4,5,8]
    7. // console.log(ary); // [1,4,5,8]
    8. // console.log(ary.sort() == ary); // true
    9. // 如果数组的内容都是个位数,那就直接不用传参,默认是升序
    10. let ary = [156, 99, 101, 100];
    11. console.log(ary.sort(function(a, b) {
    12. // return a - b; // 升序
    13. return b - a; // 降序
    14. }));
  • indexof,检测一个数组元素的在数组中第一次出现的位置 ```javascript // + 含义:检测某个值在数组中第一次出现的位置

    1. // + 参数:被检测的值
    2. // + 返回值:被检测的值第一次出现的位置,如果被检测的值在数组中没有,那就返回-1
    3. // + 不发生变化
    4. // let ary = [100, 200, 300, 200, 400];
    5. // // console.log(ary.indexOf(200)); // 1
    6. // // console.log(ary.indexOf(800)); // -1
    7. // // 传两个参n, m: n表示被检测值, m是检测开始的位置索引
    8. // console.log(ary.indexOf(200, 2)); // 3
    9. // console.log(ary.indexOf(200, 4)); // -1
    10. //----------------------------------------------------------------------
    11. // // lastIndexOf
    12. // let ary = [100, 200, 300, 200, 400];
    13. // console.log(ary.lastIndexOf(200)); // 3
    14. // console.log(ary.lastIndexOf(800)); // -1
    15. // // 传两个参n, m: n表示被检测值,m就是表示检测结束的位置
    16. // console.log(ary.lastIndexOf(200, 2)); // 1
  1. - includes,检测某个元素在该数组存不存在
  2. - 数组的去重
  3. ```javascript
  4. // 数组的去重
  5. let ary = [100, 200, 300, 200, 400, 200]; // af0
  6. // function fn(ss) { // af0
  7. // ss[0] = true;
  8. // }
  9. // fn(ary); // af0
  10. // console.log(ary); // af0
  11. // 循环 for循环
  12. // for in 循环
  13. let obj = {
  14. name: 1,
  15. age: 2,
  16. 3: 100
  17. }
  18. for (var key in obj) {
  19. console.log(key);
  20. // continue; // 可以
  21. // break; // 可以
  22. // 对象有几个键值对,此循环就会执行几次
  23. // key代表每一个键值对的属性名
  24. // 我想输出每一个键值对的属性值
  25. console.log(obj[key]);
  26. }