ホームページ > 記事 > ウェブフロントエンド > JavaScriptで変数を宣言する4つの方法とは何ですか
JavaScript で変数を宣言する 4 つの方法: 1. 「var a;」など、「var」を使用して変数を宣言します。 2. 「function Fun (num)」など、「function」を使用して変数を宣言します。 {}"; 3. "let" を使用して変数を宣言します。 4. "const" を使用して変数を宣言します。
このチュートリアルの動作環境: Windows 7 システム、ECMAScript バージョン 6、Dell G3 コンピューター。
JavaScript で変数を宣言するにはいくつかの方法があります:
検証してみましょう
検証方法 1:
function repeatFun (num) { return num; } repeatFun(10); // 10 var repeatFun = 1; repeatFun(2); // Uncaught TypeError: repeatFun is not a function
このメソッドは var を使用して変数を繰り返し宣言しますが、後者は前の機能を上書きします
見てみましょうここで何が起こったかを見てください:
実行結果に基づいて、ブラウザのメモリにrepeatFun変数があると推測できます。これは以前の関数であり、後にvarキーワードによって再宣言され、最初は1に変更されました。
検証方法 2:
{ let repeatFun = 1; function repeatFun (num) { return num } } // Uncaught SyntaxError: Identifier 'repeatFun' has already been declared
2 つ目の方法は、
ES6 の構文を使用することです。繰り返し宣言できない let の機能を使用して、関数も同様であることを証明します。宣言された変数
変数宣言のプロモーション
繰り返し宣言
scope
const の特別な点は、宣言後に変更することはできません (参照型と基本型の動作のいくつかの違い) 異なる)
var b = a + 1; // b: NaN var a = 1; // a: 1まず、宣言します。変数 b が最初に認識され、初期化された値は 1 (a の値は何ですか?) です。
次に、変数 a は次のようになります。宣言され、初期認識は 1 です。
これは、コードが表面的にどのように見えるかです。これらのことを行うとき、実際に行われることは次のとおりです。
変数が宣言されるたびに、その変数は宣言はコードの先頭に配置され、初期化が一度実行されます。値は未定義ですが、代入位置は変更されません。
var b; var a; b = a +1; // b: NaN a = 1; // a: 1
let b = a + 1; // Uncaught ReferenceError: a is not defined let a = 1;実行時にスコープ エラーが直接スローされます。このように変更すると、エラーは発生しません:
let a = 1; // a: 1 let b = a + 1; // b: 2const で、変数昇格に関しても同じように実行します。
Duplicate宣言
var は繰り返し宣言でき、後者はオーバーライドします。 前者var a = 1; var a = 2; var b = a + 1; // 3
最初に変数 a を宣言し、1
に初期化します。次に変数 a を再度宣言し、2
let a = 1; let a = 2; // Uncaught SyntaxError: Identifier 'a' has already been declared
var a = 1; let a = 2; //Uncaught SyntaxError: Identifier 'a' has already been declared
var num = 5; function factorial(num) { var result = 1,resultValue = 0; for (let i = num - 1; i >= 1; i--) { if (i === num - 1) { resultValue = num * i; }else{ resultValue = num * i / num; } result *= resultValue; } // i 是用 let 进行定义它的作用域仅仅被限制在 for 循环的区域内 // i++;// Uncaught ReferenceError: i is not defined return result; } // result 是用 var 进行定义,他的活动区域在 factorial 函数内 // result++; // var的作用域.html:34 Uncaught ReferenceError: result is not defined factorial(num); // 120
例 2、const スコープを確認します:
{ const NUM_1 = 10; } let b = NUM_1 + 1; // Uncaught ReferenceError: NUM_1 is not defined例 3、var がグローバル変数を定義できることを確認し、let と const はローカル変数のみを定義できることを確認します
// 可以挂载到全局作用域上 // var name = 'window scoped'; let name = 'let scoped'; //是不挂载到全局作用域中 let obj = { name: 'myName', sayName () { return function () { console.log(this.name); // 打印出来为空 }; } } obj.sayName()(); console.log(window); //name 这个属性的值没有,如下图
若这样改一下就可以得到我们想要的值:
这个同时也涉及到新问题 this 的指向。后面的文章再详细举例验证
const 与 let , var 其实还是有些地方不一样的
例子1:验证 const 的特殊之处(一)<br>
const NUM = 100; NUM = 1000; // Uncaught TypeError: Assignment to constant variable
但是也有例外
例子二:验证 const 的特殊之处(二)
const obj = { name: 'xiaoMing', sayName () { return this.name } }; obj.sayName(); // xiaoMing obj.name = 'xiaoHong'; obj.sayName(); // xiaoHong
若这样改一下: <br> 例子三:验证 const 的特殊之处(三)
const obj = { name:'xiaoMing', sayName(){ return this.name } }; obj = {}; // Uncaught TypeError: Assignment to constant variable
更多编程相关知识,请访问:编程视频!!
以上がJavaScriptで変数を宣言する4つの方法とは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。