Twitter hashtag: #esspec
便利ツール
時事ネタ
自己紹介 (近況報告)
syumai syumai.icon
Go / TSを書いて暮らしてます
Meguro.esで何か話したい
tars0x9752 (たーず / naoki aoyama) tars0x9752.icon
特になし
iwatsurut
とくに、イベントもなく過ごしています。
yebis0942 (えびす) yebis0942.icon
GoとReact
Kyoto.go オフラインLT会
前回のあらすじ
今回の範囲
15.2.2 Static Semantics: FunctionBodyContainsUseStrict
code:js
const f = function () {
"use hoge";
"fuga";
'use strict';
"fugafuga";
with ({}) {
}
};
// SyntaxError: Strict mode code may not include a with statement
10.2.11 FunctionDeclarationInstantiation
direct eval or indirect eval
20. Else,
a. NOTE: A separate Environment Record is needed to ensure that bindings created by direct eval calls in the formal parameter list are outside the environment where parameters are declared.
code:js
// このケースを言ってそう (bindings created by direct eval calls in the formal parameter list)
const f = function (a, b = eval("var c = 2; 1")) {
console.log(a, b, c);
};
f(); // undefined 1 2
// 別の例
const f = function (
a,
b = eval("var c = 2; console.log(c); 1"),
c = 3,
) {
console.log(a, b, c);
};
f();
/*
var c = 2; console.log(c); 1
^
SyntaxError: Identifier 'c' has already been declared
*/
code:js
(function () {
const f = function (a, b, c = 1) {
console.log(c); // 1 (ただし、次の行の変数cを、パラメータcの初期値によって初期化した値)
var c = 5;
console.log(c); // 5
};
f();
})();