1.自执行函数(匿名函数的一种)
- +function(){}();
- -function(){}();
- ~function(){}();
- !function(){}();
示例代码如下:
// 自执行函数,自己执行自己let res = (function (n){console.log(n);return 1;console.log(666);})(123);console.log(res);// (function (){})();(function(){}());+function(){}();-function(){}();~function(){}();!function(){}();
2.数组的增删查改
是一个特殊的对象
- 数组的索引从0开始,依次递增,代表了每个元素的索引位置
- 数组有一个长度属性值,可以控制数据的长度、
push,可以往数组内添加元素,返回数组的长度
// - 1、push:// + 含义:给数组末尾增加内容// + 参数:多个// + 返回值:是新增后数组的长度// + 原数组是否变化:变化let ary = [100,200,300,400];// 只有血统纯正的数组才可以用数组的方法console.log(ary.push(500,600)); // 6console.log(ary); // [100,200,300,400,500,600]// ary[ary.length] = 'xxxx'
unshift,给数组头部增加内容,可增加多个参数,返回数组的长度
// - 2、unshift// + 含义:给数组开头增加内容// + 参数:多个// + 返回值:是新增之后数组的长度// + 原数组是否变化:变化let ary = [100,200,300,400];// console.log(ary.unshift(200,200));let res = ary.unshift(200,[900]);console.log(res); // 6console.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开始,删除到数组末尾
// console.log(ary.splice(2)); // [300,400]// 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]
// ary.splice(4,10)// console.log(ary); // [100,200,300,400]
// 传参数量3个:n,m,x:从索引n开始,删除m个,用x进行替换(从第三个参数开始都是替换的内容)
// console.log(ary.splice(2,1,900)); // [300]// console.log(ary); // [100,200,900,400]// ary.splice(2,2,900,1000,2000) // 从索引2开始删除2个,用900,1000和2000进行替换// console.log(ary); // [100, 200, 900, 1000, 2000]// 传参:n,0,x:从索引n开始,删除0个,把x放到索引n对应值的前面// let ary = [100,200,300,400];// // n// // 往数组开头新增800// ary.splice(0,0,800); // 数组开头新增// ary.splice(ary.length,0,800) // 数组末尾新增// 把10放到索引n的后面// splice(n+1,0,10)
- slice 数组的截取,返回值是一个数组,数组是被截取的内容```javascript// - 6、slice:// + 含义:数组的截取// + 参数:不固定// + 返回值:是一个新的数组,数组里存储的是截取的内容// + 原数组是否变化:不变化let ary = [100,200,300,400];// 不传参:克隆原数组// console.log(ary.slice()); // [100,200,300,400]// console.log(ary); // [100,200,300,400];// 传一个参数n:从索引n开始,截取到末尾// console.log(ary.slice(2)); // [300,400]// console.log(ary); // [100,200,300,400];// 传两个参数n,m:从索引n开始,截取到索引m(不包含m对应的那一项)// console.log(ary.slice(1,3)); // [200,300]console.log(ary.slice(2,100)); // [300,400]
3.数组的方法
- join方法,把当前数组以特定的分隔符转换成字符串,如果不传入字符串,则默认以逗号分开
eval可以把字符串变成JS运算式
// - 8、join// + 含义:把当前的数组以特定的分隔符转化为字符串// + 参数:字符串的分隔符// + 返回值:是转化后的字符串// + 不发生变化let ary = [100, 200, 300, 400];// console.log(ary.join('$')); // '100$200$300$400'// console.log(ary.join()); // '100,200,300,400'// console.log(ary.join('')); // '100200300400'// 把数组的里的内容进行求和// console.log(ary.join('+')); // '100+200+300+400'// console.log(eval('100+200+300+400')); // 可以把字符串变成js表达式// console.log('1+2'); //'1+2'// let res = eval(ary.join('+')); // 给数组内容进行求和// console.log(res);// function fn() {// console.log(100);// }// eval('fn()')
reverse,讲数组倒转进行排列.无参数
sort,排序,讲数组按照特定规律进行排序.默认是正序排列。可传函数参数,默认比较的是
// + 含义:把数组按照规律进行排序// + 参数:不传或者传函数// + 返回值:排序之后的数组// + 发生变化// let ary = [1, 8, 5, 4];// console.log(ary.sort()); // 默认升序 [1,4,5,8]// console.log(ary); // [1,4,5,8]// console.log(ary.sort() == ary); // true// 如果数组的内容都是个位数,那就直接不用传参,默认是升序let ary = [156, 99, 101, 100];console.log(ary.sort(function(a, b) {// return a - b; // 升序return b - a; // 降序}));
indexof,检测一个数组元素的在数组中第一次出现的位置 ```javascript // + 含义:检测某个值在数组中第一次出现的位置
// + 参数:被检测的值// + 返回值:被检测的值第一次出现的位置,如果被检测的值在数组中没有,那就返回-1// + 不发生变化// let ary = [100, 200, 300, 200, 400];// // console.log(ary.indexOf(200)); // 1// // console.log(ary.indexOf(800)); // -1// // 传两个参n, m: n表示被检测值, m是检测开始的位置索引// console.log(ary.indexOf(200, 2)); // 3// console.log(ary.indexOf(200, 4)); // -1//----------------------------------------------------------------------// // lastIndexOf// let ary = [100, 200, 300, 200, 400];// console.log(ary.lastIndexOf(200)); // 3// console.log(ary.lastIndexOf(800)); // -1// // 传两个参n, m: n表示被检测值,m就是表示检测结束的位置// console.log(ary.lastIndexOf(200, 2)); // 1
- includes,检测某个元素在该数组存不存在- 数组的去重```javascript// 数组的去重let ary = [100, 200, 300, 200, 400, 200]; // af0// function fn(ss) { // af0// ss[0] = true;// }// fn(ary); // af0// console.log(ary); // af0// 循环 for循环// for in 循环let obj = {name: 1,age: 2,3: 100}for (var key in obj) {console.log(key);// continue; // 可以// break; // 可以// 对象有几个键值对,此循环就会执行几次// key代表每一个键值对的属性名// 我想输出每一个键值对的属性值console.log(obj[key]);}
