zoukankan      html  css  js  c++  java
  • JavaScript中的值类型和引用类型

    一、拥抱JavaScript

    曾经名不经传的JavaScript随着AJAX的流行而身价倍增,现在JavaScript不再仅仅是WEB开发中一个可有可无的辅助工具,甚至 有了专门属于它的职位“JavaScript工程师”,那怕你仅仅是一名WEB后台开发程序员,你都必须了解JavaScript,至少在一些相关招聘职 位要求上你可以看到“熟悉JavaScript优先”的字眼。甚至我还要告诉你,你将可以用JavaScript开发桌面软件,这得益于Adobe AIR的另外一种开发模式,即用HTML+CSS+JavaScript开发AIR

    二、值类型和引用类型话题

    随着部分有大型面向对象语言基础朋友的介入,他们试着用JavaScript去模拟面像对象的各种特征,尽管有些模拟显得较为牵强,但也让我们见识 到了JavaScript的强大与灵活性。本文暂不探讨JavaScript面向对象编程技术。就讲讲JavaScript中的两种变量类型:即值类型和 引用类型,这通常又会让你联想到“堆栈”,另外还有“引用地址”或“指针”相关概念,有过Java或C#编程经验的人相信对这两种类型不陌生。下面就举例 讲一下这两种类型在JavaScript中的体现、用法及注意事项。

    三、JavaScript值类型和引用类型有哪些

    (1)值类型:数值、布尔值、null、undefined。

    (2)引用类型:对象、数组、函数。

    四、如何理解值类型和引用类型及举例

    我们可以用“连锁店”和“连锁店钥匙”来理解,不知道以下比喻合不合适,^-^。

    (1)值类型理解:变量的交换等于在一个新的地方按照连锁店的规范标准(统一店面理解为相同的变量内容)新开一个分店,这样新开的店与其它旧店互不相关、各自运营。

    【值类型例子】

    function chainStore()
    {
        
    var store1='Nike China';
        
    var store2=store1;
        store1
    ='Nike U.S.A.';
        alert(store2); 
    //Nike China
    }
    chainStore();
    //把一个值类型(也可以叫基本类型)store2传递给另一个变量(赋值)时,其实是分配了一块新的内存空间,因此改变store1的值对store2没有任何影响,因为它不像引用类型,变量的交换其实是交换了指像同一个内容的地址。

    (2)引用类型理解:变量的交换等于把现有一间店的钥匙(变量引用地址)复制一把给了另外一个老板,此时两个老板同时管理一间店,两个老板的行为都有可能对一间店的运营造成影响。

    【引用类型例子】

    function chainStore()
    {
        
    var store1=['Nike China'];
        
    var store2=store1;
        alert(store2[
    0]); //Nike China
        store1[0]='Nike U.S.A.';
        alert(store2[
    0]); //Nike U.S.A.
    }
    chainStore();
    //在上面的代码中,store2只进行了一次赋值,理论上它的值已定,但后面通过改写store1的值,发现store2的值也发生了改变,这正是引用类型的特征,也是我们要注意的地方。

    转载:

    http://www.cnblogs.com/webflash/archive/2009/08/22/1552042.html

  • 相关阅读:
    django路由层(一)
    计算机基础2
    Django模板语言
    Django框架介绍
    Python--格式化输出,运算符
    Python---基础
    Tensorflow--TensorflowBoard
    Tensorflow--图和会话
    Tensorflow--Tensor
    Tensorflow--基础结构
  • 原文地址:https://www.cnblogs.com/yuzhongwusan/p/2335475.html
Copyright © 2011-2022 走看看