牛客JS知识题库解析(一)

一、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


总结

这里是一些易搞混的知识点,记录下来加深记忆

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值