JSドラック--無視しやすいいくつかの知識点

5054 ワード

JSにおけるグローバル変数
  ----------------
            
  ----------------
   JavaScript            (     window)   
                  :
  1、no var
  function add(a, b) {
    //result      
    result = a + b;
    return result;
  }

  2、chain assignments
  function add() {
    //b       
    var a = b = 2;
  }

  ------------
         
  ------------
                  ,         :
  function add() {
    var a = 1,
        b = 2,
        c = 3;
  }
変数宣言の昇格
  -------------
    Hoisting
  -------------
  Hoisting(      ),               :

  var name = "globalname";
  function some() {
    console.log(name); //undefined
    var name = "localname";
    console.log(name); //localname
  }

  1、        ,JS        。
  2、      console  name     some       name.
  3、 some   ,var name = "localname"    var name; name = "localname";
  4var name;     some        。
forinの使用
  -------------
    forin
  -------------
    forin,          :
  var student = {
    name: 'dai'
  }
  Object.prototype.age = 21;
  for(var i in student) {
    console.log(i + ' ' + student[i]);
    //name dai
    //age 21
  };

                  ,         name    ,  :
  for(var i in student) {
    if(student.hasOwnProperty(i)) {
      console.log(i + ' ' + student[i]);
    }
  }
    hasOwnProperty            。
      student        hasOwnProperty ?
             
  for(var i in student) {
    if(Object.prototype.hasOwnProperty.call(student,i)) {
      console.log(i + ' ' + student[i]);
    }
  }

           ,   Object.prototype.hasOwnProperty     ?

  ------------------------
    build-in-prototype
  ------------------------
                  ,                   ,      。
      :
  if(typeof Object.prototype.methodName !== "function") {
    Object.prototype.methodName = function() {
      //do something
    }
  }
使用を拒否する==
    ===    == 。
evalの使用を避ける()
         ,     。
文字列を数値に変換
  -----------------
           
  -----------------
         parseInt()    ,               ,         ,    。
                      。
       :
  var b = "08  ";
  console.log(+b); // NaN
  console.log(parseInt(b,10)); //8