Javascriptの基礎を学ぶための10の重要な質問

Javascriptの基礎を学ぶための10の重要な質問

1. Javascript とは何ですか?

Javascript は Web 開発に使用されるプログラミング言語です。 JavaScript は Web のクライアント側で実行されます。

MDN によると、JavaScript (多くの場合、JS と略される) は、ファーストクラスの機能を備えた軽量で解釈型のオブジェクト指向言語であり、Web ページ用のスクリプト言語として最もよく知られていますが、多くの非ブラウザー環境でも使用されています。これは、動的で、オブジェクト指向、命令型、関数型プログラミング スタイルをサポートするプロトタイプ ベースのマルチパラダイム スクリプト言語です。

2. DOMとは何か

DOM は Document Object Model の略です。 Web ページが読み込まれると、ブラウザは HTML ファイルと CSS ファイルを使用して DOM を作成します。 DOM はノードと要素によって表されます。 JavaScript を使用して DOM を操作できます。ツリー構造です。

3. JSコードの実行方法

答えるべき質問は少し大きいです。しかし、それについて簡単に話すことはできます。 Javascript はブラウザ上で実行されます。ほぼすべてのブラウザには JavaScript エンジンが搭載されています。その中でもV8が最も人気があります。 Chrome は V8 エンジンを使用します。一方、Firefox は Spider-Monkey エンジンを使用します。

4. == と === の違い

簡単に言うと、== は 2 つの値が同じかどうかのみをチェックします。これらの値の型はチェックされません。次のコードを見てください。

if(2=="2"){
 コンソールログ("true")
} それ以外 {
コンソールログ("偽")
}

上記のコードは true をログに記録します。型をチェックしないので、2 と「2」は等しいとみなされるからです。

対照的に、=== はタイプと品質の両方をチェックします。例えば:

if(2==="2"){
 コンソールログ("true")
} それ以外 {
コンソールログ("偽")
}

これは false としてログに記録されます。 2 と「2」は値は同じですが、型が異なります。

5. Null と未定義

一般に、 null は空で存在しない値を表し、 undefined は宣言されているがまだ定義されていない値を表します。ただし、変数に明示的に undefined を設定することもできます。

var n;
console.log(typeof(n)); // 未定義

var n = null;
console.log(typeof(n)); // オブジェクト

興味深いのは、JS のオブジェクト タイプが null であることです。

6. Var と Let と Const

ES6 より前は、変数を宣言する唯一の方法は var でした。しかし、今では選択肢が増えました。

スコープという用語があります。スコープは、これらの変数を使用できる場所を指します。 var 宣言は、グローバル スコープまたは関数/ローカル スコープのいずれかになります。

Var をハングアップさせることは可能ですが、これについては数秒後に説明します。ただし、現在では変数の宣言には let が好まれます。コードの後半で変数を変更する必要がない場合は、const を使用できます。両者の違いを理解するには、以下の記事を読んでいただくと非常に役立つと思います。

7. 吊り上げ

JavaScript では、変数を宣言する前に使用することができます。変数と関数の宣言をコードの先頭に物理的に移動する概念は、変数巻き上げと呼ばれます。

console.log(num); // 宣言のみがホイストされたため、この段階では初期化が行われていないため、undefined が返されます。
var num; // 宣言
数値 = 6; 

それで、let 変数と const 変数は持ち上げられないのですか?答えはもっと複雑です。すべての宣言 (function、var、let、const、class) は JavaScript でホイストされますが、var 宣言は undefined で初期化されますが、let および const 宣言は初期化されないままになります。

8. グローバル変数とローカル変数

JavaScript では、スコープは 2 つの方法に分かれています。グローバルとローカル。

関数内で宣言された変数はローカル スコープと呼ばれます。この変数は関数外からはアクセスできません。対照的に、関数の外部で宣言された変数はグローバル スコープと呼ばれます。関数内でアクセスできます。

var general = "superhero" //グローバルスコープ
// ここのコードではスーパーヒーローは使えませんがジャンルは使えます
関数myFunction() {
  var superhero = "Batman"; // ローカルスコープ
  // ここのコードではスーパーヒーローとジャンルを使用できます
}

9. 終了

クロージャを使用すると、内部関数から外部関数のスコープにアクセスできるようになります。別の関数から関数を返すことによって作成できます。各インスタンスに対して閉じた環境を作成します。例えば:

関数 sum(x) {
  関数(y)を返す{
    x + y を返します。
  };
}

var add5 = sum(5);
var add10 = sum(10);

コンソール.log(add5(6)); // 11
コンソール.log(add10(6)); // 16

ここで、add5 と add10 は両方ともクロージャです。これらは同じ定義を共有しますが、異なる環境を保存します。

10. コールバック関数

MDN によれば、コールバック関数は別の関数に引数として渡され、その後、何らかのルーチンまたはアクションを完了するために外部関数内で呼び出される関数です。例えば

関数 greeting(名前) {
  console.log('Hello ' + 名前);
}

関数greetEmployee(名前,コールバック) {
  コールバック(名前);
}

従業員に挨拶します("ドワイト",挨拶);

ここでは、greeting 関数が greetingEmployee 関数内で使用されています。これをコールバック関数と呼びます。

この記事を読んでいただきありがとうございます。これが役に立つことを願っています。

これで、Javascript の基礎を学ぶ上で重要な 10 の問題についての記事は終了です。Javascript の基礎に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • JavaScript ドキュメント オブジェクト モデル DOM
  • JS の == と === の違いをご存知ですか?
  • JavaScript の未定義と null の相違例の分析
  • JavaScript es6 における var、let、const の違いの詳細な説明
  • Web面接におけるJS事前解析と変数プロモーションの違い
  • JavaScript におけるホイスティングの詳細説明(変数ホイスティングと関数宣言ホイスティング)
  • JavaScript でローカル変数をグローバル変数に変換する方法
  • JavaScript クロージャの説明
  • JavaScriptコールバック関数の詳細な理解

<<:  Docker swarm の簡単なチュートリアル

>>:  CSS3 border-radius 丸角の実装方法と使い方の詳しい説明

推薦する

CSS3 で transform を使用した場合のフォントぼかしの解決方法の詳細な説明

この質問は非常に奇妙なので、あまり多くを語らずにコードに直接進みます。 .g-ダイアログラッパー{ ...

MySQL クエリにおける LIMIT の大きなオフセットによって引き起こされるパフォーマンス低下の分析

序文MySQLクエリはselectコマンドを使用し、limitとoffsetパラメータを使用して、指...

Vuexはセッションストレージデータを結合して、ページを更新するときにデータが失われる問題を解決します

目次序文1. 理由: 2. 解決策のアイデア: 1. ローカル保存方法: 2. 実装手順: 3. 最...

LinuxにDockerをインストールする(非常に簡単なインストール方法)

最近、かなり暇です。大学4年生として数か月間インターンをしていました。インターンとして、Docker...

Vueは、センシティブな単語フィルタリングコンポーネントを検出するためのさまざまなアイデアを実装しています。

目次前面に書かれた要件分析 v1アイデア1: インターセプションメソッドを使用して入力ボックスの入力...

オブジェクト指向の観点から Vue コンポーネントを理解するための簡単な分析

同じ関数や HTML コードが複数回使用される場合は、それらをコンポーネントに抽出することを検討でき...

MYSQL メタデータ ロック (MDL ロック) MDL ロックの問題分析

1. はじめにMYSQL の MDL ロックは常に頭痛の種でした。ロックについて話すとき、通常は I...

MYSQL サブクエリとネストされたクエリの最適化例の分析

ゲーム史上最高スコアトップ100をチェックSQLコード cdb_playsgame ps から ps...

MySQLで行を列に変換する方法

MySQL の行から列への操作いわゆる行から列への操作は、テーブルの行情報を列情報に変換することです...

ApacheのDjangoオンライン展開方法

環境: 1. Windows Server 2016 Datacenter 64 ビット 2. SQ...

CSS3で実装された天気アイコンのアニメーション効果

成果を達成する 実装コードhtml <div class="wrapper"...

Docker+Jenkinsによる自動デプロイの実現方法

Code Cloud を使用して Git コード ストレージ ウェアハウスを構築するhttps://...

Linuxサーバーのファイアウォールを変更してポートへのリモートアクセスを許可する方法

1. 問題の説明セキュリティ上の理由から、新しく構築されたサーバー クラスターでは、指定されたポート...

HTMLとは何ですか?

HTML 開発の歴史: HTML は英語で Hypertext Marked Language の...

Mac での MySQL と Squel Pro の設定

Node.js の人気に応えて、最近、いくつかのサーバー側機能を実装するために Node.js を使...