zoukankan      html  css  js  c++  java
  • 《JavaScript高级程序设计》——第四章 变量、作用域和内存管理

    • JavaScript变量可以用保存两种类型的值:基本类型值引用类型值。基本类型的值源自以下基本类型数据:Undefined、Null、Boolean、Number和String。
    • 从一个变量向另一个变量复制引用型类型的值,复制的其实是指针,因此两个变量最终指向同一个变量。
    • 确认一个值是哪种引用类型可以用instanceof操作符。
    • JavaScript是一门拥有自动回收垃圾机制的语言
    • JavaScript没有块级作用域

    JavaScript中可以为引用类型值动态添加属性

            var person = new Object();
            person.name = "Nicholas";
            alert(person.name);    //"Nicholas"

    引用值作为函数参数,向函数传递的是值,但会访问实参

            function setName(obj) {
                obj.name = "Nicholas";
            }
            
            var person = new Object();
            setName(person);
            alert(person.name);    //"Nicholas"

    重写函数内部的对象时,变量引用的就是一个局部变量了

            function setName(obj) {
                obj.name = "Nicholas";
                
                obj=new Object();
                obj.name="Greg";
            }
            
            var person = new Object();
            setName(person);
            alert(person.name);    //"Nicholas"        

    在函数内用var声明的变量是局部变量,没有用变量前面没用var声明的是全局变量

            function add(num1, num2) {
                var sum = num1 + num2;
                return sum;
            }
            
            var result = add(10, 20);  //30
            alert(sum);                //causes an error since sum is not a valid variable
            function add(num1, num2) {
                sum = num1 + num2;
                return sum;
            }
            
            var result = add(10, 20);  //30
            alert(sum);                //30

    查询标识符搜索的过程是从作用域前端开始,向上逐级查询与给定名字匹配的标识符

            var color = "blue";
            
            function getColor(){
                return color;
            }
            
            alert(getColor());  //"blue"

    如果局部变量存在着同名标识符,就不会使用父环境中的标识符

            var color = "blue";
            
            function getColor(){
                var color = "red";
                return color;
            }
            
            alert(getColor());  //"red"
  • 相关阅读:
    android 多线程
    Uva 10881 Piotr’s Ants 蚂蚁
    LA 3708 Graveyard 墓地雕塑 NEERC 2006
    UVa 11300 Spreading the Wealth 分金币
    UVa 11729 Commando War 突击战
    UVa 11292 The Dragon of Loowater 勇者斗恶龙
    HDU 4162 Shape Number
    HDU 1869 六度分离
    HDU 1041 Computer Transformation
    利用可变参数函数清空多个数组
  • 原文地址:https://www.cnblogs.com/WP-WangPin/p/12764940.html
Copyright © 2011-2022 走看看