JavaScript嚴格模式(三)- 物件的禁止操作
JavaScript嚴格模式(三)
在嚴格模式下哪些關於物件的操作是禁止的
不可刪除的屬性
在嚴格模式下,不能使用delete運算子刪除不可刪除的屬性
//開啟嚴格模式
"use strict"
delete Object.prototype;//刪除Object裡邊的原型
console.log(Object.prototype);//直接報錯
屬性名必須唯一
在嚴格模式下,一個物件內的所有屬性名在物件內必須唯一。
//開啟嚴格模式
"use strict"
//建立一個物件
var obj = {
name:'第一個屬性';
name:'第二個屬性';
}
console.log(obj.name);//第二個屬性
在開啟嚴格模式下,物件具有相同名稱的屬性時,執行時並不會報錯,但是編輯器會顯示報錯,這種寫法也沒有意義
只讀屬性的賦值
在嚴格模式下,不能為一個只讀的屬性進行重新賦值
//開啟嚴格模式
"use strict"
//建立一個物件
var obj = {
name:'milk'
}
//判斷當前指定的屬性是否為只讀屬性
var result = Object.getOwnPropertyDescriptor(obj,'name');
console.log(result);
//結果{value: 'milk', writable: true, enumerable: true, configurable: true} - 可以修改
//但是我們使用getOwnPropertyDescriptor()方法建立的物件屬性是隻讀屬性
Object.defineProperty(obj,'age',{
value:18
});
//然後針對只讀屬性age進行修改操作
obj.age = 80;
console.log(obj.age);//報錯
在非嚴格模式下 - 改變針對age只讀屬性的修改操作不會報錯,但是值還是18,我們管這種問題叫做靜默失敗
不可擴充套件的物件
在嚴格模式下,不能為不可擴充套件的物件新增新屬性
//開啟嚴格模式
"use strict"
//建立一個物件
var obj = {};
//設定物件obj是一個不可擴充套件的物件
Object.preventExtensions(obj);
//為物件obj新增屬性或方法
obj.name = 'milk';
console.log(obj);//直接報錯
在非嚴格模式下,還是靜默失敗
相關文章
- JavaScript嚴格模式JavaScript模式
- JavaScript 中的 嚴格模式JavaScript模式
- 嚴格模式和非嚴格模式區別模式
- 嚴格模式模式
- 你不知道的JavaScript--Item1 嚴格模式JavaScript模式
- JavaScript建立物件(三)——原型模式JavaScript物件原型模式
- 聊一聊JavaScript中的嚴格模式與相關的‘坑’JavaScript模式
- 如何禁止JavaScript物件重寫?JavaScript物件
- 嚴格模式use strict模式
- js嚴格模式下的this指向,es6模組預設使用嚴格模式JS模式
- JSON.parse () 的非嚴格模式JSON模式
- JS專題之嚴格模式JS模式
- JavaScript物件導向—物件的建立和操作JavaScript物件
- 好程式設計師web前端教程之詳解JavaScript嚴格模式程式設計師Web前端JavaScript模式
- JavaScript ----- 操作DOM物件的屬性JavaScript物件
- web基礎(四)嚴格模式與混雜模式Web模式
- JS 基礎篇(五):JS嚴格模式JS模式
- 《JavaScript物件導向精要》之六:物件模式JavaScript物件模式
- MySQL SELECT list is not in...MySQL關閉嚴格模式MySql模式
- JavaScript建立物件(一)——工廠模式JavaScript物件模式
- 《JavaScript物件導向精要》之三:理解物件JavaScript物件
- 使用React嚴格模式避免過時的程式碼和副作用React模式
- Javascript設計模式(三)單例模式JavaScript設計模式單例
- JavaScript中的物件學習筆記(屬性操作)JavaScript物件筆記
- 面試— !Doctype的作用,嚴格模式和混雜模式的區別、以及如何觸發兩種模式面試模式
- 瀏覽器中的JavaScript:文件物件模型與 DOM 操作瀏覽器JavaScript物件模型
- C++記憶體物件大會戰 禁止產生堆物件 禁止產生棧物件C++記憶體物件
- Javascript 物件導向程式設計(三)JavaScript物件程式設計
- JavaScript代理模式,怎麼實現物件的動態代理?JavaScript模式物件
- appium 怎麼禁止跳出 app 的操作APP
- Doctype的作用?嚴格模式與混合模式,如何觸發者這兩種模式,區分它們有何意義?模式
- 林大媽的JavaScript基礎知識(三):JavaScript程式設計(1)物件JavaScript程式設計物件
- Javascript 中實現物件原型繼承的三種方式JavaScript物件原型繼承
- JavaScript物件與建立物件的方式JavaScript物件
- JavaScript-設計模式-物件導向程式設計JavaScript設計模式物件程式設計
- JavaScript設計模式之物件導向程式設計JavaScript設計模式物件程式設計
- [譯] JavaScript — 繼承、委託模式和物件連結JavaScript繼承模式物件
- 交易策略-網格策略(三):示例操作一