検索
ホームページウェブフロントエンドjsチュートリアル「JavaScript による高度なプログラミング」の講義 1 -- 基本概念

「JavaScript による高度なプログラミング」という本をこれまでに何度か読んだことがありますが、最後まで読み終えたことはありません。これから徹底的に読んで、各章についてのメモと私自身の感想を記録します!

最初の3章は比較的簡単な内容なので、1章にまとめて学習過程を記録します。

1. 基本概念

1. JavaScript と ECMAScript の関係

JavaScript には ECMAScript だけでなく、DOM (Document Object Model)、BOM (Browser Object Model) も含まれると理解できます

2 <script> タグ </script>

  • 属性: async defer charset type src

defer と async の違い: (外部スクリプト ファイルにのみ適用されます)

async または defer はありません。タグは順番に分析されます。ブラウザは、script タグの下のドキュメント要素をレンダリングする前に、指定されたスクリプトを即座にロードして実行します。これは、後続のドキュメント要素がロードされるのを待たずに、読み取られるとすぐにスクリプトをロードして実行することを意味します。 。

async を使用すると、後続のドキュメント要素のロードとレンダリングのプロセスは、js のロードと実行と並行して実行されます (非同期)。

defer の場合、後続のドキュメント要素のロードとレンダリングのプロセスは、js のロードと実行と並行して実行されます。 js の読み込み (非同期)、ただし、js の実行は、すべての要素が解析された後、DOMContentLoaded イベントがトリガーされる前に完了する必要があります。青い線はネットワーク読み取りを表し、赤い線は実行時間を表します。どちらもスクリプトに対するものです。緑色の線は HTML 解析を表します。

クリックして詳細分析

タグの位置:

または 要素のコンテンツの後ろに配置できます
  • ドキュメントモード: (混合モードと標準モードに分けることができます)

  • IE のブラウザ モードとドキュメント モードの違い:

  • ブラウザ モード: ブラウザのバージョンと IE の条件付きコメントに影響します
ドキュメント モード: IE の植字エンジンと DOM レンダリングに影響します

詳細分析 クリック可能

3データ型

5 つの単純なデータ型: 文字列、数値、ブール、Null、未定義 1 つの複雑なデータ型: オブジェクト

typeof 演算子は変数のデータ型を検出し、文字列を返します

注: typeof null は 'object を返します'、null は空のオブジェクト参照とみなされます

Typeof は、変数が初期化または宣言されていない場合、未定義を返します ----- ブール型

データ型

真の値に変換に変換false 値ブールtru​​efalse文字列空でない文字列空の文字列数値0 NaNnull未定義
ゼロ以外の数値(含む)無限)
オブジェクト 任意のオブジェクト
未定義 該当なし

-----数値型

jsの浮動小数点数の計算は正確ではありません、慎重に使用してください〜

isFinite() 数値が最小値と最大値の間にあるかどうかを判定します

NaNは数値ではなく、何かと同じである 等しくない、それ自体も含む isNaN()

数値以外の値を数値に変換: Number() Number('') 0 Number(null) 0

parseInt() parseFloat () 最初の文字が数字やマイナス記号でない場合は、 NaN parseInt('') NaN parseInt(null) NaN

----- String型

文字列を変換するメソッド:toString() これnull と未定義以外はメソッドが使用可能 String() は任意の値を変換可能 型の値は文字列と演算子 +'' に変換されます

----- オブジェクト型

Object の各インスタンスは以下の属性とメソッドを持ちます

コンストラクター: 現在のオブジェクトの作成に使用された関数を保存します

hasOwnProperty(propertyName): 現在のオブジェクトのインスタンスにプロパティが存在するかどうか

isPrototypeOf(object): 受信したオブジェクトが別のオブジェクトのプロトタイプであるかどうか

propertyIsEnumerable(propertyName) ): for-in ステートメントを使用してプロパティを列挙できるかどうか

toLocaleString()

toString(): オブジェクトの文字列表現を返します

valueOf(): オブジェクトの文字列、数値、またはブール表現を返します

4. Operator

var age = 10; var newAge = ++age); //11 console.log(newAge);最初に age+1 を指定し、次に newAge に値を割り当てます

var age = 10; console.log(age); //10 age が最初に割り当てられ、次に加算されます。つまり、最初に値を newAge に割り当て、次に age+1

----- ビット単位の演算子

ビット単位の NOT (~) は、オペランドの負の値が次のように減らされることを意味します。 1

ビットごとのAND(&)は両方の値の対応するビットが1の場合のみ1を返し、どのビットも0でも結果はすべて0になります

ビットごとのOR(|)は1つのビットが1の場合に1を返します

ビットごとXOR (^) は、2 つの値の対応するビットに 1 が 1 つだけある場合にのみ 1 を返します。 左シフト (

符号付き右シフト (>>) 符号ビット値を使用して空のビットを埋めます

符号なし右シフト (>>>)空のビットを 0 で埋める

----- ブール演算子

論理 NOT (!)

論理 AND (&&) 短絡演算子、つまり、最初のオペランドが false と評価された場合、2 番目のオペランドは評価されました

eg:console.log(1 && 2 && 3); //3

論理和 (| |) 短絡演算子、つまり、最初のオペランドが true と評価された場合、2 番目のオペランドは評価されません

eg:console.log(1 || 2 || 3); //1

----- 等価演算子

null >= 0 //true null == 0 //false 理由: リレーショナル演算子は比較する際に数値に変換されますが、等価演算子は変換されません

null == 未定義 //true null == 0 //false 未定義 == 0 //false

==のみ値を比較 ===両方の値と型を比較します

以前のインタビューで質問したように、質問: var a = 1, b = 1; var c = {a:1}, d = {a:1; console.log(a == b); console.log(c == d); // true false false

代入にカンマ式を使用すると、常に式内の最後の項目が返されます。例: :var num=(1,2,3); //3

5 , ステートメント

do{} while () ステートメント while() {} ステートメント switch ステートメント

for-in ステートメント: オブジェクトのプロパティを列挙するために使用できます。プロパティを返す順序はブラウザによって異なります。ステートメント: ループを終了し、ループの後のステートメントを実行します。 続行: このループを抜けて、次のループを実行します。

引数オブジェクトは、パラメーターの配列にアクセスできます。 length 属性を使用して、arguments[0]... を通じて取得されます

戻り値を指定していない関数は、未定義の値を返します。これが、Chrome コンソールにいくつかのコマンドを入力すると、unknown が返される場合がある理由です~

以上が「JavaScript による高度なプログラミング」の講義 1 -- 基本概念の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
next.jsを使用してマルチテナントSaaSアプリケーションを構築する(バックエンド統合)next.jsを使用してマルチテナントSaaSアプリケーションを構築する(バックエンド統合)Apr 11, 2025 am 08:23 AM

私はあなたの日常的な技術ツールを使用して機能的なマルチテナントSaaSアプリケーション(EDTECHアプリ)を作成しましたが、あなたは同じことをすることができます。 まず、マルチテナントSaaSアプリケーションとは何ですか? マルチテナントSaaSアプリケーションを使用すると、Singの複数の顧客にサービスを提供できます

next.jsを使用してマルチテナントSaaSアプリケーションを構築する方法(フロントエンド統合)next.jsを使用してマルチテナントSaaSアプリケーションを構築する方法(フロントエンド統合)Apr 11, 2025 am 08:22 AM

この記事では、許可によって保護されたバックエンドとのフロントエンド統合を示し、next.jsを使用して機能的なedtech SaaSアプリケーションを構築します。 FrontEndはユーザーのアクセス許可を取得してUIの可視性を制御し、APIリクエストがロールベースに付着することを保証します

JavaScript:Web言語の汎用性の調査JavaScript:Web言語の汎用性の調査Apr 11, 2025 am 12:01 AM

JavaScriptは、現代のWeb開発のコア言語であり、その多様性と柔軟性に広く使用されています。 1)フロントエンド開発:DOM操作と最新のフレームワーク(React、Vue.JS、Angularなど)を通じて、動的なWebページとシングルページアプリケーションを構築します。 2)サーバー側の開発:node.jsは、非ブロッキングI/Oモデルを使用して、高い並行性とリアルタイムアプリケーションを処理します。 3)モバイルおよびデスクトップアプリケーション開発:クロスプラットフォーム開発は、反応および電子を通じて実現され、開発効率を向上させます。

JavaScriptの進化:現在の傾向と将来の見通しJavaScriptの進化:現在の傾向と将来の見通しApr 10, 2025 am 09:33 AM

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

javascriptの分解:それが何をするのか、なぜそれが重要なのかjavascriptの分解:それが何をするのか、なぜそれが重要なのかApr 09, 2025 am 12:07 AM

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

pythonまたはjavascriptの方がいいですか?pythonまたはjavascriptの方がいいですか?Apr 06, 2025 am 12:14 AM

Pythonはデータサイエンスや機械学習により適していますが、JavaScriptはフロントエンドとフルスタックの開発により適しています。 1. Pythonは、簡潔な構文とリッチライブラリエコシステムで知られており、データ分析とWeb開発に適しています。 2。JavaScriptは、フロントエンド開発の中核です。 node.jsはサーバー側のプログラミングをサポートしており、フルスタック開発に適しています。

JavaScriptをインストールするにはどうすればよいですか?JavaScriptをインストールするにはどうすればよいですか?Apr 05, 2025 am 12:16 AM

JavaScriptは、最新のブラウザにすでに組み込まれているため、インストールを必要としません。開始するには、テキストエディターとブラウザのみが必要です。 1)ブラウザ環境では、タグを介してHTMLファイルを埋め込んで実行します。 2)node.js環境では、node.jsをダウンロードしてインストールした後、コマンドラインを介してJavaScriptファイルを実行します。

クォーツでタスクが開始される前に通知を送信する方法は?クォーツでタスクが開始される前に通知を送信する方法は?Apr 04, 2025 pm 09:24 PM

Quartzタイマーを使用してタスクをスケジュールする場合、Quartzでタスク通知を事前に送信する方法、タスクの実行時間はCron式によって設定されます。今...

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター