zoukankan      html  css  js  c++  java
  • JavaScript作用域

    我们知道Javascript中的变量是松散类型的,它的值和类型在脚本生命周期内都可以改变。Javascript变量可以保存两种不同类型的值:基本类型和引用类型

    基本类型:简单的数据段

    引用类型:多个值构造的对象

    在将一个值赋给变量是,解析器必须确定这个是基本类型还是引用类型,引用类型是保存在内存中的对象,Javascript不允许直接访问内存位置,所以在操作对象时实际上是操作对象的引用而不是实际的对象,即是按引用访问的

    引用类型的动态性 

    对于引用类型,我们可以动态的为其添加属性和方法,而基本类型则不可这样操作

    1     var person=new Object();
    2     person.name="Jack";
    3     alert(person.name);  //Jack

    PS:这种方法对于基本类型是无效的

    变量的赋值方式

    ①基本类型的赋值

    把一个基本类型的值赋值给另一个变量,会在这个变量上面创建该值的副本,然后分配到新变量的位置,这个两个变量的值,完全独立,互不影响

    ②引用类型的赋值

    把一个引用类型的值赋值给另一个变量,会将存储对象位置的指针赋值给新变量,这个两个变量实际引用了同一个对象,改变其中一个变量就会影响另一个变量

    1     var obj1=new Object();
    2     var obj2=obj1;
    3     obj1.name="Jack";
    4     alert(obj2.name);  //Jack

    函数参数的传递方式

     在Javascript中所有函数的参数都是按值传递的,在想参数传递值时,被传递的值会被赋值一个给局部变量,即命名参数,也就是arguments对象中的一个元素。当然对于引用类型,实际上赋值的对象的引用

    下面看两个例子:

        function add(num){  
            num+=100;
            return num;
        }
        var count=50;
        var result=add(count);
        alert(count);
        alert(result);

             

  • 相关阅读:
    C. Shaass and Lights 解析(思維、組合)
    D. Binary String To Subsequences(队列)(贪心)
    CodeForces 1384B2. Koa and the Beach (Hard Version)(贪心)
    CodeForces 1384B1. Koa and the Beach (Easy Version)(搜索)
    CodeForces 1384C. String Transformation 1(贪心)(并查集)
    CodeForces 1384A. Common Prefixes
    POJ-2516 Minimum Cost(最小费用最大流)
    POJ3261-Milk Patterns(后缀数组)
    HDU-1300 Pearls(斜率DP)
    HDU-4528 小明系列故事-捉迷藏(BFS)
  • 原文地址:https://www.cnblogs.com/tao-zi/p/4089340.html
Copyright © 2011-2022 走看看