ReferenceError
åºçº¿
广æ³å¯ç¨
*
èª 2015å¹´7æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
* æ¤ç¹æ§çæäºé¨åçæ¯æç¨åº¦å¯è½ææä¸åã
ReferenceErrorï¼å¼ç¨é误ï¼å¯¹è±¡ä»£è¡¨å½ä¸ä¸ªä¸åå¨ï¼æå°æªåå§åï¼çåé被å¼ç¨æ¶åççé误ã
ReferenceError æ¯ä¸ä¸ªå¯åºååå¯¹è±¡ï¼æä»¥å¯ä»¥ä½¿ç¨ structuredClone() 对å®è¿è¡å
éï¼ä¹å¯ä»¥ä½¿ç¨ postMessage() å¨ Worker ä¹é´æ·è´å®ã
æé 彿°
ReferenceError()-
å建ä¸ä¸ªæ°ç
ReferenceError对象ã
å®ä¾å±æ§
Error.prototype.message-
éè¯¯æ¶æ¯ãç»§æ¿èª
Errorã Error.prototype.name-
é误åç§°ãç»§æ¿èª
Errorã Error.prototype.cause-
表示导è´å½åé误被æåºçåå ãç»§æ¿èª
Errorã Error.prototype.fileName-
å¼åæ¤é误çæä»¶çè·¯å¾ãç»§æ¿èª
Errorã Error.prototype.lineNumber-
å¼åæ¤é误çä»£ç æå¨çæä»¶çè¡å·ãç»§æ¿èª
Errorã Error.prototype.columnNumber-
å¼åæ¤é误ç代ç 卿件䏿å¨è¡çåå·ãç»§æ¿èª
Errorã Error.prototype.stack-
å æ è·è¸ªãç»§æ¿èª
Errorã
示ä¾
>æè·ä¸ä¸ª ReferenceError
try {
let a = undefinedVariable;
} catch (e) {
console.log(e instanceof ReferenceError); // true
console.log(e.message); // "undefinedVariable is not defined"
console.log(e.name); // "ReferenceError"
console.log(e.fileName); // "Scratchpad/1"
console.log(e.lineNumber); // 2
console.log(e.columnNumber); // 6
console.log(e.stack); // "@Scratchpad/2:2:7\n"
}
å建ä¸ä¸ª ReferenceError
try {
throw new ReferenceError("Hello", "someFile.js", 10);
} catch (e) {
console.log(e instanceof ReferenceError); // true
console.log(e.message); // "Hello"
console.log(e.name); // "ReferenceError"
console.log(e.fileName); // "someFile.js"
console.log(e.lineNumber); // 10
console.log(e.columnNumber); // 0
console.log(e.stack); // "@Scratchpad/2:2:9\n"
}
è§è
| è§è |
|---|
| ECMAScript® 2027 Language Specification> # sec-native-error-types-used-in-this-standard-referenceerror> |