• 《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"
  • 相关阅读:
    Go网络文件传输
    Go网络编程
    LNMP环境搭建(PHP7.4.0)
    LNMP环境搭建(PHP7.2.25)
    Please ensure the argon2 header and library are installed
    MySQL权限管理
    nginx ingress controller配置默认SSL证书
    kubernetes pod内抓包,telnet检查网络连接的几种方式
    ansible取出register变量中最长字符串
    kubernetes flannel pod CrashLoopBackoff解决
  • 原文地址:https://www.cnblogs.com/WP-WangPin/p/12764940.html
Copyright © 2020-2023  润新知