js内置类型(js面试题)

本文解析JavaScript中基本类型、对象的区别,重点讨论typeof运算符的局限性,并深入探讨null与undefined在比较中的行为。通过实例揭示==运算符在不同情况下的转换规则,适合初学者理解类型判断和运算符陷阱。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

js中分为七种内置类型,七种内置类型又分为两大类:基本类型和对象(Object)。

基本类型:number, null, undefined, boolean, string, symbol。(number是浮点型的)

对象是引用类型。

typeof对于基本类型来说,除了null以外,其他都可以显示正确的类型。

console.log(typeof 1); // number
console.log(typeof '1'); // string
console.log(typeof undefined); // undefined
console.log(typeof true); // true
console.log(typeof Symbol()); // symbol
console.log(typeof null); // object (null的数据类型使用typeof判断有bug存在)

console.log(typeof b); // undefined  这里b没有声明依旧显示undefined

如果想要获取一个变量的正确类型,可以通过Object.propotype.tostrign.call()获取。

console.log(Object.prototype.toString.call(null)); // [object Null]

作为初学者,今天看了对象基本类型的转换,遇到了一些不理解的地方:

       js中这样介绍的:在条件判断时,除了undenfined, null, NaN, '', false, 0, -0, 其他所有值都转化为true, 包括所有对象。然后打印了一下,看结果:

console.log(false == undefined); // false
console.log(false == null); // false
console.log(false == NaN); // false
console.log(false == ''); // true
console.log(false == 0); // true
console.log(false == -0); // true

然后百度看了一下别人的博客undefined!=false之解 及==比较的规则 - 我的过去 - 博客园

最后的总结说,js中==两边的对象进行比较时,undefined会被转化为数字,转化为数字后的值又为NaN,所以在和undefined比较时,总是会返回false,对于null的还是不理解,基础太薄弱了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值