Javascript入门学习第二篇 js类型第1/2页

 更新时间:2008年07月06日 09:58:09   作者:  
上篇文章讲了js中的一些概念(词法结构) 和 数据类型(部分)。 这章我们 继续.然后了解下js中操作数据 和 函数的 作用域。
1,对象跟基本类型之间的转换:
不管何时,只是对象非空,在布尔环境中都为true.
如;
new Boolean(false); 
new Number(0);
new String(“”);
new Array();
上面虽然内部值是false,但对象的值是true;
Object ? valueOf() ? toString()
其中Date类,是先执行toString()转换。

2,js中操作一个数据值:
任何语言都有自己的操作数据的方法;
Js也不例外,js有3种重要的方式来操作一个数据值。
1)    复制它。例如把它赋给一个新的变量。
2)    把它作为参数传递给一个函数或方法。
3)    可以和其他值比较大小。

Js通过传值和传址2种方式操作这些数据的值。
从名称可以看处,传值 是通过传递值来操作数据。在赋值的过程中,对实际的值进行了拷贝,存储到一个新的变量中。拷贝的值和原来的值是2份完全独立的值。所以如果你改变了拷贝的值,并不会影响原来的值。当比较大小时候,通常进行琢个字节比较。
传址 从名字来看,就是通过传递地址来操作数据。在赋值的过程中,对实际的值的地址(可以说是引用)进行了拷贝,他们不是完全的独立,所以如果你通过引用改变了值,那么原始的值也会改变。当比较大小的时候,通常是看他们是否引用同一个地址来比较。
简单的传址例子:
var a = new Date();
alert(a.getDate());
var b = a ;
b.setDate(21);
alert(a.getDate()) // 输出21 

3,一般来说:
基本数据类型通过传值来操作的。(如果忘记了哪些是基本数据类型,可以往回看。)
对象数据类型通过传址来操作的。(比如 数组和函数)
例子:
<script>
//传值
a=1;
b=a;
b=2;
alert(a); //输出 1

//传址
x=[1,2];
y=x;  // 赋给y的只是x的一个引用,而不是x本身。数组已经在语句中被赋值了,执行过这段代码后,仍旧只有一个数组对象,只不过我们有2个对他的引用了。
y[0]=2;
alert(x[0] +" | " +x[1]);  //输出 2  |  2
</script>
其中我们必须注意字符串:
js中字符串是通过传址来复制和传递的,而他们是通过传值来比较的。
对象和数组是用传值来传递的,只不过传递的这个值实际是一个引用,而不是对象本身。
总结:
类型    复制    传递    比较
数字    传值    传值    传值
布尔    传值    传值    传值
字符串    不可变    不可变    传值
对象    传址    传址    传址
不可变:在JS中,没有方法去改变字符串值的内容。
对字符串来说,传值还是传址,意义不大。

相关文章

  • Javascript的迭代器和迭代接口详解

    Javascript的迭代器和迭代接口详解

    这篇文章主要为大家详细介绍了Javascript的迭代器和迭代接口,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • js 使用form表单select类实现级联菜单效果

    js 使用form表单select类实现级联菜单效果

    本文介绍javascript使用html中form表单中的select类实现级联菜单效果,需要的朋友可以了解下
    2012-12-12
  • 简介JavaScript中setUTCSeconds()方法的使用

    简介JavaScript中setUTCSeconds()方法的使用

    这篇文章主要介绍了简介JavaScript中setUTCSeconds()方法的使用,是JS入门学习中的基础知识,需要的朋友可以参考下
    2015-06-06
  • javascript数组去重方法总结(推荐)

    javascript数组去重方法总结(推荐)

    这篇文章主要介绍了javascript数组去重方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • js时间比较示例分享(日期比较)

    js时间比较示例分享(日期比较)

    这篇文章主要介绍了js时间比较示例,代码简单,运行后可以看到结果,需要的朋友可以参考下
    2014-03-03
  • 一文搞懂JavaScript中原型与原型链

    一文搞懂JavaScript中原型与原型链

    js中的原型与原型链应该是老生常谈的话题了,在前端面试中基本都是必问的一个问题,但是很多人还是稀里糊涂的,只知道其表层含义。本文将带大家深入了解JavaScript中的原型与原型链,感兴趣的可以学习一下
    2022-05-05
  • JavaScript函数节流和函数去抖知识点学习

    JavaScript函数节流和函数去抖知识点学习

    这篇文章给大家分享了JavaScript函数节流和函数去抖的相关的知识点内容,有需要的朋友们可以学习参考下。
    2018-07-07
  • ES6基础语法之函数介绍

    ES6基础语法之函数介绍

    这篇文章介绍了ES6中函数的用法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • 关于Js中new操作符的作用详解

    关于Js中new操作符的作用详解

    这篇文章主要给大家介绍了关于关于Js中new操作符作用的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • JavaScript中用于生成随机数的Math.random()方法

    JavaScript中用于生成随机数的Math.random()方法

    这篇文章主要介绍了JavaScript中用于生成随机数的Math.random()方法,是JS入门学习中的基础知识,需要的朋友可以参考下
    2015-06-06

最新评论