ReferenceError: assignment to undeclared variable "x"
ä¿¡æ¯
ReferenceError: assignment to undeclared variable "x" (Firefox) ReferenceError: "x" is not defined (Chrome) ReferenceError: Variable undefined in strict mode (Edge)
é误类å
ä»
å¨ä¸¥æ ¼æ¨¡å¼ä¸åºç° ReferenceError è¦åã
åçäºä»ä¹ï¼
å¨ä»£ç éèµå¼äºä¸ä¸ªæªå£°æçåéãæ¢å¥è¯è¯´ï¼æå¤æ²¡æå¸¦ç var å
³é®åçèµå¼ãäºå®ä¸å·²å£°æçåæªå£°æçåéä¹é´æä¸äºå·®å¼ï¼è¿å¯è½ä¼å¯¼è´ææ³ä¸å°çç»æï¼è¿å°±æ¯ä¸ºä»ä¹ JavaScript å¨ä¸¥æ ¼æ¨¡å¼æå°åºè¿ç§é误ã
å ³äºå·²å£°æåæªå£°æçåéï¼å ¶æä¸ä¸ªæ³¨æäºé¡¹ï¼
- 已声æçåé被约æå¨å ¶æ§è¡ä¸ä¸æä¸ãæªå£°æçåéæ»æ¯å ¨å±çã
- 已声æçåé卿§è¡ä»»ä½ä»£ç ä¹åå°±å建äºãæªå£°æçåéåä¸åå¨ï¼ç´å°æ§è¡ç¸å ³ç代ç ã
- 已声æçåéæ¯å ¶æ§è¡ä¸ä¸æï¼å½æ°æå ¨å±ï¼çä¸å¯é ç½®å±æ§ãèæªå£°æçå鿝å¯é ç½®çï¼ä¾å¦å¯ä»¥å é¤ï¼ã
æ´å¤ä¿¡æ¯åä¾åï¼è¯·åè var 页é¢ã
å ³äºæªå£°æåéçèµå¼çéè¯¯ä» å¨ä¸¥æ ¼æ¨¡å¼éåºç°ãå¨éä¸¥æ ¼æ¨¡å¼ä¸ï¼è¿äºå°è¢«å¿½ç¥ã
示ä¾
>æ æç
卿¬ä¾ä¸ï¼"bar" æ¯æªå£°æçåéã
js
function foo() {
"use strict";
bar = true;
}
foo(); // ReferenceError: assignment to undeclared variable bar
ææç
为äºä½¿ "bar" æ¯ä¸ä¸ªå·²å£°æåéï¼ä½ éè¦å¨å ¶åé¢å ä¸ä¸ª var å ³é®åã
js
function foo() {
"use strict";
var bar = true;
}
foo();