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"
  • 相关阅读:
    BZOJ3527: [Zjoi2014]力(FFT)
    NOIP 2018游记
    BZOJ2763: [JLOI2011]飞行路线(分层图 最短路)
    11.7NOIP模拟赛解题报告
    交互体验之产品的文案
    关于java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream解决办法
    [置顶] android 与JavaScript的互相调用
    linux系统的文件类型学习
    VS2012 开发SharePoint 2013 声明式workflow action(activity)之 HelloWorld
    js判断浏览器类型 js判断ie6不执行
  • 原文地址:https://www.cnblogs.com/WP-WangPin/p/12764940.html
Copyright © 2011-2022 走看看