目录
一、call和apply知识点
二、数组concat连接方法
三、call和apply与concat连用
四、正则表达式
五、match方法
六、数据类型
七、逗号表达式
八、toStirng()方法
九、&&和>符号的权重
总结
一、call和apply知识点
call和apply都会自动调用前面的函数,第一个参数都为函数内this的指向,不同的地方是apply的参数传参是以数组/伪数组形式,而call为单个单个值传入
//将this指向arr,同时传入参数[],实际上就是arr.concat([]),不会改变原数组,只会生成一个新数组const arr = [1, 4, 3];const a = [];console.log(a.concat.call(arr, []));
二、数组concat连接方法
concat用于连接两个或多个数组,他不会改变原数组只会返回一个新的数组
其实也就是前面的数组合并concat内传入的数组遍历后的数,如果不为数组则直接push进原数组
console.log([1, 2, 3].concat(4, 5, 6)); // [1, 2, 3, 4, 5, 6];console.log([1, 2, 3].concat([4, 5, 6])); // [1, 2, 3, 4, 5, 6];console.log([1, 2, 3].concat([[1, 2, 3]])); // [1, 2, 3, [1, 2, 3]];console.log([1, 2, 3].concat([[1], [2], [3]])); // [1, 2, 3, [1], [2], [3]]];
三、call和apply与concat连用
//返回[4,5,6]是因为apply调用了concat方法,且第一个参数为this的指向,指向了空数组
//第二个参数为传参,且apply传参本身就为数组所以相当于[].concat(4,5,6) 最后返回的结果为[4,5,6]
[1, 2, 3].concat.apply([], [4, 5, 6]) //[4,5,6]
四、正则表达式
符号 | 含义 |
. | 匹配任意单个字符 |
* | 匹配前面的元素0次或多次 |
+ | 匹配前面的元素1次或多次 |
? | 匹配前面的元素0次或1次 |
{n} | 匹配确定的n次 |
{n,} | 至少匹配n次 |
| | 匹配左右表达式任意一个 |
五、match方法
match方法是一个字符串的方法,接受一个正则表达式/字符串作为参数,用于查找所匹配的字符串,匹配成功最后返回匹配的数组,若没有匹配到则返回null
六、数据类型
数据类型分为基本数据类型和引用数据类型
基本数据类型:Number、Boolean、String、Null、Undefined、Symbol
引用数据类型:Object、Array、Function
七、逗号表达式
逗号表达式只有最后一项是有效的,所以只会根据j<6判断,而不会根据i<10判断
let k = 0;for (let i = 0, j = 0; i < 10, j < 6; i++, j++) {k += i + j;}console.log(k); //30
八、toStirng()方法
注意:数字后面的.会被解析为小数点,而B、C、D规避了这种风险
九、&&和>符号的权重
&&的权重要小于>,所以1 && 2 > 1,先执行2>1为true,然后执行1&&true,返回true
总结
这里是一些易搞混的知识点,记录下来加深记忆