Javascript入门学习第二篇 js类型第1/2页_基础知识

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中,没有方法去改变字符串值的内容。
对字符串来说,传值还是传址,意义不大。

当前1/2页 12下一页阅读全文

时间: 2024-10-20 08:43:21

Javascript入门学习第二篇 js类型第1/2页_基础知识的相关文章

Javascript入门学习第五篇 js函数第1/2页_基础知识

1 ,函数: function是一个定义一次 却可以多次调用的js代码. 当一个函数被一个对象调用时,那么这个函数就叫做这个对象的方法. function cssrain( x , y) {  //code } 解释: cssrain  :  为函数名: ( )     :   为 运算符: x ,  y  :   为 参数: 2 ,函数的返回值: function a(x){     document.write(x); } function b(y){    document.write(y

Javascript入门学习第三篇 js运算第1/2页_基础知识

1, 表达式: 最简单的表达式:直接量或者变量名.var a =1; 直接量表达式的值:本身. 变量表达式的值:该变量所存放或引用的值. 2 , 运算符: 一元运算符: 比如  - 3  二元运算符: 比如  3+4  三元运算符: 比如  ?   :     新手常遇到的问题: 递增运算符: 比如: i  =  1 ; j  = ++ i ; // 前递增运算,即先对运算数进行递增,然后再去计算. //输出   i  =2;    j=2 ; i  =  1 ; j  =  i ++; // 

Javascript模块化编程(三)require.js的用法及功能介绍_基础知识

这个系列的第一部分和第二部分,介绍了Javascript模块原型和理论概念,今天介绍如何将它们用于实战. 我采用的是一个非常流行的库require.js.  一.为什么要用require.js? 最早的时候,所有Javascript代码都写在一个文件里面,只要加载这一个文件就够了.后来,代码越来越多,一个文件不够了,必须分成多个文件,依次加载.下面的网页代码,相信很多人都见过. 复制代码 代码如下: <script src="1.js"></script> &l

JavaScript初级教程(第五课续)第1/3页_基础知识

    在JavaScript中单选框的用法和复选框相似.不同之处在于HTML中的应用.复选框是一种开关.如果一个复选框被选中,你可以再点击后取消选取. 但如果单选框被选中,则只能通过选取另外一个单选框才能取消对该单选框的选取.例:     Larry    Moe    Curly     在该例中,如果你打算取消对一个单选框的选取,你必须点击另一个单选框.再看下面的程序:     Light off    Light on     表单代码如下:     <form name="for

javascript 基础篇2 数据类型,语句,函数_基础知识

写内容之前废话一句:因为旧版有些浏览器不支持javascript脚本,遇到script结点,当做普通内容输出了,所以有时候为了让版本兼容,会在script结点里的内容写上注释符号,这样的话在旧版里虽然程序会失效,但是不会出现我们的代码,类似于这样(请忽略括号以及括号里的东西): 复制代码 代码如下: <script type="text/javascript"> <!-- (注意,这里必须换行) xxxxxx; --> (这一行也不可以写东西.) </sc

讲解JavaScript的Backbone.js框架的MVC结构设计理念_基础知识

什么是Backbone.js?Backbone.js是十大JS框架之首,Backbone.js 是一个重量级js  MVC 应用框架,也是js MVC框架的鼻祖.它通过Models数据模型进行键值绑定及custom事件处理,通过模型集合器Collections提供一套丰富的API用于枚举功能,通过视图Views来进行事件处理及与现有的Application通过JSON接口进行交互. 简而言之,Backbone是实现了web前端MVC模式的js库 什么是MVC?MVC:后端服务器首先(过程1)通过

JavaScript进阶教程(第二课)第1/3页_基础知识

今天我们将学习一项很有用而且很有趣的内容:cookies - 这是用来记录访问过你的网页的人的信息.利用Cookies你能记录访问者的姓名,并且在该访问者再次访问你的站点时向他发出热情的欢迎信息.你还可以利用cookie记忆用户端的特点 - 如果访问者的所接入的网线的速度慢,cookie可以自动告诉你在给其发送网页的时候只发送尽可能少的图片内容.     只要你在合理的范围内使用cookies(不要用它探询用户的个人隐私),cookies还是相当实用得.所以我要向你们介绍cookies的工作原理

JS入门代码集合第1/4页_基础知识

 基础知识:HTML  JavaScript就这么回事1:基础知识    1 创建脚本块   1: <script language="JavaScript">   2: JavaScript code goes here   3: </script>    2 隐藏脚本代码   1: <script language="JavaScript">   2: <!--   3: document.write("Hel

javascript学习笔记(九)javascript中的原型(prototype)及原型链的继承方式_基础知识

在使用面向对象编程时,对象间的继承关系自然少不了!而原型正是实现javascript继承的很重要的一种方法! 我们首先来看以下代码: 复制代码 代码如下: function person(name, age) { this.name = name; this.age = age; } person.prototype.getInfo = function() { alert("My name is "+this.name+", and I have "+this.a