2013-10-26 64 views
0

观察JavaScript代码的以下各行不同的信息:typeof运算和运营商的instanceof返回同一变种

<!DOCTYPE html> 
<html> 
    <head> 
     <title>typeof vs instanceof</title> 
    </head> 
    <body> 
     <script type="text/javascript"> 

var myString = "MyString"; 
alert(typeof myString); 
alert(myString instanceof String); 

     </script> 
    </body> 
</html> 

第一警报说string(小写)当第二说false ...

为什么?

+1

可能重复(http://stackoverflow.com/questions/203739/why-does-instanceof-return-false-for-some-literals) – BoltClock

回答

1

你很困惑原始类型string和您的对象的类型对象,它是String的实例。他们不同。

var s = "a"; // a string, typeof is "string" 
var s = new String("a"); // an instance of String, typeof is "object" 
的[为什么的instanceof返回一些文字错误?]
+1

谢谢!就像在Double和double之间的Java一样......但是Java中的字符串总是objets,它们在Java中不是原始的“字符串”,甚至是文字。 – Aubin