第21章構築の対象


この文章のテーマは、ウィキペディアの「モダンなJavaScript Deep Dive」を独学して記録することです.
JavaScriptのオブジェクトは、大きく分けて次の3つに分類されます.

  • 標準コンストラクションオブジェクト
    ECMAScript仕様で定義されているオブジェクトは、JavaScriptの実行環境を考慮することなく、いつでも使用できます.

  • ホストオブジェクト
    ECMAScript仕様では定義されていませんが、実行環境(ブラウザまたはNode.js)で提供される他のオブジェクトです.

  • カスタムオブジェクト
    ユーザー定義オブジェクト
  • 標準コンストラクションオブジェクト
    JavaScriptには、オブジェクト、String、Number、Boolean、Date、Mathなど、40以上の標準バージョンのオブジェクトが用意されています.ここで、Math、Reflect、JSONを除くすべての標準で構築されたオブジェクトは、インスタンスを生成できるコンストラクション関数オブジェクトです.
    コンストラクション関数オブジェクトの標準コンストラクションオブジェクトとしてプロトタイプメソッドと静的メソッドが提供され、コンストラクション関数オブジェクトが標準コンストラクションオブジェクトを提供するのではなく、静的メソッドのみが提供されます.
    const num = new Number(1.5);
    console.log(num.toFixed());  //2
    console.log(Number.isInteger(num));  //false
    上のコードを見て理解してください.
    1行目では、Numberという標準コンストラクションオブジェクトを使用してNumberオブジェクトを作成します.
    Numberはコンストラクション関数オブジェクトなのでNumberです.prototypeオブジェクトを持ち、小数点を四捨五入するtoFixedメソッドはnumberです.プロトタイプに登録する方法.したがってnumはtoFixedというメソッドを継承することもできる.
    isIntegerは、パラメータとして入力された値をBooleanに返す静的メソッドで、標準バージョンのオブジェクトを番号付けします.したがってnumは呼び出せませんがnumberです.isIntegerで使用できます.
    元の値とRapperオブジェクト
    const num1 = 10.5;
    console.log(num1.toFixed());  //11
    JavaScriptを使用してすべての値をオブジェクトとして作成することはありません.文字列、数値、ブール値などの元の値があるので、元の値で標準コンストラクションオブジェクトを使用する方法でも、上記のコードのように遠慮なく動作することがわかります.理由は以下の通り.
    元の値文字列、数値、ブール値に対して、オブジェクトのようにピリオド記号(またはかっこ記号)を使用してアクセスすると、JavaScriptエンジンは元の値を一時的に関連するオブジェクトに変換して生成されたオブジェクトがPropertyにアクセスするか、メソッドを呼び出して元の値を返します.このように、オブジェクトのように文字列、数値、ブール値にアクセスすると、生成された一時オブジェクトはRapperオブジェクトと呼ばれます.
    このとき,歌い手対象の処理が終了すると,歌い手対象はごみ収集の対象となる.
    グローバルオブジェクト
    グローバルオブジェクトは、コードが実行される前にJavaScriptエンジンによって任意のオブジェクトより先に作成された特殊なオブジェクトであり、任意のオブジェクトに属さない最上位オブジェクトです.
    グローバルオブジェクトは、標準的に構築されたオブジェクト、環境内のホストオブジェクト、varキーワードとして宣言されたグローバル変数、およびグローバル関数から構成されます.また、開発者が意図的に作成できない特徴もあり、グローバルオブジェクトの構成を参照するときに、thisやglobalなどのグローバルオブジェクトへのウィンドウを省略できます.(window.console.log()をコンソールとして使用します.ログ()に示すように
    letまたはconstを使用して生成された変数は、グローバルオブジェクトに登録されるのではなく、非表示の概念ブロックに存在することに注意してください.
    ビルダーグローバル構成
    構築されたグローバル・プロパティは、グローバル・オブジェクトのプロパティを表します.どんな番組があるか見てみましょう.

  • Infinity
    無限大を表す数値があります.

  • NaN
    数値ではない数値を示します.

  • undefined
    未定義の元の値があります.
  • コンストラクタグローバルメソッド
    構築されたグローバルメソッドは、アプリケーションのグローバルで呼び出すことができるマッピング関数であり、グローバルオブジェクトのメソッドです.内容を見てみましょう.

  • eval
    JavaScriptコードを表す文字列を引数として実行します.でも使えません.(セキュリティが悪く、JavaScriptエンジンでは最適化されていないため、通常のコードよりも処理速度が遅い.)

  • inFinite
    渡されたパラメータが通常の有限数であるかどうかをBoolean値に戻します.
    NaNはfalseを返し、nullはtrueを返します.

  • isNaN
    渡されたパラメータがNaNであるかどうかを確認し、Boolean値を返します.渡されたパラメータが数値でない場合は、タイプを数値に変換してチェックを行います.

  • parseFloat
    渡された文字列パラメータを誤って解析して返します.

  • parseInt
    渡された文字列パラメータを整数に解析して返します.

  • encodeURI/decodeURI
    Encodeは、完全なURI文字列を任意のシステムで読み取り可能なAski文字セットに変換します.
    decodeは変換されたAsky文字セットをURI文字列に変換します.

  • encodeURIComponent/decodeURIComponent
    Encodeは、URIコンポーネント(クエリーの一部)の文字列を、任意のシステムで読み取り可能なAsky文字セットに変換します.
    decodeは変換されたAski文字セットをURIコンポーネント文字列に変換します.