第21章構築の対象



21.1 JavaScriptオブジェクトの分類

  • 標準バージョンのオブジェクト:ECMAScript視野で定義されたオブジェクト、アプリケーション範囲内の汎用機能を提供する
  • ホストオブジェクト:JavaScript実行環境(ブラウザ環境またはnode.js環境)で提供されるオブジェクト
  • ブラウザ環境:DOM、BOM、Canvas、XMLHttpRequest、Fetch、Web Storage...etc
  • node.js環境:node.js専用api
  • カスタムオブジェクト:自分で定義したオブジェクト
  • 21.2標準で構築されたオブジェクト

  • 標準バージョンのオブジェクトString、Number、Boolean、Function、Array、Dateは、コンストラクション関数呼び出しによってインスタンスを作成します.
  • const strObj = new String('Lee'); // String {"Lee"}
    console.log(typeof strObj); //object
  • プロトタイプpropertyにバインドされたオブジェクトは、さまざまな機能の構築タイプメソッドを提供します.
  • インスタンスを必要とせずに呼び出すコンストラクタ静的メソッドを提供します.
  • 21.3元の値とエンベロープオブジェクト

  • 文字列、数値、およびブール値について、オブジェクトのようにアクセスした場合、生成された一時オブジェクトをrapperオブジェクトと呼びます.
  • const num = 1.5;
    
    // 원시 타입 숫자가 래퍼 객체 String 객체로 변환된다. 
    console.log(num.toFixed()); //2
    
    // 프로퍼티에 접근하거나 메서드를 호출한 후, 다시 원시값으로 되돌림
    console.log(typeof num, num); //number 1.5
  • 文字列、数値、ブール値、記号は、オブジェクトのように暗黙的に作成できます.オブジェクトString、Number、Boolean、Symbolを標準的に構築するプロトタイプメソッドまたはPropertyを参照できます.すなわち、new演算子とともにコンストラクション関数を呼び出してインスタンスを作成する必要はありません.
  • 21.4グローバルオブジェクト

  • グローバルオブジェクトは、任意のオブジェクトより先に生成された特殊なオブジェクトであり、任意のオブジェクトに属さない最上位オブジェクトである.
  • グローバルオブジェクトは、開発者が意図的に作成することはできません.グローバルオブジェクトを作成するコンストラクション関数は提供されません.
  • グローバルオブジェクトのプロパティを参照する場合、window/golbar 省略できます.
  • varキーを使用して宣言されたグローバル変数、宣言されていない変数に値を指定するデフォルトのグローバル関数、およびグローバル関数がグローバルオブジェクトのpropertyになります.
  • let、constキーワードとして宣言されたグローバル変数は、グローバルオブジェクトのpropertyではありません.彼らが主張するグローバル変数は、見えない概念ブロック内に存在する.ダイアログを呼び出すfooでは近づけない.
  • let foo2 = 123; // undefined
    console.log(window.foo2); // undefined
  • ブラウザ環境のすべてのJsコードは、グローバルオブジェクトウィンドウを共有します.
  • 21.4.1バージョンのグローバル・プロパティ


    これは、
  • グローバルオブジェクトのプロパティを意味します.アプリケーションがグローバルに使用する値を指定します.
  • Infinity Property

  • は無限大の数値
  • を表す.

    NaN


    非数値
  • を表す数値
  • undefined

  • オリジナルタイプ未定義
  • 21.4.2バージョンのグローバル関数

  • アプリケーションでグローバルに呼び出すことができる関数は、グローバルオブジェクトの方法です.
  • eval

  • jsコードを表す文字列を引数として渡します.
  • が伝達する文字列コードが式である場合、実行時に文字列コードを計算して値
  • を生成する.
  • から転送を受けるパラメータが文である場合、実行時に文字列コード
  • が実行される.
    //표현식인 문
    eval('1+2;');  //3
    //표현식이 아닌 문 
    eval('var x = 5;');  //undefined
    // 런타임에 변수 선언문이 실행되어 x 변수가 선언됨
    console.log(x); // 5
  • 実行時に既存のスキャンを動的に変更します.
  • パラメータが渡す文字列コードがlet、constキーワードを使用する変数宣言である場合、デフォルトではstrictモードが使用されます.
  • eval関数で実行されるコードはJavaScriptエンジンによって最適化されていないため、使用を禁止する必要があります.
  • isFinite

  • 因数が正常な有限数であるかどうかを確認し、有限数であればtrue/無限数であればfalseが返されます.
  • 因数のタイプが数値でない場合は、数値タイプに変換して実行します.
  • isNaN

  • 買収がNANであるかどうかを確認し、その結果を不確定なタイプに戻します.
  • 因数のタイプが数値でない場合は、数値タイプに変換して実行します.
  • parseFloat

  • パラメータを浮動小数点数に解析し、うっかり 返却する
  • perseInt

  • パラメータを整数に解析 返却する
  • encodeURI / decodeURI


  • EncodeURIは、完全なURI(Uniform Resource Identifier)を文字列として渡し、エスケープ処理のために符号化する.
  • エスケープ処理とは?
  • 情報を任意のシステム上でネットワークを介して共有可能なAsky文字セットに変換
  • utf-8特殊文字1文字あたり1~3バイト、ハングル文字あたり3バイト

  • URIはインターネット上のリソースを表す唯一のアドレスであり、URIのサブコンセプトであり、URI、URLがある.

  • decodeURI関数は、符号化されたURIをパラメータとして受信し、それをエスケープ処理の前に復号する.
  • encodeURIComponent / decodeURIComponent

  •  URIコンポーネントは、パラメータとして符号化/復号化される.
  • encodeURIとは異なり、セパレータの=、?および&をクエリーするために使用されます.にエンコードされます.
  • 21.4.3黙示戦闘



    🌳 に感銘を与える

  • JavaScriptのオブジェクト区分は大きく3つに分かれていることがわかりました.
  • 上記はWekibooksのモダンJavaScript Deep Diveの読み取りと整理です.