2013-10-26 99 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