首頁 >web前端 >js教程 >javascript物件的使用與屬性操作範例詳解_基礎知識

javascript物件的使用與屬性操作範例詳解_基礎知識

WBOY
WBOY原創
2016-05-16 16:57:41969瀏覽

JavaScript 中所有變數都是對象,除了兩個例外 null 和 undefined。

複製程式碼 程式碼如下:

false.toString(); 🎜>[1, 2, 3].toString(); // '1,2,3'

function Foo(){}
Foo.bar = 1;
Foo.bar ; // 1

一個常見的誤解是數字的字面值(literal)不是物件。這是因為 JavaScript 解析器的一個錯誤, 它試圖將點運算子解析為浮點數數位面值的一部分。

複製程式碼 程式碼如下:
2.toString(); 🎜>

有很多變通方法可以讓數字的字面值看起來像物件。

複製程式碼 程式碼如下:
2..toString(); // 第二個點號可以正常解析
2 .toString(); // 注意點號前面的空格
(2).toString(); // 2先計算

 
物件作為資料型別

JavaScript 的物件可以當作雜湊表使用,主要用來保存命名的鍵與值的對應關係。

使用物件的字面語法 - {} - 可以建立一個簡單物件。這個新建立的物件從Object.prototype 繼承下面,沒有任何自訂屬性。

複製程式碼 程式碼如下:
var foo = {}; // 一個物件

// 一個新對象,擁有一個值為12的自訂屬性'test'
var bar = {test: 12};


存取屬性

有兩種方式來存取物件的屬性,點運算子或中括號運算子。

複製程式碼 代碼如下:
var foo = {name: 'kitten'}


var foo = {name: 'kitten'}
foo.name; // kitten
foo['name']; // kitten

var get = 'name';
foo[get]; // kitten

foo.1234; // SyntaxError
foo['1234']; // works

兩種語法是等價的,但是中括號操作符在下面兩種情況下依然有效- 動態設定屬性- 屬性名稱不是一個有效的變數名稱(譯者註:例如屬性名稱包含空格,或屬性名稱是JS 的關鍵字)

譯者註:在 JSLint 語法偵測工具中,點操作符是建議做法。

 

刪除屬性

刪除屬性的唯一方法是使用 delete 操作符;設定屬性為 undefined 或null 並不能真正的刪除屬性, 而只是移除了屬性和值的關聯。

程式碼如下:


14
var obj>

14
var obj> : 1,
    foo: 2,
    baz: 3
};
obj.bar = undefined;
obj.foo = null]obj.foo = null]obj.foo = null>;
;obj.
for(var i in obj) {
    if (obj.hasOwnProperty(i)) {
        console.log(i, '' obj[i]))
; 🎜>

上面的輸出結果有bar undefined 和foo null - 只有baz 被真正的刪除了,所以從輸出結果中消失。

 

屬性名的語法

複製程式碼
程式碼如下:


var test = {
 I am a keyword so I must be notated as a string',
    delete: 'I am a keyword too so me' // 錯:SyntaxError
};


物件的屬性名稱可以使用字串或普通字元宣告。但由於 JavaScript 解析器的另一個錯誤設計, 上面的第二種宣告方式在 ECMAScript 5 之前會拋出SyntaxError 的錯誤。

這個錯誤的原因是 delete 是 JavaScript 語言的關鍵字;因此為了在更低版本的 JavaScript 引擎下也能正常運行, 必須使用字串字面值宣告方式。
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn