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);

             

  • 相关阅读:
    JSONP跨域的原理解析( 一种脚本注入行为)
    用Navicat_SSH 连接数据库服务器
    ng-repeat && ng-options的故事
    The different between ng-grid & ui-grid
    Web工作原理
    js操作cookies方法
    人生苦短,我用Python(目录)
    哈希算法
    数据结构
    算法入门
  • 原文地址:https://www.cnblogs.com/tao-zi/p/4089340.html
Copyright © 2011-2022 走看看