JavaScript ã® strict ã¢ã¼ãã®ã¿ã®ä¾å¤ "is read-only" ã¯ãä»£å ¥ãããã°ãã¼ãã«å¤æ°ã¾ãã¯ãªãã¸ã§ã¯ãããããã£ãèªã¿åãå°ç¨ããããã£ã§ãã£ãå ´åã«çºçãã¾ãã
ã¨ã©ã¼ã¡ãã»ã¼ã¸TypeError: Assignment to read-only properties is not allowed in strict mode (Edge)
TypeError: "x" is read-only (Firefox)
TypeError: 0 is read-only (Firefox)
TypeError: Cannot assign to read only property 'x' of #<Object> (Chrome)
TypeError: Cannot assign to read only property '0' of [object Array] (Chrome)
ã¨ã©ã¼ã®ç¨®é¡ ã¨ã©ã¼ã®åå
ä»£å ¥ãããã¨ããã°ãã¼ãã«å¤æ°ãã¾ãã¯ãªãã¸ã§ã¯ãã®ããããã£ãèªã¿åãå°ç¨ããããã£ã§ãã (æè¡çã«ã¯ã non-writable ãã¼ã¿ããããã£ã§ãã)
ãã®ã¨ã©ã¼ã¯ã strict ã¢ã¼ãã®ã³ã¼ãã«ã ãçºçãã¾ãã strict ã³ã¼ãã§ã¯ãªãå ´åãå²ãå½ã¦ã¯ç¡è¦ãããã ãã§ãã
ä¾ ç¡å¹ãªå ´åèªã¿åãå°ç¨ããããã£ã¯ãã»ã©ä¸è¬çã§ã¯ããã¾ãããã Object.defineProperty()
ãã¾ã㯠Object.freeze()
ã使ç¨ãã¦çæãããã¨ãã§ãã¾ãã
"use strict";
var obj = Object.freeze({ name: "Elsa", score: 157 });
obj.score = 0; // TypeError
("use strict");
Object.defineProperty(this, "LUNG_COUNT", { value: 2, writable: false });
LUNG_COUNT = 3; // TypeError
("use strict");
var frozenArray = Object.freeze([0, 1, 2]);
frozenArray[0]++; // TypeError
JavaScript ã®çµã¿è¾¼ã¿ã«ããããã¤ãèªã¿åãå°ç¨ããããã£ãããã¾ããæ°å¦çãªå®æ°ãåå®ç¾©ãããã¨ããã¨ãã¾ãã
"use strict";
Math.PI = 4; // TypeError
æ®å¿µãªããã§ãã¾ããã
ã°ãã¼ãã«å¤æ°ã® undefined
ãèªã¿åãå°ç¨ã®ããããã®ããã«ããã¨æªåé«ã "undefined is not a function" ã¨ã©ã¼ãçºçãã¾ãã
"use strict";
undefined = function () {}; // TypeError: "undefined" is read-only
æå¹ãªå ´å
"use strict";
var obj = Object.freeze({ name: "Score", points: 157 });
obj = { name: obj.name, points: 0 }; // æ°ãããªãã¸ã§ã¯ãã§ç½®ãæãã
("use strict");
var LUNG_COUNT = 2; // `var` ã使ããã¦ããã®ã§ãèªã¿åãå°ç¨ã§ã¯ãªã
LUNG_COUNT = 3; // ok (è§£åå¦çã«ã¯ããããããã©ã)
é¢é£æ
å ±
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4