时间:2021-05-26
1,对象跟基本类型之间的转换:
不管何时,只是对象非空,在布尔环境中都为true.
如;
newBoolean(false);
newNumber(0);
newString(“”);
newArray();
上面虽然内部值是false,但对象的值是true;
Object?valueOf()?toString()
其中Date类,是先执行toString()转换。
2,js中操作一个数据值:
任何语言都有自己的操作数据的方法;
Js也不例外,js有3种重要的方式来操作一个数据值。
1)复制它。例如把它赋给一个新的变量。
2)把它作为参数传递给一个函数或方法。
3)可以和其他值比较大小。
Js通过传值和传址2种方式操作这些数据的值。
从名称可以看处,传值是通过传递值来操作数据。在赋值的过程中,对实际的值进行了拷贝,存储到一个新的变量中。拷贝的值和原来的值是2份完全独立的值。所以如果你改变了拷贝的值,并不会影响原来的值。当比较大小时候,通常进行琢个字节比较。
传址从名字来看,就是通过传递地址来操作数据。在赋值的过程中,对实际的值的地址(可以说是引用)进行了拷贝,他们不是完全的独立,所以如果你通过引用改变了值,那么原始的值也会改变。当比较大小的时候,通常是看他们是否引用同一个地址来比较。
简单的传址例子:
vara=newDate();
alert(a.getDate());
varb=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中,没有方法去改变字符串值的内容。
对字符串来说,传值还是传址,意义不大。
12下一页阅读全文
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Javascript入门学习第一篇js基础Javascript入门学习第二篇js类型Javascript入门学习第三篇js运算Javascript入门学习第四篇
这是Java网络爬虫系列博文的第二篇,在上一篇Java网络爬虫新手入门详解中,我们简单的学习了一下如何利用Java进行网络爬虫。在这一篇中我们将简单的聊一聊在网
这是第二篇文章,第一篇可以参考Tab页界面,用jQuery及Ajax技术实现代码特点:1,完全实现Tab逻辑功能,Tab的样式完全交由前端代码控制,很灵活。2,
第一页:JavaScript数据类型详解第二页:JavaScript数据类型详解第三页:JavaScript数据类型详解 数据类型 JavaScript中有
一.基础篇Javascript学习笔记1数据类型Javascript学习笔记2函数Javascript学习笔记3作用域Javascript学习笔记4Eval函数