search

Home  >  Q&A  >  body text

javascript - 前端面试题之 js哪些变量不可当作对象使用?

题目如下:
js变量不可当作对象使用的是?
1.Date
2.false
3.null
4.undefined
5.NaN
不是很理解这题的意思,求助。

PHPzPHPz2816 days ago536

reply all(5)I'll reply

  • 迷茫

    迷茫2017-04-11 09:44:54

    你自己typeof一下看看结果:

    console.log(typeof Date);//function
    console.log(typeof false);//boolean
    console.log(typeof null);//object
    console.log(typeof undefined);//undefined
    console.log(typeof NaN);//number

    其中function也是一种特殊的object。剩下的booleannumber, undefined是原始数据类型。

    当然javascript里number也有对象类型Numberboolean也有对象类型Boolean

    题目中“js变量不可当作对象使用”这话有点难理解,我也不确定在考什么。期待神人解答。

    reply
    0
  • 阿神

    阿神2017-04-11 09:44:54

    如果这道题目是考察 JS 基本类型,那么如 @leftstick 所述,只有 Date 是一个对象。
    如果这道题进一步考察包装类型,那么 false NaN 有其对应的包装类型 Boolean 和 Number,不过包装类型并不能当作正常对象来使用,对上述变量的属性赋值操作都是无意义的。

    所以这道题的正确解答是:这个面试者没什么水平。

    reply
    0
  • 巴扎黑

    巴扎黑2017-04-11 09:44:54

    undefined

    因为:

    • new Date()

    • new Boolean()

    • null是一种特殊的object ; new Object()

    • NaN 是一种特殊的Number ; new Number()

    reply
    0
  • ringa_lee

    ringa_lee2017-04-11 09:44:54

    这个问题没有讨论的意义,除非提问者(面试者)给出“不可当作对象使用”的准确含义。

    reply
    0
  • 阿神

    阿神2017-04-11 09:44:54

    JavaScript 中所有变量都可以当作对象使用,除了两个例外 null 和 undefined。
    具体查看:http://bonsaiden.github.io/Ja...

    reply
    0
  • Cancelreply