ホームページ > ウェブフロントエンド > jsチュートリアル > let ステートメントを使用して JavaScript でスコープを宣言する (画像とテキストのチュートリアル)

let ステートメントを使用して JavaScript でスコープを宣言する (画像とテキストのチュートリアル)

亚连
リリース: 2018-05-21 13:40:50
オリジナル
1380 人が閲覧しました

まず、let は ES6 のものであることに注意してください。少なくとも IE10 より前の IE ブラウザーと互換性があるので注意してください。それでは、JavaScript で let ステートメントを使用してスコープを宣言する方法を見てみましょう

構文

let variable1 = value1
ログイン後にコピー

パラメータvariable1
宣言される変数の名前。
value1
変数に割り当てられる初期値。

備考 let ステートメントを使用して、スコープが宣言されているブロックに限定される変数を宣言します。宣言時に変数に値を割り当てることも、スクリプトの後半で変数に値を割り当てることもできます。
let で宣言した変数は宣言前に使用することはできません。使用しないとエラーが発生します。
変数が let ステートメントで初期化されていない場合は、JavaScript 値 undefine が自動的に割り当てられます。

例:

var l = 10;
{
  let l = 2;
  // At this point, l = 2.
}
// At this point, l = 10.

// Additional ways to declare a variable using let.
let index;
let name = "Thomas Jefferson";
let answer = 42, counter, numpages = 10;
let myarray = new Array();
ログイン後にコピー

ブロックレベルのスコープ

for(var i = 0; i < 10; i++){}
console.log(i); //10

for(let j = 0; j < 10; j++){}
console.log(j); //"ReferenceError: j is not defined
ログイン後にコピー

変数のプロモーションはありません

console.log(a); // 输出undefined
console.log(b); // 报错ReferenceError
console.log(c); // 报错ReferenceError
var a = 2;
let b = 2;
ログイン後にコピー

未定義とReferenceErrorの違いに注意してください

一時デッドゾーン(TDZ)現在の値を入力している限りブロック レベルのスコープ、すべて 使用されている変数はすでに存在しますが、宣言される前はデッド ゾーンにあり、操作できません。
注: typeof は 100% 安全な操作ではなくなりました

typeof x; // ReferenceError
typeof y // undefined
let x;
ログイン後にコピー

重複した宣言は許可されません

let x = 1;
let x; // "SyntaxError: Identifier &#39;x&#39; has already been declared

var y = 2;
var y = 3; // y = 3
ログイン後にコピー

ブロックレベルのスコープ

// 匿名函数写法
(function () {
 var tmp = ...;
 ...
}());

// 块级作用域写法
{
 let tmp = ...;
 ...
}
ログイン後にコピー

ES5 の厳密モードでは、関数はトップレベルのスコープでのみ宣言できると規定されており、関数、その他の状況のステートメント (if コード ブロックやループ コード ブロックなど) はエラーを報告します。

// ES5
&#39;use strict&#39;;
if (true) {
 function f() {} // 报错
}
ログイン後にコピー

ES6 ではブロックレベルのスコープが導入されているため、この状況は関数がブロックレベルのスコープで宣言されているためエラーは報告されないため理解できますが、ブロックを構成する中括弧が欠落しているわけにはいきません

// 报错
&#39;use strict&#39;;
if (true)
 function f() {}
ログイン後にコピー

宣言されたグローバル変数はウィンドウではなくなりました

"use strict";
var a = 1;
console.log(window.a) // 1

let b = 1;
console.log(window.b) // undefined
ログイン後にコピー

の属性をまとめたものです。今後皆さんのお役に立てれば幸いです。

関連記事:

javascript関数の深い理解と実践的な使い方(コード添付)

基本的なJavaScriptスキル(画像とテキストのチュートリアル、詳細な回答)

JavaScriptの詳細な回答モジュール

以上がlet ステートメントを使用して JavaScript でスコープを宣言する (画像とテキストのチュートリアル)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート