innerHTML属性的返回值类型是String类型吗?

为什么console.log(typeof eleInner);  得到的值是string,
但是console.log(eleInner instanceof String);得到的值却是false
<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
    <p>HelloWorld</p>

    <script type="text/javascript">
        var eleP = document.querySelector("p");
        var eleInner = eleP.innerHTML;

        console.log(typeof eleInner);  //string
        console.log(eleInner instanceof String);  //false

    </script>
</body>
</html>
阅读 5.7k
5 个回答

eleInner只是以String为数据类型的值,并不属于String对象的实例。

clipboard.png

string 是 js 内置的 字符串类型;而 String 是一个 function。

所以 一个 string 类型的 值 不是 String 的实例

这和 innerHTML 有个雷锋关系.

'str' instanceof String // fasle
 在JavaScript中,数据类型都是用小写来表明的,比如:
 var num = 100;
 console.log(typeof num);
 得到将是小写的number

 var str = "HelloWorld";
 console.log(typeof str);
 得到的将是小写的string

 而string与String是不同的,string是一个数据类型的关键字,而String则是一个函数名,如:
 console.log(String);
 得到的将是function String(){}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题