まず、よくある質問は、ECMAScript と JavaScript の関係は何ですか? ECMAScript は国際的に標準化されたスクリプト言語です。 JavaScript は、ECMAScript、DOM、BOM で構成されています。簡単に言えば、ECMAScript は JavaScript の言語仕様であり、JavaScript は ECMAScript の実装と拡張です。 2011 年に ECMAScript バージョン 5.1 がリリースされました。私たちのほとんどは以前は ES5 を使用していました。 2015年6月にECMAScript 6が正式に承認され、国際標準となりました。 1. ブロックスコープ {}ES5 のスコープは、グローバル スコープと関数スコープです。ブロックスコープの概念はありません。 ブロックスコープは ES6 で追加されました。ブロックスコープは { } に含まれ、if 文と for 文内の { } もブロックスコープに属します。 <script type="text/javascript"> { var a = 1; コンソールログ(a); // 1 } コンソールログ(a); // 1 // var で定義された変数はブロックスコープを越えてアクセスできます。 (関数A() { var b = 2; コンソールログ(b); // 2 })(); // console.log(b); // エラー、 // var で定義された変数は関数スコープを越えてアクセスできないことがわかります if(true) { var c = 3; } コンソール.log(c); // 3 (var i = 0; i < 4; i++) { var d = 5; }; console.log(i); // 4 (ループの終了時に i はすでに 4 なので、ここでも i は 4 です) コンソールログ(d); // 5 // if 文および for 文内で var で定義された変数は外部からアクセスできます。 // if 文と for 文は関数スコープではなくブロックスコープに属していることがわかります。 </スクリプト> 2. var、let、constの違い
<script type="text/javascript"> // ブロックスコープ { var a = 1; b = 2 とします。 定数 c = 3; // c = 4; // エラー var aa; bb とします。 // const cc; // エラー console.log(a); // 1 コンソールログ(b); // 2 コンソール.log(c); // 3 console.log(aa); // 未定義 console.log(bb); // 未定義 } コンソールログ(a); // 1 // console.log(b); // エラー // console.log(c); // エラー // 関数スコープ (関数 A() { var d = 5; e = 6 とします。 定数f = 7; コンソールログ(d); // 5 コンソールログ(e); // 6 コンソールログ(f); // 7 })(); // console.log(d); // エラー // console.log(e); // エラー // console.log(f); // エラー</script> 3. const で定義されたオブジェクトのプロパティは変更できますか?これは今日面接中に遭遇した質問です。const は変更できないと書いてあったので、すぐに「いいえ」と答えました。しかし、実際にテストしてみると間違いであることがわかったので、ここに記録しておきます。 定数人 = { 名前: 'jiuke', 性別:「男性」 } person.name = 'テスト' console.log(人.名前) 上記のコードを実行すると、 person オブジェクトの name 属性が実際に変更されていることがわかります。何が起こっているのでしょうか? オブジェクトは参照型であるため、オブジェクトへのポインタのみが直接格納されます。つまり、const はポインタが変更されないことのみを保証します。オブジェクトのプロパティを変更しても、オブジェクトのポインタは変更されないため、変更は許可されます。つまり、const で定義された参照型のポインタが変更されない限り、他の変更はすべて許可されます。 次に、ポインターを変更して新しいオブジェクトをポイントできるようにしようとすると、エラーが返されます。 定数人 = { 名前: 'jiuke', 性別:「男性」 } 人 = { 名前: 'テスト', 性別:「男性」 } JavaScript es6 の var、let、const の違いに関する詳細なケース分析に関するこの記事はこれで終わりです。JavaScript es6 の var、let、const の違いについてさらに詳しく知りたい場合は、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Linux でのマルチスレッドおよびマルチプロセス クラッシュのシミュレーションに関する簡単な説明
>>: MySQL の完全バックアップとクイックリカバリ方法
この記事では、pycharm2017でpython3.6とmysqlを接続する方法を参考までに紹介し...
デフォルトでは、セルの幅と高さはコンテンツに応じて自動的に調整されますが、セルの幅と高さを手動で設定...
大規模なシステムに取り組んだことがある人なら誰でも、ログの役割を過小評価してはならないことを知ってい...
序文:データベースを日常的に使用すると、パスワードが単純すぎて変更する必要がある場合、パスワードの有...
まず問題の説明から始めましょう:同じページで、1 つのタブに float:left が必要で、もう ...
目次水波効果実装を見てみましょう水の波紋のデフォルトスタイルをカスタマイズする水の波紋の位置と直径を...
この記事では、写真の自動再生効果を実現するためのJSの具体的なコードを参考までに紹介します。具体的な...
問題の説明最近、仕事中に問題が発生しました。MySQL が起動に失敗しました。エラー ログは次のとお...
この記事では、Frameset が作成した、できるだけシンプルなフレームワークを紹介します。さて、ま...
黄金律プロジェクトに何人の人が取り組んでいるかに関係なく、すべてのコード行が同じ人によって書かれたよ...
top コマンドは、Linux システムのパフォーマンスを監視するために誰もが使用している最適なコマ...
1. クリアフローティング法1前の親要素の高さを設定します。注: エンタープライズ開発では、可能であ...
目次1. 操作要素1.1. 要素コンテンツの変更1.2. innerText と innerHtml...
1. レンダリングを見る進むを選択: 後方を選択: コードは次のとおりです(例): <テンプレ...
カルーセル主なアイデアは次のとおりです。大きなコンテナには、コンテナの幅の整数倍の非常に長いテーブル...