JavaScript高级程序设计(第3版) 笔记

2018-06-26  本文已影响6人  Jay_Chen

第四章 变量、作用域和内存问题

4.1 基本类型和引用类型

      var obj = new Object();
        var obj2 = obj;
        obj2.name = "jay";
        obj.age = "18";
        console.log(obj.name); // jay
        console.log(obj.age); // 18
        console.log(obj2.name); // jay
        console.log(obj2.age); // 18
        var person = new Object(); 
        var colors = new Array();
        var pattern = new RegExp();
        console.log(person instanceof Object); // 变量person是Object吗? true
        console.log(colors instanceof Array); // true
        console.log(pattern instanceof RegExp); // true

4.2 执行环境及作用域
       var color = "blue";
       function getColor(){
           var color = "red";
           return color;
       }
       console.log(getColor()); // red
       var color = "blue";
       function getColor(){
           
           return color;
       }
       console.log(getColor()); // blue
      var color = "blue";
       function getColor(){
           var color = "red";
           return window.color;
       }
       console.log(getColor()); // blue

垃圾收集

4.3.4 管理内存
    function createPerson(name) {
        var localPerson = new Object();
        localPerson.name = name;
        return localPerson;
    }
    var globalPerson = createPerson("Jay");
    console.log(globalPerson.name); // Jay

  // 手动解除globalPerson 的引用
   function createPerson(name) {
        var localPerson = new Object();
        localPerson.name = name;
        return localPerson;
    }
    var globalPerson = createPerson("Jay");
    // console.log(globalPerson.name); // Jay  
    globalPerson = null;
    console.log(globalPerson.name); //  Uncaught TypeError: Cannot read property 'name' of null

4.4 小结

上一篇 下一篇

猜你喜欢

热点阅读