ホームページ >ウェブフロントエンド >jsチュートリアル >jsでの変数プロモーションと関数プロモーションを詳しく解説

jsでの変数プロモーションと関数プロモーションを詳しく解説

小云云
小云云オリジナル
2018-02-06 11:44:591088ブラウズ

この記事では、jsによる変数プロモーションと関数プロモーション(詳細解説)についての記事をお届けします。編集者はこれが非常に良いものだと思ったので、皆さんの参考として今から共有します。編集者をフォローして見てみましょう。皆さんのお役に立てれば幸いです。

1. 変数のプロモーション

ES6 より前の JavaScript にはブロックレベルのスコープがなく (中括弧 {} のペアはブロックレベルのスコープです)、グローバル スコープと関数スコープのみがありました。変数ホイスティングは、変数宣言をスコープの先頭にホイストします。

最後の履歴書の例は次のとおりです。


console.log(global); // undefined
var global = 'global';
console.log(global); // global

function fn () {
console.log(a); // undefined
var a = 'aaa';
console.log(a); // aaa
}
fn();

上記の出力結果が表示される理由は、js の変数プロモーションによるものです。 実際、上記のコードは次のように実行されます。

2. 関数の改善

jsで関数を作成するには、関数宣言と関数リテラルの2つの方法があります。関数ホイスティングは関数宣言に対してのみ存在します。例:

var global; // 变量提升,全局作用域范围内,此时只是声明,并没有赋值
console.log(global); // undefined
global = 'global'; // 此时才赋值
console.log(global); // 打印出global

function fn () {
var a; // 变量提升,函数作用域范围内
console.log(a);
a = 'aaa';
console.log(a);
}
fn();

上記の出力結果が表示される唯一の理由は、js の関数プロモーションによってコードが実際に次のように実行されるためです:


console.log(f1); // function f1() {}  
console.log(f2); // undefined 
function f1() {}
var f2 = function() {}

結論: 基本的にはこれです。これをマスターすれば、さらに演習やテストを行うことができます:


function f1() {} // 函数提升,整个代码块提升到文件的最开始<br>console.log(f1);  
console.log(f2);  
var f2 = function() {}

console.log(f1()); 
console.log(f2);  
function f1() {console.log(&#39;aa&#39;)}
var f2 = function() {}

関連する推奨事項:


JavaScript 変数のプロモーションの詳細な説明


JS 変数のプロモーションの詳細な説明関数宣言の事前解析例

JS のスコープと変数ホイスティングについての深い理解

以上がjsでの変数プロモーションと関数プロモーションを詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。