zoukankan      html  css  js  c++  java
  • 制作火种之前的简单基础讨论传值和传址

    在服务器端js要小心使用对象,比如在vb中最常用的

    val=rs("字段")

    rs.close

    set rs=nothing

    val1=val

    Response.Write val1‘这是可以的因为这是传值

    以上代码换成js的话

    var val=rs("字段");

    rs.close();

    rs=null;

    Response.Write(val);//这不会是你想得到的,因为他是对象,是传址的一旦引用地址清空所有的引用都变成undefined

    因为rs("字段")这是一个对象 在js中对象是传址的

    就是一个传值和传址对js影响极大,那么什么数据是传址什么数据传值 js犀牛书中有一个列表我稍后贴出

    以上代码修改成

    var val=rs("字段")+"";//变成字符类型用new String()也可以但效率低建议用+""

    rs.close();

    rs=null;

    Response.Write(val);//即使引用内存的地址被清空也没关系了数据已经转换成值,他就是他自己,他不是对别人的引用。

    实际弄清楚传值和传址后你会发现这个很有用,因为以前实在弄不清哪些传值,哪些传址引起很多误会。弄清的好处不言自明。

    附:David Flanagan著的《javascript权威指南》第五版 第56页表

    ----------------------------------------------------------

       类型    |   复制    |    传递   |    比较   |

    ----------------------------------------------------------

    数字            传值          传值         传值

    布尔           传值          传值         传值

    字符串       不可变     不可变       传值

    对象           传址         传址         传址

    -----------------------------------------------------------

    我的qq:674096197,欢迎一起探讨asp javascript 不在线请弹屏一下!
  • 相关阅读:
    用mkdirs创建目录
    关于布局(Layout)的一切
    用HTTP操作和文件操作把网页下载到sd卡
    OpenStack计费项目Cloudkitty系列详解(一)
    OpenStack/Gnocchi简介——时间序列数据聚合操作提前计算并存储起来,先算后取的理念
    python-RabbitMQ
    1go基本语法
    openstack多region配置
    cinder 挂载卷和 iSCSI原理
    Host aggregate分区
  • 原文地址:https://www.cnblogs.com/329521/p/1654656.html
Copyright © 2011-2022 走看看