牛客题库知识点解析(二)

一、in

数组中为 索引 in 数组,而在对象中为key in 对象

 console.log(1 in [1]);//false 该数组只有一个元素 索引0 再数组中
 console.log('name' in { name: '' });//true 该对象中存在name属性

二、isNaN() 函数用来确定一个值是否为NaN

如果传入的值为引用数据类型会使用toString转为字符串,如果为简单数据类型,会使用Number()转换为数字

 console.log(1 / 0); //Infinity
 console.log(isNaN(1 / 0)); //false
 console.log(isNaN(undefined)); //=>isNaN(Number(undefined))=>isNaN(NaN) 返回true

三、Date.now()

Date.now()自 1970 年 1 月 1 日 00:00:00 UTC 以来的毫秒数

console.log(typeof Date.now())//返回 number

四、变量提升

在es6中,class类不存在变量提升,这意味着不能在声明前使用它

在下列函数中test作用域中存在a,但是因为class不能变量提示,所以位置A会报错,而位置B则可以打印出class a{}

答案:报错,class a{}

五、代码回收

1.全局变量不会被回收

2.局部变量会被回收,函数一旦运行完成,函数内部的东西就会被销毁

3.变量如果被另一个作用域引用就不会被回收(闭包)

所以i重复声明,只是重新赋值,全局变量i不会被回收,还有全局变量add不会被回收,函数内的i被另一个函数引用不会被回收,所以存在3个变量没有被回收

 六、eval方法

eval()将传入的字符串当作js代码执行,并返回一个结果

 let x = 2;
 console.log(eval('x+2')); //4

七、try...catch... 

如果try语句后面有finally,try中的return不会跳出函数,因为一定要进入finally语句

         try {
                //在这执行可能出现异常的语句
            } catch {
                //如果抛出异常就会执行catch内的语句
            } finally {
                //不管是否抛出异常都会执行
            }

八、parseInt 

parseInt() 函数可解析一个字符串,并返回一个整数。parseInt(string, radix) string为要解析的字符串,radix为表示要解析的数字的基数。该值介于 2 ~ 36 之间。

1.如果字符串的第一个字符不能被转换为数字,那么 parseInt() 会返回 NaN。

2. 只有字符串中的第一个数字会被返回。 

 console.log(parseInt('1a')); //1
 console.log(parseInt('1a') === 1); //true

九、静态方法和实例方法

 class类中静态方法只能由类访问,实例方法只能用实例对象访问

            class A {
                static run() {
                    console.log('run');
                }
                siwm() {
                    console.log('swim');
                }
            }
            const a = new A();
            A.run(); //静态方法只能由类访问
            a.siwm(); //实例方法只能由实例对象访问

十、valueOf

 valueOf()函数返回指定对象的原始值。

console.log((5).valueOf()); //数字型 5
console.log([1, 2, 3].valueOf()); //字符串 [1,2,3]
console.log('123'.valueOf()); //数组 123
console.log(Boolean(0).valueOf()); //false

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值