javaScript常用知識實例分享
物件
物件可以透過兩種形式定義: 聲明形式與建構形式
#宣告形式語法: var myObj = {key:value}
建構形式語法: var myObj = new Object(); myObj.key = value;
類型: 語言類型有六種 : string number boolean null undefined object
#內建物件: String Number Boolean Object Function Array Date RegExp Error
var myObject = {
a:2
}
## 存取myObject["a"] // 2
鍵存取##
ES6可計算屬性名稱
## ES6
可計算屬性名稱#var prefix = "foo";
var myObject = {
[prefix + "bar"] : "hello",
#[prefix + "baz"]: "world"
};
myObject["foobar"]; // hello
myObject["foobaz"]; // world1.writable
決定是否可以修改屬性的值var myObject = {};
Object.defineProperty(myObject,"a",{value:
2,writable:false, // 不可寫
!configurable: true,
enumerable: true
});
myObject.a = 3;
myObject.a; // 2
2.configurable 只要屬性是可設定的,就可以使用defineProperty(..)
方法來修改描述屬性。var myObject = {
a : 2
};
myObject.a = 3;
myObject. a; // 3
Object.defineProperty(myObject,"a",{value: 4
#,
writable:true,configurable:false,//
無法設定enumerable: ture
});
myObject.a; // 4
myObject.a = 5;
myObject.a; // 5
Object.defineProperty(myObject,"a ",{value: 6
,writable:true,
configurable:true ,
enumerable: ture
}) // TypeErrorconfigurable 修改成flash
是單向的,無法撤銷delete
只用來刪除物件的可刪除屬性。var myObject = {a:
#2}
;myObject.a //2
delete myObject.a;
myObject.a // undefined3.enumerable
控制的是屬性是否出現在物件的屬性枚舉中。 ######1.物件常數,結合writable: false #和configurable: false 就可以建立一個真正的常數屬性
(不可修改,重新定義或刪除)。
var myObject = {};
Object.defineProperty(myObject,"FAVORITE_NUMBER",{
value:42 ,
writable: false,
configurable: false
})
2.禁止擴展
禁止一個物件新增屬性並保留現有屬性,可以使用Object.preventExtensions(...)
var myObject = {
a:2
};
Object.preventExtensions(myObject);
myObject.b = 3;
myObject.a; / / undefined
3.存檔
Object.seal(...) 會建立一個「封存的物件」,這個方法實際上會在一個現有物件上呼叫
Object.preventExtensions(...) 並把所有屬性標記為configurable:false.
4.凍結
Object.freeze(...) 會建立一個凍結對象,這個方法其實是會在一個現有物件上呼叫
Object.seal(...) ,還可以深度凍結一個物件。
Getter和Setter
#var myObject = {
// 給予#a 定義一個getter
get a() {
return 2;
}
}
myObject.a = 3;
myObject.a; // 2
由於只定義了 a 的getter,所以對a 的值進行設定時set #操作會忽略賦值運算,不會拋出錯誤。
通常來講getter 和setter是成對出現的
var myObject = {
// 給a #定義一個getter
##get a( ) {return this._a_;},#//給a 定義一個setter
set a(val) {this._a_ = val * 2;##}
};
myObject.a = 2;
myObject.a; // 2
存在性別可以在不存取屬性的情況下判斷物件中是否存在這個屬性: #var myObject = { a:2 }; ("a" in myObject); // true ("b" in myObject); // false myObject.hasOWnProper("a"); // true myObject.hasOwnProperty("b"); // false in 操作符會檢查屬性是否在物件及[[Prototype]]原型鏈中。 hasOwnProperty(...) 只會檢查屬性是否在myObject物件中。 判斷屬性是否可列舉: var myObject = {}; Object.defineProperty( # myObject, "a", // 讓a像普通屬性一樣可列舉 {enumerable: true,value:2} ); Object.defineProperty( myObject, "b", // 讓b 不可枚舉 #{enumerable: false,value:3} ) myObject.propertyIsEnumberable("a"); // true myObject.propertyIsEnumber("b"); // false Object.keys(myObject); / / ["a"] Object.getOwnPropertyName(myObject); // ["a","b"] propertyIsEnumerable(...) #會檢查給定的屬性名稱是否直接存在於物件中(而不是在原型鏈)並且滿足enumerable:true Object.keys(...) 會傳回一個陣列,包含所有可枚舉屬性 Object.getOwnPropertyNames(...) 傳回一個數組,包含所有屬性,無論是否可枚舉 遍歷 可以用來遍歷物件的可枚舉屬性清單 對於數值索引的陣列來說,可以使用標準的for 循環 中新增的 forEach(..) every(.. .) some(..) 會遍歷數組中所有值並忽略回呼函數的回傳值。 會一直運行到回呼函數回傳false 會一直運行到回呼函數回傳true 增加 for .. of #循環語法 ## console.log(v) # } @@iterator,可以給任何想遍歷的物件自訂var myObject = { a:2, b:3 }; Object.defineProperty(myObject,Symbol.iterator,{ #enumerable: false, writable: false, configurable: true, value: function() { var o = this; #var idx = 0; var ks = Object.keys(o); return { next: function(){ value: o[ks[idx++]], done:(idx > ks.length) } #} } }) / / 手動遍歷myObject var it = myObject[Symbol.iterator](); it.next(); // {值:2,done: false} it.next(); // {值:3,done: false} it.next(); // {undefined,done: true} // 用for..of 遍歷myObject console.log(v) } // 2 // 3 #
以上是javaScript常用知識實例分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

如何使用WebSocket和JavaScript實現線上語音辨識系統引言:隨著科技的不斷發展,語音辨識技術已成為了人工智慧領域的重要組成部分。而基於WebSocket和JavaScript實現的線上語音辨識系統,具備了低延遲、即時性和跨平台的特點,成為了廣泛應用的解決方案。本文將介紹如何使用WebSocket和JavaScript來實現線上語音辨識系

人臉偵測辨識技術已經是一個比較成熟且應用廣泛的技術。而目前最廣泛的網路應用語言非JS莫屬,在Web前端實現人臉偵測辨識相比後端的人臉辨識有優勢也有弱勢。優點包括減少網路互動、即時識別,大大縮短了使用者等待時間,提高了使用者體驗;弱勢是:受到模型大小限制,其中準確率也有限。如何在web端使用js實現人臉偵測呢?為了實現Web端人臉識別,需要熟悉相關的程式語言和技術,如JavaScript、HTML、CSS、WebRTC等。同時也需要掌握相關的電腦視覺和人工智慧技術。值得注意的是,由於Web端的計

WebSocket與JavaScript:實現即時監控系統的關鍵技術引言:隨著互聯網技術的快速發展,即時監控系統在各個領域中得到了廣泛的應用。而實現即時監控的關鍵技術之一就是WebSocket與JavaScript的結合使用。本文將介紹WebSocket與JavaScript在即時監控系統中的應用,並給出程式碼範例,詳細解釋其實作原理。一、WebSocket技

股票分析必備工具:學習PHP和JS繪製蠟燭圖的步驟,需要具體程式碼範例隨著網路和科技的快速發展,股票交易已成為許多投資者的重要途徑之一。而股票分析是投資人決策的重要一環,其中蠟燭圖被廣泛應用於技術分析。學習如何使用PHP和JS繪製蠟燭圖將為投資者提供更多直觀的信息,幫助他們更好地做出決策。蠟燭圖是一種以蠟燭形狀來展示股票價格的技術圖表。它展示了股票價格的

如何利用JavaScript和WebSocket實現即時線上點餐系統介紹:隨著網路的普及和技術的進步,越來越多的餐廳開始提供線上點餐服務。為了實現即時線上點餐系統,我們可以利用JavaScript和WebSocket技術。 WebSocket是一種基於TCP協定的全雙工通訊協議,可實現客戶端與伺服器的即時雙向通訊。在即時線上點餐系統中,當使用者選擇菜餚並下訂單

如何使用WebSocket和JavaScript實現線上預約系統在當今數位化的時代,越來越多的業務和服務都需要提供線上預約功能。而實現一個高效、即時的線上預約系統是至關重要的。本文將介紹如何使用WebSocket和JavaScript來實作一個線上預約系統,並提供具體的程式碼範例。一、什麼是WebSocketWebSocket是一種在單一TCP連線上進行全雙工

隨著網路金融的快速發展,股票投資已經成為了越來越多人的選擇。而在股票交易中,蠟燭圖是常用的技術分析方法,它能夠顯示股票價格的變動趨勢,幫助投資人做出更精準的決策。本文將透過介紹PHP和JS的開發技巧,帶領讀者了解如何繪製股票蠟燭圖,並提供具體的程式碼範例。一、了解股票蠟燭圖在介紹如何繪製股票蠟燭圖之前,我們首先需要先了解什麼是蠟燭圖。蠟燭圖是由日本人

JavaScript和WebSocket:打造高效的即時天氣預報系統引言:如今,天氣預報的準確性對於日常生活以及決策制定具有重要意義。隨著技術的發展,我們可以透過即時獲取天氣數據來提供更準確可靠的天氣預報。在本文中,我們將學習如何使用JavaScript和WebSocket技術,來建立一個高效的即時天氣預報系統。本文將透過具體的程式碼範例來展示實現的過程。 We
