Baseline Widely available
var
æã¯é¢æ°ã¹ã³ã¼ãã¾ãã¯ã°ãã¼ãã«ã¹ã³ã¼ãã®å¤æ°ã宣è¨ããä»»æã§ãããããå¤ã«åæåãã¾ãã
var x = 1;
if (x === 1) {
var x = 2;
console.log(x);
// Expected output: 2
}
console.log(x);
// Expected output: 2
æ§æ
var name1;
var name1 = value1;
var name1 = value1, name2 = value2;
var name1, name2 = value2;
var name1 = value1, name2, /* â¦, */ nameN = valueN;
nameN
夿°åã§ããæ£è¦ã®èå¥åã§ãã
valueN
çç¥å¯
ãã®å¤æ°ã®åæå¤ã§ããæå¹ãªå¼ãªãä½ã§ãåããã¨ãã§ãã¾ããæ¢å®å¤ã¯ undefined
ã§ãã
ãããã¯ãæ§é åè§£ã使ç¨ãã¦å¤æ°ã宣è¨ãããã¨ãã§ãã¾ãã
var { bar } = foo; // where foo = { bar:10, baz:12 };
/* ããã¯ãå¤ã 10 ã® 'bar' ã¨ããååã®å¤æ°ã使ãã¾ãã */
解説
var
宣è¨ã¯ãç¾ããå ´æã«é¢ä¿ãªããã³ã¼ããå®è¡ããåã«å¦çããã¾ããããã¯å·»ãä¸ãã¨å¼ã°ãã¦ãããå¾è¿°ãã¾ãã
var
ã§å®£è¨ããã夿°ã®ã¹ã³ã¼ãã¯ããã®ç¾å¨ã®å®è¡ã³ã³ããã¹ãã¨ãã®ã¯ãã¼ã¸ã£ã§ããããã®ä¸ã§å®£è¨ããã颿°ããããã¯é¢æ°ã®å¤ã§å®£è¨ããã夿°ã®å ´åã¯ã°ãã¼ãã«ã«ãªãã¾ããvar
ã使ç¨ãã¦å¤æ°ãéè¤ãã¦å®£è¨ãã¦ãã峿 ¼ã¢ã¼ãã§ãã£ã¦ãã¨ã©ã¼ã¯çºçãããå¥ã®ä»£å
¥ãå®è¡ãããªãéãã夿°ã®å¤ã¯å¤±ããã¾ããã
function foo() {
var x = 1;
function bar() {
var y = 2;
console.log(x); // 1 (function `bar` closes over `x`)
console.log(y); // 2 (`y` is in scope)
}
bar();
console.log(x); // 1 (`x` is in scope)
console.log(y); // ReferenceError, `y` 㯠`bar` ã®ã¹ã³ã¼ã
}
foo();
var
ã使ç¨ãã¦å®£è¨ããã夿°ã¯ãã³ã¼ããå®è¡ããããããåã«çæãããããã¯å·»ãä¸ãã¨å¼ã°ãã¦ãã¾ãããããã®å¤æ°ã®åæå¤ã¯ undefined
ã§ãã
console.log(x); // undefinedï¼æ³¨: ReferenceError ã§ã¯ãªãï¼
console.log("still going..."); // still going...
var x = 1;
console.log(x); // 1
console.log("still going..."); // still going...
ã°ãã¼ãã«ã³ã³ããã¹ãã«ããã¦ã¯ãvar
ã使ç¨ãã¦å®£è¨ããã夿°ã¯ãã°ãã¼ãã«ãªãã¸ã§ã¯ãã®æ§æä¸å¯è½ãªããããã£ã¨ãã¦è¿½å ããã¾ããããã¯ãããããã£è¨è¿°åã夿´ãããã¨ãã§ãããdelete
ã使ç¨ãã¦åé¤ãããã¨ãã§ããªããã¨ãæå³ãã¾ãã対å¿ããååã¯ã°ãã¼ãã«ç°å¢ã¬ã³ã¼ã ï¼ã°ãã¼ãã«åå¥ç°å¢ã®ä¸é¨ã®å½¢ï¼å
é¨ã® [[VarNames]]
ã¹ãããã«ã追å ããã¾ãã[[VarNames]]
å
ã®ååã®ãªã¹ãã«ãããã©ã³ã¿ã¤ã ãã°ãã¼ãã«å¤æ°ã¨ã°ãã¼ãã«ãªãã¸ã§ã¯ãã®ç´æ¥ã®ããããã£ãåºå¥ãããã¨ãã§ãã¾ãã
ã°ãã¼ãã«å¤æ°ç¨ã®ã°ãã¼ãã«ãªãã¸ã§ã¯ãã«ä½æãããããããã£ã¯ãã°ãã¼ãã«ãªãã¸ã§ã¯ãã®ç´æ¥ã®ããããã£ã§ã¯ãªããèå¥åã夿°ã¨ãã¦æ±ããã¨ã«ãªããããæ§æä¸å¯ã«è¨å®ããã¦ãã¾ãã JavaScript ã«ã¯èªåã¡ã¢ãªã¼ç®¡çæ©è½ããããããã°ãã¼ãã«å¤æ°ã« delete
æ¼ç®åã使ããããã«ãã¦ãæå³ãããã¾ããã
"use strict";
var x = 1;
Object.hasOwn(globalThis, "x"); // true
delete globalThis.x; // 峿 ¼ã¢ã¼ãã§ã¯ TypeErrorããã以å¤ã®å ´åã¯æé»ã«å¤±æãã¾ãã
delete x; // 峿 ¼ã¢ã¼ãã§ã¯ SyntaxErrorããã以å¤ã®å ´åã¯æé»ã«å¤±æãã¾ãã
ãªãã NodeJS ã® CommonJS ã¢ã¸ã¥ã¼ã«ã¨ãã¤ãã£ãã® ECMAScript ã¢ã¸ã¥ã¼ã«ã®ã©ã¡ãããæä¸ä½ã®å¤æ°å®£è¨ã¯ãã®ã¢ã¸ã¥ã¼ã«ã®ã¹ã³ã¼ãã¨ãªãã®ã§ãã°ãã¼ãã«ãªãã¸ã§ã¯ãã®ããããã£ã¨ãã¦ã¯è¿½å ããã¾ããã
ç¡ä¿®é£¾ã®èå¥åã®ä»£å ¥ã°ãã¼ãã«ãªãã¸ã§ã¯ãã¯ãã¹ã³ã¼ããã§ã¤ã³ã®æä¸ä½ã«ä½ç½®ãã¾ããååãå¤ã«è§£æ±ºãããã¨ããã¨ãã¹ã³ã¼ããã§ã¤ã³ãæ¤ç´¢ããã¾ããããã¯ãã°ãã¼ãã«ãªãã¸ã§ã¯ãã®ããããã£ããã¹ã¦ã®ã¹ã³ã¼ãããã globalThis.
ã window.
ã global.
ãªã©ã®ä¿®é£¾åãªãã§ä¾¿å©ã«è¦ããã¨ãã§ãããã¨ãæå³ãã¾ãã
ã°ãã¼ãã«ãªãã¸ã§ã¯ã㯠String
ããããã£ãæã£ã¦ããã®ã§ï¼Object.hasOwn(globalThis, 'String')
ï¼ã以ä¸ã®ã³ã¼ãã使ç¨ãããã¨ãã§ãã¾ãã
function foo() {
String("s"); // `String` 颿°ãæé»ã«è¦ãã
}
ã¤ã¾ããã°ãã¼ãã«ãªãã¸ã§ã¯ãã¯æçµçã«ä¿®é£¾ããã¦ããªãèå¥åãæ¤ç´¢ãããã¨ã«ãªãã¾ããglobalThis.String
ã¨è¨è¿°ããå¿
è¦ã¯ãªãã修飾ããã¦ããªã String
ã¨è¨è¿°ããã°ããã®ã§ãã峿 ¼ã¢ã¼ãã§ãªãå ´åã¯ãã¹ã³ã¼ããã§ã¤ã³ã§å®£è¨ããã¦ããååã®å¤æ°ããªãå ´åã¯ãã°ãã¼ãã«ãªãã¸ã§ã¯ãä¸ã«ãã®ååã®ããããã£ã使ãããã¨ãã¦ããã¨ä»®å®ãã¦ãé修飾èå¥åã«ä»£å
¥ãããã¨ã«ãªãã¾ãã
foo = "f"; // 峿 ¼ã¢ã¼ãã§ãªãå ´åã¯ã`foo` ã¨ããååã®ããããã£ã使ãããã¨ãã¦ããã¨è¦ãªã
Object.hasOwn(globalThis, "foo"); // true
峿 ¼ã¢ã¼ãã§ã¯ã修飾ããã¦ããªãèå¥åã¸ã®ä»£å
¥ãããã¨ããã¨ãReferenceError
ãçºçããã°ãã¼ãã«ãªãã¸ã§ã¯ãã«æå³ããããããã£ãçæããããã¨ãé²ãã¾ãã
ä¸è¨ã®æå³åãã¯ãä¸è¬çã«èª¤è§£ããã¦ãã¾ãããJavaScript ã«ã¯æé»ã®å¤æ°ã宣è¨ããã¦ããªã夿°ãã¯åå¨ãããåã«ãã®ããã«è¦ããæ§æãæã£ã¦ããã ãã ã¨ãããã¨ã«æ³¨æãã¦ãã ããã
var ã®å·»ãä¸ãvar
ã®å®£è¨ã¯ã³ã¼ããå®è¡ããåã«å¦çããã¾ãã®ã§ã夿°ã¯ã³ã¼ãå
ã®ã©ãã§å®£è¨ãã¦ããã³ã¼ãã®å
é ã§å®£è¨ãããã®ã¨ç価ã«ãªãã¾ããã¾ãã夿°ã宣è¨ããåã«å¤æ°ã使ç¨ãããã¨ãã§ãã¾ãããã®åä½ã¯ã夿°ã®å®£è¨ã颿°ãã°ãã¼ãã«ã®ã³ã¼ãã®å
é ã«ç§»åããããã«è¦ãããããå·»ãä¸ãã¨å¼ã°ãã¾ãã
次ã®ããã«è¦ãªããã¾ãã
ãã®ããã夿°ã¯å¸¸ã«ã¹ã³ã¼ãï¼ã°ãã¼ãã«ã®ã³ã¼ãã¾ãã¯é¢æ°ã®ã³ã¼ãï¼ã®å é ã§å®£è¨ãããã¨ããå§ããã¾ããããããã°ã©ã®å¤æ°ã颿°ã¹ã³ã¼ãï¼ãã¼ã«ã«ï¼ã§ãããããããã¯ã¹ã³ã¼ããã§ã¤ã³ã«ãã£ã¦è§£æ±ºããããã®ããæç¢ºã«ãªãã¾ãã
ããã§éè¦ãªã®ã¯ã夿°ã®å®ç¾©ã®ã¿ãå·»ãä¸ããããåæåã¯å·»ãä¸ããããªããã¨ã§ããåæåã¯ä»£å
¥æã«å°éããã¨ãã«ã®ã¿è¡ããã¾ããããã¾ã§ã¯å¤æ°ã¯ undefined
ï¼ãã ã宣è¨ãããç¶æ
ï¼ã®ã¾ã¾ã«ãªãã¾ãã
function do_something() {
console.log(bar); // undefined
var bar = 111;
console.log(bar); // 111
}
ããã¯ãæé»çã«ã¯æ¬¡ã®ããã«è§£éããã¾ãã
function do_something() {
var bar;
console.log(bar); // undefined
bar = 111;
console.log(bar); // 111
}
ä¾ 2 ã¤ã®å¤æ°ã宣è¨ãã¦åæåãã 2 ã¤ã®å¤æ°ã« 1 ã¤ã®æååã代å
¥ãã
ããã¯ã以ä¸ã¨ç価ã§ãã
é çªã«æ³¨æãã¦ãã ããã
var x = y,
y = "A";
console.log(x + y); // undefinedA
ããã§ã¯ã³ã¼ããå®è¡ããåã« x
㨠y
ã宣è¨ããããã®ãã¨ã«ä»£å
¥ãè¡ãã¾ãã"x = y
" ãå®è¡ããã¨ããy
ãåå¨ãã¾ãã®ã§ ReferenceError
ã¯çºçãããå¤ã¯ undefined
ã«ãªãã¾ãããã£ã¦ãx
ã« undefined å¤ã代å
¥ããã¾ããããã¦ãy
ã«å¤ 'A' ã代å
¥ããã¾ãããã®çµæã1 è¡ç®ã®å¾ã¯ x === undefined && y === 'A'
ã¨ãªããæçµçµæã«è³ãã¾ãã
var x = 0;
function f() {
var x = y = 1; // x ã¯ãã¼ã«ã«ã§å®£è¨ããã¾ããy ã¯éãã¾ã!
}
f();
console.log(x, y); // 0 1
// 峿 ¼ã¢ã¼ãã§ã¯ãªãå ´å:
// x ã¯æ³å®ã©ãããã°ãã¼ãã«å´ã®å¤æ°ã§ãã
// ããããy ã¯é¢æ°ã®å¤é¨ã«æ¼ãåºã¦ãã¾ã!
ä¸è¨ã¨åãä¾ã峿 ¼ã¢ã¼ãã§å®è¡ããå ´åã¯ã次ã®ããã«ãªãã¾ãã
"use strict";
var x = 0;
function f() {
var x = y = 1; // 峿 ¼ã¢ã¼ãã§ã¯ ReferenceError ãçºçãã¾ãã
}
f();
console.log(x, y);
æé»ã®ã°ãã¼ãã«å¤æ°ã¨é¢æ°ã¹ã³ã¼ãã®å¤é¨
æé»çã«ã°ãã¼ãã«ã«ç¾ãã夿°ã¯ã颿°ã¹ã³ã¼ãã®å¤é¨ã§åç §ãããã¨ãã§ãã¾ãã
var x = 0; // x ã¯ãã¡ã¤ã«ã¹ã³ã¼ãã§å®£è¨ãã¦ãå¤ 0 ã代å
¥
console.log(typeof z); // z ã¯ã¾ã åå¨ãã¦ããªãããã "undefined" ã«ãªã
function a() {
// a ãå¼ã³åºãã¨ã
var y = 2; // y ã颿° a ã®ã¹ã³ã¼ãã§å®£è¨ãã¦ãå¤ 2 ã代å
¥
console.log(x, y); // 0 2
function b() {
x = 3; // ãã¡ã¤ã«ã¹ã³ã¼ãã«ãã x ã« 3 ã代å
¥
y = 4; // å¤å´ã® y ã« 4 ã代å
¥
z = 5; // æ°ããªã°ãã¼ãã«å¤æ° z ãçæãã¦ãå¤ 5 ã代å
¥
// ï¼å³æ ¼ã¢ã¼ãã§ã¯ ReferenceError ãçºçï¼
}
b(); // ã°ãã¼ãã«å¤æ°ã¨ã㦠z ãçæ
console.log(x, y, z); // 3 4 5
}
a(); // b ãå¼ã³åºã
console.log(x, z); // 3 5
console.log(typeof y); // y ã¯é¢æ° a ã®ãã¼ã«ã«å¤æ°ã§ãããã "undefined" ã«ãªã
仿§æ¸ ãã©ã¦ã¶ã¼ã®äºææ§ é¢é£æ
å ±
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