{
"$type": "site.standard.document",
"canonicalUrl": "https://blog.nove-b.dev//posts/test-let-specification-javascript",
"path": "/posts/test-let-specification-javascript",
"publishedAt": "2023-06-21T00:00:00.000Z",
"site": "at://did:plc:2atly2y5kfyjcj5zap6pv4wd/site.standard.publication/3mmxeqr2tcb2k",
"tags": [
"javascript",
"let",
"問題"
],
"textContent": "先日、とあるSNSを見ていたら、JavaScriptの問題が出されていた。\n\nさて、ここで問題\n\nこのコードを実行した結果、どのような結果が求められるでしょう。\n\n予想\n\n面白そうなので実行する前に推測してみる。 まず、If文がtrueなので当然のようにIfの中身が実行される。 ここでLetの仕様の話になるのだが、Letは関数内でスコープされるので、先頭で定義されたLetとIf文の中のLetは違うものだということになる。\n\n結果、If文の中のaは20となり、outsideのaはどこからも影響を受けずに10のままになる。\n\nつまり2が正解になると予想される。\n\n結果\n\n正しいと証明された。\n\nたぶん予想の仮説も正しいが、念のためChat Gptに聞いてみる。\n\nうん、同じことを言っているので一安心した。\n\nVar or Const\n\nVar\n\nちなみにVarで定義すると、aが毎回上書きされるので、\n\nになる。\n\nConst\n\nConstもLetと同様の結果になる。",
"title": "letの仕様に関する知識を問うJavaScriptの問題"
}