據說所有的都是javascript中的對象。但是我發現像null,undefined,true,'foo'這樣的原始值不是對象。真的嗎?JavaScript中的對象是什麼?
什麼是在JavaScript中的對象和什麼是JavaScript中的非對象?什麼是原始的價值呢?
如果我理解以下是真的嗎?
var str1 = "hello world!"; // primitive value
var str2 = String("hello world!");// object value
據說所有的都是javascript中的對象。但是我發現像null,undefined,true,'foo'這樣的原始值不是對象。真的嗎?JavaScript中的對象是什麼?
什麼是在JavaScript中的對象和什麼是JavaScript中的非對象?什麼是原始的價值呢?
如果我理解以下是真的嗎?
var str1 = "hello world!"; // primitive value
var str2 = String("hello world!");// object value
JavaScript有兩類值
Primitives - 數字,字符串,布爾,不確定的,空
Objects - 所有其他價值,包括數組和函數
原始之間的主要區別es和對象是基元是不變的和自定義/ adhoc屬性不能被分配給原始值。
數字,字符串和布爾基元類型具有相應的對象類型:數字,字符串和布爾值。然而,沒有相應的對象類型爲undefined或null - 這些值是孤獨的單身人士。
關聯類型包含[prototype],當應用隱式轉換時,它允許原語以其他方式「行爲」對象在該方法中可以對其調用。例如,"foo".trim()
調用String.prototype.trim
函數。
數/字符串/布爾函數,當不用作構造函數,也作爲轉換適用的原始值。
"foo" // is string (primitive)
String("foo") // is string (primitive)
new String("foo") // is String (object)
"foo" === String("foo") // -> true
"foo" === new String("foo") // -> false
一般應該使用原始類型來避免混淆。
請參閱最新的問題。 –
是這個原始物體還是物體? 「foo」=== new String(「foo」)// - > false –
''foo「'計算爲一個原始字符串,但是'new String(」foo「)'計算爲一個String對象。在'==='的規則下,一個Object只等於*本身*(如果因爲隱式轉換使用了'==',它仍然是真的)。 – user2864740
It is said that all are the objects in javascript. But I found that the primitive values like null, undefined, true, 'foo' are not objects.
如果你讀了documentation,它已經給
在JavaScript中,幾乎一切都是對象。除null和undefined之外的所有基本類型 都被視爲對象。它們可以被賦予 屬性(某些類型的賦值屬性不是永久的),並且它們具有對象的所有特性。
一切,但原始的值對象。 –