JavaScript基本数据类型及值类型和引用类型(3)

在Javascript中的字符串是不可变的,其实这跟C#中是一样的,(估计也是为了提高性能),字符串一旦创建,他们的值就不能改变,要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含信纸的字符串填充该变量。

var name=”jwy”; name = “jwy”+” study javascript”;

这里一开始name是保存字符串”jwy”的,第二行代码则将“jwy”+” study javascript”; 值重新赋给name,它先床架一个能容纳这个长度的新字符串,然后填充,销毁原来的字符串。

几乎每个值都有自己的toString()方法,在后面的文章会解释这个方法哪里来的,它会返回相应值的字符串表现。

var age=11; var ageToString =age.toString();//”11”

数值、布尔值、对象和字符串值都有toString(),但是null和undefined值没有这个方法。

一般来说,调用toString()方法不必传递参数,但是,在调用数值的toString方法时,可以传递一个参数,用来指定要输出的数值的基数(看是要输出十进制、二进制、八进制、十六进制表示)

由于null和undefined没有toString方法,在不知道是否是这两者的情况下调用是会报错的,所以还有一条路可以选,就是使用转型函数String(),它呢就可以接收任何类型的值转为字符串了,处理规则如下:

1、如果这个值有toString则直接调用,并返回结果

2、如果是null,则返回”null”

3、如果是unde,则返回”undefined”

Object 类型

Object类型是Javascript引用类型的鼻祖了,(就跟在C#和Java中是一样的道理),在创建Object类型的实例后可以为其添加属性和方法,

var o = new Object;//有效,不推荐 var o =new Object();

在Javascript中,Object类型所具有的任何属性和方法也同样存在于更具体的对象中。

每个实例都有如下的属性和方法,如下:

1、constructor ,保存着用于创建当前对象的函数。上面构造函数就是Object();

2、hasOwnProperty,用于检查给定的属性是否在当前对象实例中,是就true,不是在实例中,而是在原型中,则是false;

3、isPrototypeOf,用于检查传入的对象是否是另一个对象的原型

4、propertyIsEnumerable,用于检查给定的属性是否能够使用for…in语句来枚举,

5、toString,返回对象的字符串表示

6、valueOf,返回对象的字符串、数值或布尔值表示,通常与toString方法返回值相同

以上就是Object所具有的属性和方法,所有对象都会因为继承关系而继承这些属性和方法。

结束语

Undefined、Null、Boolean、Number、String是javascript中的基本数据类型,而Object属于引用类型。用typeof检测其他类型会返回相应的字符串,但是检测null或对象时,会返回”object",如果掌握了这些,以后就不会看到这些会点摸不着头脑了。顺带提一句:

Boolean、Number、String 这三个是Javascript中的基本包装类型,也就是这三个其实是一个构造函数,他们是Function的实例,是引用类型,至于这里的String与文章说的String是同名,是因为其实上文说的String是指字符串,这里的String指的是String这个构造函数,上面那么写,是为了更好的理解,因为Javascript是松散类型的。我们可以看下String实例化的例子:

var name = String("jwy"); alert(typeof name);//"object" var author = "Tom"; alert(typeof name);//"string"

至于author这个会有length,substring等等这些方法,其实是String这里的方面,string只是String的一个实例,类似于C#中的String,和string,只不过这里特殊一点。

注意,typeof 变量  如果值是"string" 的话,也就是这个变量是字符串,在Javascript中,字符串是基本类型,而在C#或Java中,字符串是引用类型,但是Javascript中的String是引用类型,因为它是Javascript中定义好的基本包装类型,在C#中,String跟string其实是一样的。这个东西有点绕,如果有错的,大家请指出来,一起交流交流。

JavaScript中的值类型和引用类型

一、拥抱JavaScript

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

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

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wggjpp.html