反正我感覺我被這道題侮辱了智商,好吧,我承認這是我平常沒有認證思考的鍋哦!
var str = 'name';
str.len = 4;
console.log(str.len);
當時我簡單一看直接就給出了答案 4 ,面試官對我冷冷一笑,我就知道自己又傻了。下來一看發現這麼簡單的問題,頓時羞愧啊!
// 我們定義了一個字符串,字符串是基本數據類型
var str = 'name' ;
//這裏給str設置了一個key:len ;value:4
str.len = 4;
//上面也說了str是一個基本數據類型,所以說是不可能添加key和value的,所以結果爲undefined,而不是4
console.log(str.len);
var strPrimitive = "I am a string";
typeof strPrimitive; // "string"
strPrimitive instanceof String; // false
這裏的 strPrimitvie 代表了’I am a string’,並不是一個對象,僅僅是一個字面量,並且是一個不可變的值。換種角度來看 strPrimitive 並不是 String類的實例,只有當strPrimitive 爲 String 的實例的時候,通過instance檢測的時候纔回返回true。
var strObject = new String( "I am a string" );
typeof strObject; // "object"
strObject instanceof String; // true
// 檢查 sub-type 對象
Object.prototype.toString.call( strObject ); // [object String]