关于instanceof的疑问?

代码如下:

var ck=new String('aaaa')
ck instanceof Object   true
//////////////
var str='aaaa'
str instanceof Object   false

为什么第二个会显示false?这两个不都是字符串吗?

阅读 372
评论
    5 个回答
    • 1.3k

    JavaScript 中的数据有基础类型和包装对象的两种概念。基础类型是使用字面量声明是直接创建,包装对象就是使用 new String() 构造函数来创建实例的方式,不论是哪种数据类型的构造函数它们返回后都是个对象。
    基础类型的数据在程序中大多数情况都会被转换成包装对象,例如字符串的length属性及其他继承原型的方法或条件判断中的那些比较运算。之所以能使用这些原型继承方法和属性或进行不同类型数据间比较运算就是因为在运算过程中 JS 把它们先包装成对象,然后调用各种方法和属性来进行运算的。

      相似问题
      推荐文章