目次
カスタム例外:
ホームページ ウェブフロントエンド jsチュートリアル インタビュー開発のための共通の JavaScript 知識ポイントのまとめ

インタビュー開発のための共通の JavaScript 知識ポイントのまとめ

Feb 23, 2017 pm 01:17 PM


No1. 構文と型

1. 宣言と定義

変数の型: var、ブロックドメイン(スコープ)のローカル変数を定義します。

変数形式: 文字、アンダースコア「_」または $ 記号で始まり、大文字と小文字が区別されます。

変数の割り当て: 宣言されていても割り当てられていない変数は、使用すると値が未定義になります。宣言されていない変数を直接使用すると、例外がスローされます。

計算用の変数が割り当てられていません: 結果は NaN です。例:

var x, y = 1;
console.log(x + y); //结果为NaN,因为x没有赋值。
ログイン後にコピー

2. スコープ

変数のスコープ: ES6 より前には、ブロック宣言のスコープはなく、変数は関数ブロック内またはグローバルに機能しました。次のコードに示すように、入力 x は 5 です。

if (true) {
var x = 5;
}
console.log(x); // 5
ログイン後にコピー

ES6変数スコープ: ES6はブロックスコープをサポートしていますが、変数を宣言するにはletを使用する必要があります。次のコード出力では、例外がスローされます。

f (true) {
let y = 5;
}
console.log(y); // ReferenceError: y is not defined1234
ログイン後にコピー

変数のフローティング: メソッドやグローバル コードで、変数が宣言される前に変数を使用すると、例外はスローされませんが、unknown が返されます。これは、JavaScript が変数宣言を関数またはグローバルの前に自動的にフローティングするためです。たとえば、次のコード:

/**
* 全局变量上浮
*/
console.log(x === undefined); // logs "true"
var x = 3;

/**
* 方法变量上浮
*/
var myvar = "my value";
// 打印变量myvar结果为:undefined
(function() {
console.log(myvar); // undefined
var myvar = "local value";
})();
ログイン後にコピー

上記のコードと次のコードは同等です:

/**
* 全局变量上浮
*/
var x;
console.log(x === undefined); // logs "true"
x = 3;

/**
* 方法变量上浮
*/
var myvar = "my value";
(function() {
var myvar;
console.log(myvar); // undefined
myvar = "local value";
})();
ログイン後にコピー

グローバル変数: このページでは、グローバル オブジェクトは window であるため、window.variable を通じてグローバル変数にアクセスできます。例:

version = "1.0.0";
console.log(window.version); //输出1.0.0
ログイン後にコピー

No2. データ構造と型

1. データ型

6つの基本型: Boolean (true または false)、null (js は大文字と小文字を区別し、Null と NULL とは異なります)、未定義、数値、文字列、シンボル (一意で不変であることをマーク)

オブジェクトの種類: オブジェクト。

オブジェクトと関数:オブジェクトは値のコンテナとして機能し、関数はアプリケーションプロシージャとして機能します。

2. データ変換

機能: 文字列を数値に変換するには、parseInt メソッドと parseFloat メソッドを使用できます。

parseInt: 関数のシグネチャは parseInt(string, radix) で、radix は 10 進数や 16 進数などのデジタル基数を表す 2 から 36 までの数値です。返される結果は整数または NaN です。たとえば、以下の出力結果はすべて 15 です。

parseInt("0xF", 16);
parseInt("F", 16);
parseInt("17", 8);
parseInt(021, 8);
parseInt("015", 10);
parseInt(15.99, 10);
arseInt("15,123", 10);
parseInt("FXX123", 16);
parseInt("1111", 2);
parseInt("15*3", 10);
parseInt("15e2", 10);
parseInt("15px", 10);
ログイン後にコピー

parseFloat: 関数シグネチャは parseFloat(string) で、戻り結果は数値または NaN です。例:

parseFloat("3.14"); //返回数字
parseFloat("314e-2"); //返回数字
parseFloat("more non-digit characters"); //返回NaN
ログイン後にコピー

3. データ型テキスト化

テキスト化タイプ: 配列、ブール、浮動小数点、整数、オブジェクト、正規表現、文字列。

配列内の余分なカンマ: ["Lion", , "Angel"]、長さは 3、[1] の値は未定義です。 ['home', , 'school', ]、最後のカンマが省略されるため、長さは 3 になります。 [ , 'home', , 'school']、長さは 4 です。 ['自宅', , '学校', , ]、長さは 4 です。

整数 integer: 整数は、10 進数、8 進数、16 進数、2 進数で表現できます。例:

0, 117 and -345 //十进制
015, 0001 and -0o77 //八进制
0x1123, 0x00111 and -0xF1A7 //十六进制
0b11, 0b0011 and -0b11 1234 //二进制
ログイン後にコピー

浮動小数点数: [(+|-)][数字][.数字][(E|e)[(+|-)]数字]。例:

3.1415926,-.123456789,-3.1E+12(3100000000000),.1e-23(1e-24)
ログイン後にコピー

オブジェクト: オブジェクトの属性取得値は、「.property」または「[プロパティ名]」を通じて取得できます。例:

var car = { manyCars: {a: "Saab", "b": "Jeep"}, 7: "Mazda" };
console.log(car.manyCars.b); // Jeep
console.log(car[7]); // Mazda
ログイン後にコピー

オブジェクト属性: 属性名は任意の文字列または空の文字列にすることができ、無効な名前は引用符で囲むことができます。複合名は . では取得できませんが、[] では取得できます。例:

var unusualPropertyNames = {
"": "An empty string",
"!": "Bang!"
}
console.log(unusualPropertyNames.""); // SyntaxError: Unexpected string
console.log(unusualPropertyNames[""]); // An empty string
console.log(unusualPropertyNames.!); // SyntaxError: Unexpected token !
console.log(unusualPropertyNames["!"]); // Bang!
ログイン後にコピー

エスケープ文字: エスケープ記号 """ が使用されているため、以下の文字列出力には二重引用符が含まれています。

var quote = "He read \"The Cremation of Sam McGee\" by R.W. Service.";
console.log(quote);
//输出:He read "The Cremation of Sam McGee" by R.W. Service.1。
ログイン後にコピー

文字列の折り返し方法: 次のように文字列行の末尾に直接 "" を追加します。 コードは次のとおりです。表示:

var str = "this string \
is broken \
across multiple\
lines."
console.log(str); // this string is broken across multiplelines.
ログイン後にコピー

No3. 制御フローとエラー処理

1. ブロック式 機能: ブロック式は、一般に if、for などの制御フローに使用されますが、{x++ } はブロック宣言です。

ES6 より前にはブロック スコープはありませんでした。ES6 より前では、ブロック内で定義された変数は実際にはメソッドまたはグローバルに含まれており、変数の影響はブロックのスコープを超えていました。たとえば、次のコードです。は 2 です。ブロック内で宣言された変数がメソッドに作用するためです。ES6 以降、ブロック スコープが存在します。ES6 では、ブロック スコープ宣言 var を let に変更して、変数がブロック スコープのみをスコープするようにすることができます。 2.論理判定

falseと判定される特殊な値:false、unknown、null、0、NaN、""

単純ブール型とオブジェクトブール型:単純ブール型とオブジェクトブール型の false と true があります。 false と true の違い、それらは等しくありません。次の例のように:

while (x < 10) {
x++;
}
ログイン後にコピー

No4. 例外処理

1. 例外の種類

例外のスローには次のような種類があります。

var x = 1;
{
var x = 2;
}
console.log(x); // outputs 2
ログイン後にコピー

カスタム例外:

var b = new Boolean(false);
if (b) // 返回true
if (b == true) // 返回false
ログイン後にコピー

2. 構文

キーワード: C# 構文と同様に、try{}catch(e){}finally{} 構文を使用します。 return ステートメントでは、try.catch 全体が何を返しても、戻り値は最終的に以下に示す return になります。

function f() {
    try {
        console.log(0);
        throw "bogus";
    } catch(e) {
        console.log(1);
        return true; // 返回语句被暂停,直到finally执行完成
        console.log(2); // 不会执行的代码
    } finally {
        console.log(3);
        return false; //覆盖try.catch的返回
        console.log(4); //不会执行的代码
    }
    // "return false" is executed now 
    console.log(5); // not reachable
}
f(); // 输出 0, 1, 3; 返回 false
ログイン後にコピー

  finally吞并异常:如果finally有return并且catch中有throw异常。throw的异常不会被捕获,因为已经被finally的return覆盖了。如下代码所示:

function f() {
    try {
        throw "bogus";
    } catch(e) {
        console.log(&#39;caught inner "bogus"&#39;);
        throw e; // throw语句被暂停,直到finally执行完成
    } finally {
        return false; // 覆盖try.catch中的throw语句
    }
    // 已经执行了"return false"
}

try {
    f();
} catch(e) {
    //这里不会被执行,因为catch中的throw已经被finally中的return语句覆盖了
    console.log(&#39;caught outer "bogus"&#39;);
}
// 输出
// caught inner "bogus"
ログイン後にコピー

  系统Error对象:我们可以直接使用Error{name, message}对象,例如:throw (new Error('The message'));

 以上就是面试开发常用的 JavaScript 知识点总结的内容,更多相关内容请关注PHP中文网(www.php.cn)! 


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

ホット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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 Dec 17, 2023 pm 02:54 PM

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

WebSocket と JavaScript: リアルタイム監視システムを実装するための主要テクノロジー WebSocket と JavaScript: リアルタイム監視システムを実装するための主要テクノロジー Dec 17, 2023 pm 05:30 PM

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

JavaScript と WebSocket を使用してリアルタイムのオンライン注文システムを実装する方法 JavaScript と WebSocket を使用してリアルタイムのオンライン注文システムを実装する方法 Dec 17, 2023 pm 12:09 PM

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

WebSocketとJavaScriptを使ったオンライン予約システムの実装方法 WebSocketとJavaScriptを使ったオンライン予約システムの実装方法 Dec 17, 2023 am 09:39 AM

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

JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 Dec 17, 2023 pm 05:13 PM

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

簡単な JavaScript チュートリアル: HTTP ステータス コードを取得する方法 簡単な JavaScript チュートリアル: HTTP ステータス コードを取得する方法 Jan 05, 2024 pm 06:08 PM

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

JavaScriptでinsertBeforeを使用する方法 JavaScriptでinsertBeforeを使用する方法 Nov 24, 2023 am 11:56 AM

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

JavaScript と WebSocket: 効率的なリアルタイム画像処理システムの構築 JavaScript と WebSocket: 効率的なリアルタイム画像処理システムの構築 Dec 17, 2023 am 08:41 AM

JavaScript は Web 開発で広く使用されているプログラミング言語であり、WebSocket はリアルタイム通信に使用されるネットワーク プロトコルです。 2 つの強力な機能を組み合わせることで、効率的なリアルタイム画像処理システムを構築できます。この記事では、JavaScript と WebSocket を使用してこのシステムを実装する方法と、具体的なコード例を紹介します。まず、リアルタイム画像処理システムの要件と目標を明確にする必要があります。リアルタイムの画像データを収集できるカメラ デバイスがあるとします。

See all articles