javascript高級プログラム設計の引用タイプ

7976 ワード

第5章引用の種類
5.1 Objectタイプ
  • object.hasOwn Property(「属性名」)
  • const object1 = {};
    object1.property1 = 42;
    
    console.log(object1.hasOwnProperty('property1'));
    // expected output: true
    
    console.log(object1.hasOwnProperty('toString'));
    // expected output: false
    
    console.log(object1.hasOwnProperty('hasOwnProperty'));
    // expected output: false
    
    
  • Object.freeze()
  • Object.freeze()メソッドはパラメータを受信し、このパラメータがオブジェクトである場合、この方法はこのオブジェクトを凍結します.他のタイプであれば、エラーが発生しません.影響はありません.
    凍結されたオブジェクトは、属性または属性値を変更、追加、削除できません.
    let obj = {"a":5};
    
    Object.freeze(obj); //return  obj
    
    obj.a = 3;  //    
    
    console.log(obj); //    {"a":5}
    
    また、freezeが凍結しているのは、スタック内の値であり、スタック中の参照とは関係がない.
    //     
    
    obj = 2; //       
    
    用途:大きなデータの対象で、変更が必要ではないと確信した場合、彼にフレイゼ()を与えることができ、性能を大幅に高めることができます.
    オンライン上の設定ファイルのオブジェクトを凍結してもいいです.誰かが間違って変更されないようにしてください.
  • どのように一つのオブジェクトが空であるかを判断します.
    let obj = {name:"tom", age:19,sex:" "}
    function isblock(obj) {
      for(let i in obj) {
        return true
       }
       return false
    }
    console.log(isblock(obj))   //true
    
    2.JSON.strigify()の方法で判断する
    
    let obj = {};
    function isblock(object){
    if(JSON.stringify(object) === '{}'){
    return true;
    console.log('asdf')
    }else{
    return false;
    }
    }
    console.log(isblock(obj))
    
    3.ES 6のObject.keys()を推奨します.キー名からなる配列(キーは文字列形式です.)
    let obj = {}
    Object.keys({}).length  === 0 ? "   ""    "
    
  • データタイプObject.prototype.toString.call()
  • Object.prototype.toString.call([])
    "[object Array]"