前言
JavaScript高级程序设计杂记
label语句
1.81 2 3 4 5 6 7 8 9 10 11
| let num = 0; outPoint: for (let i = 0 ; i < 10 ; i++){ for (let j = 0 ; j < 10 ; j++){ if( i == 5 && j == 5 ){ break outPoint; } num++; } } console.log(num);
|
with语句
1.81 2 3 4 5 6 7 8 9 10 11
| const obj = { a: 1, b: 2 }, b = 20; c = 3; with(obj){ console.log(a); console.log(b); console.log(c); }
|
instanceof
1.81 2 3 4
| const obj = {}; console.log(obj instanceof Object); console.log(obj instanceof Array); console.log(obj instanceof RegExp);
|
⚠️这个不支持检测检出数据类型。
Array
1.81 2 3 4
| let arr = [1, 2, 3];
arr.length = 2; arr[4] = 4;
|
Array方法
转换方法(toString
、valueOf
、join
)
1.81 2 3 4 5 6 7
| const arr = [1, null, 2, undefined, 3,, 4];
arr.valueOf();
arr.toString();
arr.join("-");
|
valueOf
方法会返回一个数组。toString
方法会返回一个字符串他们用逗号隔开。join
方法会返回一个字符串,假如没有传递参数他们用逗号隔开,假如有传递参数,则以传递参数隔开。
⚠️ 如果数组中的某一项为undefined
, null
, 空,那么该值再join()
、toLocaleString()
、toString()
和valueOf()
方法返回的结果中以空字符串表示。
⚠️ 假如alert(arr.valueOf())
这样会打印出1,,2,,3,,4
而不是[1,,2,,3,,4]
,这里会再后台调用toString
方法进行转换,因为alert只接收字符串。
栈方法(后进先出)
1.81 2 3 4 5
| let arr = [1, 2, 3, 4];
arr.push(5, 6);
arr.pop();
|
push
方法往数组末尾添加n项。pop
方法删除数组最后一项。
队列方法(先进先出)
1.81 2 3 4 5
| let arr = [1, 2, 3, 4];
arr.unshift(-1, 0);
arr.shift();
|
unshift
方法往数组头部添加n项。shift
方法删除数组第一项。
重排序方法
1.81 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| let arr = [1, 2, 3, 4, 5, 10];
arr.reverse();
arr.sort(); arr.sort(compare);
function compare(val1, val2) { if(val1 < val2) { return 1; } else if(val1 > val2) { return -1; } else { return 0; } }
|
revert
方法会将数组反转。sort
方法会根据字符串进行比较、排序。
操作方法
1.81 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| let arr = [1, 2, 3, 4];
arr.concat([5, 6], [7, 8]); arr.concat(undefined, null);
arr.slice(1); arr.slice(1, 2); arr.slice(-3, -1);
arr.splice(1, 0, "a", "b");
arr.splice(0, 1, 0);
arr.splice(1, 2);
|
concat
方法会将数组拼接到后面,如果非数组也会作为单独一项拼接到后面。该方法返回一个新数组,不改变原数组。slice
方法具有两个参数,第一个参数为起始项,第二个参数为结束项。当只有第一个参数时,会返回起始项到末尾的数组。当有两个参数时,不会包含结束项(含头不含尾)。当有参数为负数时,会用数组长度加上该参数来计算。splice
方法具有三个参数+。第一个参数是起始项,第二个参数是长度,第二个参数后…会往起始项后面添加。会改变原数组。
位置方法
1.81 2 3 4 5
| let arr = [1, 2, 3, 4, 3, 2, 1];
arr.indexOf(2);
arr.lastIndexOf(2);
|
indexOf
方法会从数组开头开始检索,返回首个符合的下标。lastIndexOf
方法会从数组末尾开始检索,返回首个符合的下标。
⚠️ 检索是使用全等的,即===
。
⚠️ 假如没有符合的会返回-1
。
迭代方法