對屬性的更改

嚴格模式還會阻止你刪除不可刪除的屬性。

"use strict";
delete Object.prototype; // throws a TypeError

如果不使用嚴格模式,則會忽略上述語句,但是現在你知道它為什麼不按預期執行。

它還會阻止你擴充套件不可擴充套件的屬性。

var myObject = {name: "My Name"}
Object.preventExtensions(myObject);

function setAge() {
    myObject.age = 25;   // No errors
}

function setAge() {
    "use strict";
    myObject.age = 25;  // TypeError: can't define property "age": Object is not extensible
}