JavaScript Use Strict

"use strict"; ¶¨Òå JavaScript ´úÂëÓ¦¸ÃÒÔ¡°Ñϸñģʽ¡±Ö´ÐС£

"use strict" Ö¸Áî

"use strict" ÊÇ JavaScript 1.8.5 ÖеÄÐÂÖ¸ÁECMAScript version 5£©¡£

Ëü²»ËãÒ»ÌõÓï¾ä£¬¶øÊÇÒ»¶ÎÎÄ×Ö±í´ïʽ£¬¸üÔç°æ±¾µÄ JavaScript »áºöÂÔËü¡£

"use strict"; µÄ×÷ÓÃÊÇָʾ JavaScript ´úÂëÓ¦¸ÃÒÔ¡°Ñϸñģʽ¡±Ö´ÐС£

ÔÚÑϸñģʽÖУ¬ÄúÎÞ·¨£¬ÀýÈ磬ʹÓÃδÉùÃ÷µÄ±äÁ¿¡£

ÒÔϰ汾µÄä¯ÀÀÆ÷Ö§³ÖÑϸñģʽ£º

  • °æ±¾ 10 ÒÔºóµÄ IE
  • °æ±¾ 4 ÒÔºóµÄ Firefox
  • °æ±¾ 13 ÒÔºóµÄ Chrome
  • °æ±¾ 5.1 ÒÔºóµÄ Safari
  • °æ±¾ 12 ÒÔºóµÄ Opera

ÉùÃ÷Ñϸñģʽ

ͨ¹ýÔڽű¾»òº¯ÊýµÄ¿ªÍ·Ìí¼Ó "use strict"; À´ÉùÃ÷Ñϸñģʽ¡£

Ôڽű¾¿ªÍ·½øÐÐÉùÃ÷£¬ÓµÓÐÈ«¾Ö×÷ÓÃÓò£¨½Å±¾ÖеÄËùÓдúÂë¾ùÒÔÑϸñģʽÀ´Ö´ÐУ©£º

ʵÀý

"use strict";
x = 3.14;       // Õâ»áÒý·¢´íÎó£¬ÒòΪ x ÉÐδÉùÃ÷

Ç××ÔÊÔÒ»ÊÔ

ʵÀý

"use strict";
myFunction();

function myFunction() {
     y = 3.14;   // Õâ»áÒý·¢´íÎó£¬ÒòΪ y ÉÐδÉùÃ÷
}

Ç××ÔÊÔÒ»ÊÔ

ÔÚº¯ÊýÖÐÉùÃ÷Ñϸñģʽ£¬ÓµÓоֲ¿×÷ÓÃÓò£¨Ö»Óк¯ÊýÖеĴúÂëÒÔÑϸñģʽִÐУ©£º

x = 3.14;       // Õâ²»»áÒý·¢´íÎó
myFunction();

function  myFunction() {
	"use strict";
	 y = 3.14;   // Õâ»áÒý·¢´íÎó
}

Ç××ÔÊÔÒ»ÊÔ

"use strict"; Óï·¨

ÉùÃ÷ÑϸñģʽµÄÓï·¨±»Éè¼ÆÎª¼æÈݸüÔç°æ±¾µÄ JavaScript¡£

±àÒë JavaScript ³ÌÐòÖеÄÊýÖµÎÄ×Ö£¨±ÈÈç 4+5£©»ò×Ö·û´®ÎÄ×Ö£¨"Bill Gates"£©²»»áÓиºÃæÐ§¹û¡£ËüÖ»»á±àÒëΪ²»´æÔڵıäÁ¿È»ºóÏûʧ¡£

ËùÓÐ "use strict"; Ö»»á¶Ô¡°Àí½â¡±Æäº¬ÒåµÄбàÒëÆ÷²úÉúÓ°Ïì¡£

ΪʲôʹÓÃÑϸñģʽ£¿

ÑϸñģʽʹÎÒÃǸüÈÝÒ×±àд¡°°²È«µÄ¡± JavaScript¡£

Ñϸñģʽ°Ñ֮ǰ¿É½ÓÊܵġ°»µÓï·¨¡±×ª±äÎªÕæÊµµÄ´íÎó¡£

¾ÙÀýÀ´Ëµ£¬ÔÚÆÕͨµÄ JavaScript ÖУ¬´í´ò±äÁ¿Ãû»á´´½¨ÐµÄÈ«¾Ö±äÁ¿¡£ÔÚÑϸñģʽÖУ¬´Ë¾Ù½«Å׳ö´íÎó£¬ÕâÑù¾Í²»¿ÉÄÜÒâÍâ´´½¨È«¾Ö±äÁ¿¡£

ÔÚÆÕͨ JavaScript ÖУ¬Èç¹ûÏò²»¿ÉдÊôÐÔ¸³Öµ£¬¿ª·¢Õß²»»áµÃµ½ÈκδíÎó·´À¡¡£

ÔÚÑϸñģʽÖУ¬Ïò²»¿ÉдµÄ¡¢Ö»ÄܶÁÈ¡µÄ¡¢²»´æÔÚµÄÊôÐÔ¸³Öµ£¬»òÕßÏò²»´æÔڵıäÁ¿»ò¶ÔÏó¸³Öµ£¬½«Å׳ö´íÎó¡£

ÑϸñģʽÖв»ÔÊÐíµÄÊÂÏî

ÔÚ²»ÉùÃ÷±äÁ¿µÄÇé¿öÏÂʹÓñäÁ¿£¬ÊDz»ÔÊÐíµÄ£º

"use strict";
x = 3.14;                // Õ⽫Òý·¢´íÎó

Ç××ÔÊÔÒ»ÊÔ

¶ÔÏóÒ²ÊDZäÁ¿

ÔÚ²»ÉùÃ÷¶ÔÏóµÄÇé¿öÏÂʹÓöÔÏóÒ²ÊDz»ÔÊÐíµÄ£º

"use strict";
x = {p1:10, p2:20};      // Õ⽫Òý·¢´íÎó

Ç××ÔÊÔÒ»ÊÔ

ɾ³ý±äÁ¿£¨»ò¶ÔÏó£©ÊDz»ÔÊÐíµÄ£º

"use strict";
var x = 3.14;
delete x;                // Õ⽫Òý·¢´íÎó

Ç××ÔÊÔÒ»ÊÔ

ɾ³ýº¯ÊýÊDz»ÔÊÐíµÄ£º

"use strict";
function x(p1, p2) {}; 
delete x;                 // Õ⽫Òý·¢´íÎó

Ç××ÔÊÔÒ»ÊÔ

ÖØ¸´²ÎÊýÃûÊDz»ÔÊÐíµÄ£º

"use strict";
function x(p1, p1) {};   // Õ⽫Òý·¢´íÎó

Ç××ÔÊÔÒ»ÊÔ

°Ë½øÖÆÊýÖµÎı¾ÊDz»ÔÊÐíµÄ£º

"use strict";
var x = 010;             // Õ⽫Òý·¢´íÎó

Ç××ÔÊÔÒ»ÊÔ

תÒå×Ö·ûÊDz»ÔÊÐíµÄ£º

"use strict";
var x = \010;            // Õ⽫Òý·¢´íÎó

Ç××ÔÊÔÒ»ÊÔ

дÈëÖ»¶ÁÊôÐÔÊDz»ÔÊÐíµÄ£º

"use strict";
var obj = {};
Object.defineProperty(obj, "x", {value:0, writable:false});

obj.x = 3.14;            // Õ⽫Òý·¢´íÎó

Ç××ÔÊÔÒ»ÊÔ

дÈëÖ»ÄÜ»ñÈ¡µÄÊôÐÔÊDz»ÔÊÐíµÄ£º

"use strict";
var obj = {get x() {return 0} };

obj.x = 3.14;            // Õ⽫Òý·¢´íÎó

Ç××ÔÊÔÒ»ÊÔ

ɾ³ý²»¿Éɾ³ýµÄÊôÐÔÊDz»ÔÊÐíµÄ£º

"use strict";
delete Object.prototype; // Õ⽫Òý·¢´íÎó

Ç××ÔÊÔÒ»ÊÔ

×Ö·û´® "eval" ²»¿ÉÓÃ×÷±äÁ¿£º

"use strict";
var eval = 3.14;         // Õ⽫Òý·¢´íÎó

Ç××ÔÊÔÒ»ÊÔ

×Ö·û´® "arguments" ²»¿ÉÓÃ×÷±äÁ¿£º

"use strict";
var arguments = 3.14;    // Õ⽫Òý·¢´íÎó

Ç××ÔÊÔÒ»ÊÔ

with Óï¾äÊDz»ÔÊÐíµÄ£º

"use strict";
with (Math){x = cos(2)}; // Õ⽫Òý·¢´íÎó

Ç××ÔÊÔÒ»ÊÔ

´¦ÓÚ°²È«¿¼ÂÇ£¬²»ÔÊÐí eval() ÔÚÆä±»µ÷ÓõÄ×÷ÓÃÓòÖд´½¨±äÁ¿£º

"use strict";
eval ("var x = 2");
alert (x);               // Õ⽫Òý·¢´íÎó

Ç××ÔÊÔÒ»ÊÔ

ÔÚÀàËÆ f() µÄº¯Êýµ÷ÓÃÖУ¬this µÄÖµÊÇÈ«¾Ö¶ÔÏó¡£ÔÚÑϸñģʽÖУ¬ÏÖÔÚËü³ÉΪÁË undefined¡£

¶ÔδÀ´µÄ±£ÕÏ

ÑϸñģʽÖв»ÔÊÐíʹÓÃΪδÀ´Ô¤ÁôµÄ¹Ø¼ü´Ê¡£ËüÃÇÊÇ£º

  • implements
  • interface
  • let
  • package
  • private
  • protected
  • public
  • static
  • yield
"use strict";
var public = 1500;      // Õ⽫Òý·¢´íÎó

Ç××ÔÊÔÒ»ÊÔ

¾¯¸æ

"use strict" Ö¸ÁîÖ»ÄÜÔڽű¾»òº¯ÊýµÄ¿ªÍ·±»Ê¶±ð¡£

VUE