JavaScriptコアリーディング:言語コア_基礎知識
この本を読む前に、この JavaScript コアを翻訳してくれた Taobao 技術チームに感謝し、この本を書いてくれた Flanagan に感謝したいと思います。無私無欲の情報共有に感謝し、このメモをあなたの勤勉に捧げます。
1: JavaScript 言語コア
この章以降では、主に JavaScript の基本に焦点を当てます。第 2 章では、JavaScript のコメント、セミコロン、Unicode 文字セットについて説明します。第 3 章では、主に JavaScript の変数と代入について説明します。
最初の 2 章の重要なポイントを示すコード例をいくつか示します。
<スクリプトタイプ="text/javascript">
//二重スラッシュ以降はコメントです //ここのコメントを注意深く読んでください。JavaScript コードについて説明しています
// 変数は値を表す記号名です
// 変数は var キーワード
を使用して宣言されます var x //変数 x
を宣言します。 //シンボルを介して変数に値を割り当てることができます
x = 0 //変数 x の値は 0
;
//JavaScript は複数のデータ型をサポートします
x = 1; //数値
x = 0.01 //整数と実数は同じデータ型を共有します
x = "hello world" // 二重引用符で囲まれたテキストで構成される文字列
; x = 'hello world' //一重引用符も文字列を形成します。
x = true; // ブール値
x = false; //別のブール値
x = null; //null は特別な値です。それは空を意味します
x = 未定義 //未定義と null は非常に似ています
<スクリプトタイプ="text/javascript">
//JavaScript で最も重要な型は object
です //オブジェクトは、名前と値のペアのコレクション、またはマップされた値に文字列値のコレクションです。
var book = { //オブジェクトは中括弧で囲まれています
topic: "javascript", //属性「topic」の値は javascript
fat: true //属性 fat の値は true
} // 右側の中括弧の終わり。
//「.」または「[]」を通じてオブジェクトのプロパティにアクセスします。
book.topic //=>"javascript"
book["fat"] //=>true 属性を取得する別の方法、
book.author = "ahthw" //割り当てを通じて新しい属性を作成します
; book.content = {}; //{} は空のオブジェクトです。属性はありません
//JavaScript は配列 (配列によってインデックス付けされたリスト) もサポートします
var primes = [2, 3, 5, 7] // "[""]" で区切られた 4 つの値の組み合わせ
primes[0] //=>2: 配列の最初のオブジェクト、インデックスは 0
primes.length //=>4、配列
の要素の数 を使用する‐ primes[primes.length‐1] //=>7: 配列
の最後の要素 primes[4] =9 //代入を通じて新しい要素を追加します
primes[4] =11;//代入を通じて既存の要素を変更します
var empty = [];//空の配列、要素数 0
空の。 //配列とオブジェクトには別の配列またはオブジェクトを含めることができます。
var point =[ //2 つの要素を持つ配列
{x:0,y:0}, //各要素はオブジェクトです
{x:1,y:1}
];
Var data = {// 2 つの属性を含むオブジェクト
Trial1:[[1,2],[3,4]], //各オブジェクトは配列
Trial2:[[2,3],[4,5]] //配列の要素も配列です
};
JavaScript で式を記述する最も一般的な方法は、次のコードのような演算子です
//演算子は演算子として機能し、新しい値を生成します
//最も一般的な算術演算子
3 2 // =>5 加算
3-2 // =>引き算
3*2 // =>乗算
// => Point[1].x -point[0].x //=>複雑な操作も通常通り実行可能
"3" "2" // => 32. 加算演算も完了し、文字列の連結も完了します。
//JavaScript では一部の算術演算子を短縮形式として定義しています
var count = 0 //変数を定義します
カウント ; // 1 ずつ増加します
カウント - ; ’'s's's s together out out out out out out out nes s s s t mp' '' ft ft off off off off off Off Off 1 Way t Count *= 3 // Self-ride 3. "Count = Count *3;" を書き込みます。 // =&gt; //等価関係演算子は、2 つの値が等しいかどうかを判断するために使用されます
//不等号、大なり、小なり演算子の結果は true または false
var x=2,y=3; x == y; ×! = y; x y; x >= y; "two"=="three"; //false 2 つの文字列は等しくありません
"two" > "three" //true "tw" は "th" よりも大きいインデックスを持ちます
false == (x>y); //ture false =false;
//論理演算子はブール値の組み合わせまたは否定です
(x == 2)&&(y==3); //=>true 両方の比較が真です。&& は "AND"
(x > 3) || (y
JavaScriptの「フレーズ」が式の場合、その文全体をステートメントと呼びますが、これについては第5章で詳しく説明します。
上記のコードでは、セミコロンで終わる行はすべてステートメントです。大まかに言えば、式は値 (またはそこに含まれる値は気にしません) を計算するだけですが、プログラムの実行状態を変更します。上記では、変数宣言ステートメントと代入ステートメントを見てきました。もう 1 つのステートメントは、条件判定やループなどの「制御構造」です。関数を紹介した後、関連するサンプル コードを示します。
関数は、一度定義して複数回使用できる名前とパラメーターを持つ JavaScript コード セグメントです。第 8 章では、機能について形式的に詳しく説明します。オブジェクトや配列と同様に、関数についても本書の多くの場所で言及されています。簡単なコード例をいくつか示します。
//関数は処理パラメータを含む JavaScript コードセグメントであり、複数回ディスパッチできます
function plus1(x) { //plus1 という名前の関数はパラメータ x
で定義されています Return x 1; //渡された値より 1 大きい値を返します。
//関数のコードブロックは、カーリーブレースに包まれた部品です
plus1(y) //
VAR SQUARE = FUNCTION (X) {// 関数は変数
に代入できる値です Return x*x; // 関数
の値を計算します。 }; // 代入ステートメントの終わりを送信します
square(plus1(y));
//関数がオブジェクトのプロパティに値を割り当てるとき、それを
と呼びます //「メソッド」、すべての JavaScript オブジェクトにはメソッドが含まれます
Var a = [] // 空の配列を作成します
a.push(1,2,3); a.reverse(); // document.write(a)
// 子のメソッドを定義できます。「this」キーワードが定義メソッドです
ここでの例は、上記の2つのポイントの位置情報を含む配列です。
POINTS.DIST = Function () {// 2 点間の距離を定義して 2 点間の距離を計算します
Var p1 = this [0] // このキーワードによる現在の配列への参照
; var p2 =this[1] //そして、呼び出された配列の最初の 2 つの要素を取得します
Var a = p2.x- p1.y // 座標軸上の X の距離
var b =p2.y - p1.y; //y座標軸上の距離
return Math.sqrt(a * a "b * b); //ピタゴラスの定理
}; //Math.sqrt() は平方根を計算します
Points.dist() // => 2 点間の距離を求める
次に、制御ステートメントの例をいくつか示します。ここでの関数本体の例には、最も一般的な JavaScript 制御ステートメントが含まれています。
//ここでの JavaScript ステートメントは、条件判断とループを含めるためにこの構文を使用しています
//Java C やその他の言語と同様の構文を使用します
function abs(x) { //絶対値関数を求める
If (x >= 0) { //if
Return x; // true の場合、このコードを実行します
} Else {// false は
を実行します return -x;
}
}
function fatprial(n) { //階乗を計算します
var product = 1 //product に値を 1
として代入します。 While (n & gt; 1) {// () 値式は {} content
を実行します Product *= n; //product = product * n
の略語 n--; // n = n-1 の書き込み
// ループの終わり
// 商品を返品
}
fatprial(4) // =>24 1*4*3*2 document.write(factprial(4))
function fastial2(n) { //ループを記述する別の方法
var i, product = 1; for (i = 2; i Product *= i // 循環本体、循環本体にコードが 1 つしかない場合は、{}
を省略します。 return product; // 適切な階乗を計算して返します
}
階乗2(5) //document.write(factorial2(5)) =>120: 1*2*3*4*5
これは簡単な例です。このコードは、2D 面のジオメトリ内の点を表すクラスを JavaScript で定義する方法を示しています。このクラスによってインスタンス化されたオブジェクトには、変化点から原点までの距離を計算するために使用される r() という名前のメソッドがあります。
//新しいポイントオブジェクトを初期化するコンストラクターを定義します
function Point(x, y) { //コンストラクターは通常、大文字
で始まります This.x = x //キーワード this は初期化されたインスタンスを参照します
this.y = y // オブジェクトの属性としてのストレージ関数パラメータ
}
//新しいキーワードとコンストラクターを使用してインスタンスを作成します
var p = new Point(1, 1) //平面ジオメトリの点 1,1,
; //コンストラクター プロトタイプ オブジェクトを介して値を割り当てます
// Point オブジェクトを定義します
Point.prototype.r = function() {
return Math.sqrt( // x の 2 乗、y の 2 乗の平方根を返します
This.x * this.x //this は、このメソッドを送出するオブジェクトを参照します
This.y * this.y);
};
//ポイント インスタンス オブジェクト p (およびすべてのポイント インスタンス オブジェクト) はメソッド r()
を継承します。 p.r() // => 1.4142135623730951 /document.write(p.r())
第 9 章は最初の部分 の本質です。後続の章は散発的に拡張されており、JavaScript の探求の終わりにつながります。
第 10 章では主に、正規表現を使用したテキスト マッチング パターンについて説明します。
第 11 章は、コア JavaScript 言語 のサブセットおよびスーパーセットです。
クライアント側 JavaScript の内容に入る前に、第 12 章では、Web の外部にある 2 つの JavaScript 実行環境を紹介するだけで済みます。
2. クライアント JavaScript
JavaScript 言語の中核部分には相互参照が多く、知識の階層が明確ではありません。クライアントサイド JavaScript のコンテンツ レイアウトは大きく変更されました。この章に従うことで、Web ブラウザで JavaScript を使用できるようになります。 (ただし、この本を読んで JavaScript を学びたい場合は、第 2 部だけに集中することはできません) 第 13 章は第 2 部の最初の章であり、Web ブラウザで JavaScript を実行する方法を紹介します。 第 14 章では、Web ブラウザのスクリプト テクノロジについて説明し、クライアント側 JavaScript の重要なグローバル機能について説明します。
例:
関数 moveon() {
//ダイアログボックスから質問する
varanswer =confirm("準備はできていますか?");
// [OK] をクリックすると、ブラウザに新しいページが読み込まれます
If (回答) window.location = "http://www.baidu.com";
}
//1分(60000ミリ秒)後にこの関数を実行します
setTimeout(moveon,300);
第 15 章では、JavaScript が HTML スタイル定義コンテンツの表示をどのように操作するかについて説明します 第 15 章の内容は、スクリプトを使用して HTML ドキュメントのコンテンツを操作する、より実用的なものであり、選択方法を示します。特定の Web ページ要素、HTML 要素の属性を設定する方法、要素のコンテンツを変更する方法、ドキュメントに新しいノードを追加する方法
次の関数例は、基本的な記事コンテンツを検索して変更する方法を示しています
// ドキュメント内の指定情報のエリアツリーにスーパーデバッグ情報
//この要素がドキュメントに存在しない場合は、
を作成します 関数デバッグ(msg) {
// HTML 要素の id 属性を調べて、ドキュメントのデバッグ部分を見つけます
var log = document.getElementById("debuglog");
//要素が存在しない場合は、要素を作成します
if (!log) {
log = document.createElement("div") // 新しい div 要素を作成します
log.id = "debuglog";
log.innerHTML = "
デバッグログ
" //初期コンテンツをカスタマイズしますdocument.body.appendChild(log) // ドキュメントの最後に追加します
}
//
にメッセージを含めてログに追加します
var pre = document.createElement("pre") // pre 要素を作成します
var text = document.createElement(msg) //テキストノードにメッセージを含めます
pre.appendChild(text) //テキストが pre
に追加されます。 log.appendChild(pre) //pre が log
に追加されます。 }
第 16 章では、JavaScript を使用して要素 を操作する方法について説明します。これには通常、要素 の style 属性と class 属性が使用されます。
if (reflow) { //2 番目のパラメータが true の場合
e.style.display = "none" //この要素を非表示にすると、それが占有するスペースも販売されます
} else {
e.style.visibility = "hidden" // e を非表示にし、それが占めるスペースを保持します
}
}
function highlight(e) { //css を設定して e を強調表示
If (!e.className) e.className = "highcss";
それ以外の場合
e.className = "highcss";
}
JavaScript を使用して要素のコンテンツと CSS スタイルを制御でき、イベント ハンドラーを使用してドキュメントの動作を定義することもできます。イベント ハンドラーはブラウザー センターに登録された JavaScript 関数であり、特定のイベントが発生すると、ブラウザーはこれを呼び出すことができます。関数。
通常、私たちが懸念するイベントの種類は、マウスのクリックとキーボードのキー イベントです (スマートフォンの場合はさまざまなタッチ イベントです)。つまり、ブラウザがドキュメントの読み込みを完了したとき、ユーザーがウィンドウのサイズを変更したとき、またはユーザーがフォームにデータを入力したときに、ヒューマン イベントがトリガーされます。
第 17 章では、タイム ハンドラーを定義および登録する方法と、イベント発生時にブラウザがタイム ハンドラーを呼び出す方法について詳しく説明します。
イベント ハンドラーをカスタマイズする最も簡単な方法は、コールバックを onclick という接頭辞を付けた HTML 属性にバインドすることです。最も実用的な方法は、コールバックを "onclick" ハンドラーにバインドすることです。上記の debug() 関数と Hide() 関数が debug.js ファイルと hide.js ファイルに保存されていると仮定すると、単純な HTML テスト ファイルを使用して onclick 属性のイベント ハンドラーを指定できます。以下の通り
<スクリプトタイプ="text/javascript">
//ドキュメント内の指定情報のリージョンツリースーパーデバッグ情報
//この要素がドキュメントに存在しない場合は、
を作成します 関数デバッグ(msg) {
// HTML 要素の id 属性を調べて、ドキュメントのデバッグ部分を見つけます
var log = document.getElementById("debuglog");
// 要素が存在しない場合は、要素を作成します
if (!log) {
log = document.createElement("div") // 新しい div 要素を作成します
log.id = "debuglog"; log.innerHTML = "
デバッグログ
" //初期コンテンツをカスタマイズしますdocument.body.appendChild(log) // ドキュメントの最後に追加します
}
//
にメッセージを含めてログに追加します
var pre = document.createElement("pre") // pre 要素を作成します
var text = document.createElement(msg) //テキストノードにメッセージを含めます
pre.appendChild(text) //テキストが pre
に追加されます。 log.appendChild(pre) //pre が log
に追加されます。 }
function hide(e, reflow) { //jvascript を通じて要素を操作し、要素を非表示にします e
if (reflow) { //2 番目のパラメータが true の場合
e.style.display = "none" //この要素を非表示にすると、それが占有するスペースも販売されます
} else {
e.style.visibility = "hidden" // e を非表示にし、それが占めるスペースを保持します
}
}
function height(e) { //cssの設定でe
を強調表示する If (!e.className) e.className = "highcss";
その他
e.className = "highcss";
}
こんにちは
<スクリプトタイプ="text/javascript">
//「load」イベントはドキュメントがロードされた後にのみトリガーできます
//通常、JavaScript コードを実行する前にロード イベントが発生するのを待つ必要がある場合
window.onload = function() {
//ドキュメント内のすべての img タグを検索
var image = document.getElementsByTagName("img");
//画像を走査し、各ノードのクリック イベントにハンドラーを追加します
//クリックすると画像を非表示にします
for (var i = 0; i
If (imge.addEventListener) //時間ハンドラーを登録する別の方法
imge.addeventlistener( "click"、hide、false);
else //ie8以前の操作と互換性あり
imge.attachevent( "onclick"、hide);
}
//これは、上記で登録されたイベントのハンドラー関数です
function hide(evnet) {
event.target.style.visibility = "hidden";
}
};
第 15 章から第 17 章では、JavaScript を使用して Web ページのコンテンツ 、スタイル、動作 (イベント処理) を制御する方法について説明します。この章で説明する API はやや複雑で、ブラウザーの性能も優れていません。多くの JavaScript プログラマがコーディング作業を簡略化するために「ライブラリ」または「フレームワーク」を使用するのはこのためです。第 19 章では jQuery ライブラリを紹介します。
var log = $("#debuglog");
if (log.length == 0) {
ログ = $("
debuglog
Log.appendTo(document.body);
}
document.write(log)
Log.append($("").text(msg));
};
第 18 章では、JavaScript を使用して http リクエストを開始する方法について説明します。
第 20 章では、クライアント アプリケーションのデータ ストレージ メカニズムとセッション状態の維持について説明します。第 21 章では、HTML5 によって駆動される新世代のアプリケーション API/ネットワーク ストレージ グラフィックスと、ブラウザ開発に基づくこれらのサポートについて説明します。新しい API の数。浙江省は、JavaScript プログラマーにとって最もエキサイティングな時期です。最後の 4 章にはサンプル コードがあまりありません。次の例では、これらの新しい API を使用します。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 はじめに: 技術の継続的な発展により、音声認識技術は人工知能の分野の重要な部分になりました。 WebSocket と JavaScript をベースとしたオンライン音声認識システムは、低遅延、リアルタイム、クロスプラットフォームという特徴があり、広く使用されるソリューションとなっています。この記事では、WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法を紹介します。

WebSocketとJavaScript:リアルタイム監視システムを実現するためのキーテクノロジー はじめに: インターネット技術の急速な発展に伴い、リアルタイム監視システムは様々な分野で広く利用されています。リアルタイム監視を実現するための重要なテクノロジーの 1 つは、WebSocket と JavaScript の組み合わせです。この記事では、リアルタイム監視システムにおける WebSocket と JavaScript のアプリケーションを紹介し、コード例を示し、その実装原理を詳しく説明します。 1.WebSocketテクノロジー

JavaScript と WebSocket を使用してリアルタイム オンライン注文システムを実装する方法の紹介: インターネットの普及とテクノロジーの進歩に伴い、ますます多くのレストランがオンライン注文サービスを提供し始めています。リアルタイムのオンライン注文システムを実装するには、JavaScript と WebSocket テクノロジを使用できます。 WebSocket は、TCP プロトコルをベースとした全二重通信プロトコルで、クライアントとサーバー間のリアルタイム双方向通信を実現します。リアルタイムオンラインオーダーシステムにおいて、ユーザーが料理を選択して注文するとき

WebSocket と JavaScript を使用してオンライン予約システムを実装する方法 今日のデジタル時代では、ますます多くの企業やサービスがオンライン予約機能を提供する必要があります。効率的かつリアルタイムのオンライン予約システムを実装することが重要です。この記事では、WebSocket と JavaScript を使用してオンライン予約システムを実装する方法と、具体的なコード例を紹介します。 1. WebSocket とは何ですか? WebSocket は、単一の TCP 接続における全二重方式です。

JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 はじめに: 今日、天気予報の精度は日常生活と意思決定にとって非常に重要です。テクノロジーの発展に伴い、リアルタイムで気象データを取得することで、より正確で信頼性の高い天気予報を提供できるようになりました。この記事では、JavaScript と WebSocket テクノロジを使用して効率的なリアルタイム天気予報システムを構築する方法を学びます。この記事では、具体的なコード例を通じて実装プロセスを説明します。私たちは

使用法: JavaScript では、insertBefore() メソッドを使用して、DOM ツリーに新しいノードを挿入します。このメソッドには、挿入される新しいノードと参照ノード (つまり、新しいノードが挿入されるノード) の 2 つのパラメータが必要です。

JavaScript チュートリアル: HTTP ステータス コードを取得する方法、特定のコード例が必要です 序文: Web 開発では、サーバーとのデータ対話が頻繁に発生します。サーバーと通信するとき、多くの場合、返された HTTP ステータス コードを取得して操作が成功したかどうかを判断し、さまざまなステータス コードに基づいて対応する処理を実行する必要があります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法を説明し、いくつかの実用的なコード例を示します。 XMLHttpRequestの使用

JavaScript で HTTP ステータス コードを取得する方法の紹介: フロントエンド開発では、バックエンド インターフェイスとの対話を処理する必要があることが多く、HTTP ステータス コードはその非常に重要な部分です。 HTTP ステータス コードを理解して取得すると、インターフェイスから返されたデータをより適切に処理できるようになります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法と、具体的なコード例を紹介します。 1. HTTP ステータス コードとは何ですか? HTTP ステータス コードとは、ブラウザがサーバーへのリクエストを開始したときに、サービスが
