0
点赞
收藏
分享

微信扫一扫

第 2 章 基本概念------------(3)

2.4.6 String类型

         String类型用于表示由零或多个16位Unicode字符组成的字符序列,即字符串。字符串可以由双引号(")或单引号(')表示。与PHP中的双引号和单引号会影响对字符串的解释方式不同,ECMAScript中的这两种语法形式没有什么区别。用双引号表示的字符串和用单引号表示的字符串完全相同。

         1.字符字面量

         String数据类型包含一些特殊的字符字面量,也叫转义序列,用于表示非打印字符,或者具有其他用途的字符。这些字符字面量如下所示:

第 2 章 基本概念------------(3)_ecmascript

         任何字符串的长度都可以通过访问其length属性取得。

         2.字符串的特点

         ECMAScript中的字符串是不可改变的,也就是说,字符串一旦创建,它们的值就不能改变。要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量。

         3.转换为字符串

         要把一个值转换为一个字符串有两种方式。第一种是使用几乎每个值都有的toString()方法。这个方法唯一要做的就是返回相应值的字符串表现。如下所示:         


var  age=11;
var ageAsString=age.toString(); //字符串"11"
var found=true;
var foundAsString=found.toString(); //字符串"true"

         数值、布尔值、对象和字符串值(每个字符串都有一个toString()方法,该方法返回字符串的一个副本)都有toString()方法。但null和undefined值没有这个方法。

         多数情况下,调用toString()方法不必传递参数。但是,调用数值的toString()方法时,可以传递一个参数:输出数值的基数。默认情况下,toString()方法以十进制格式返回数值的字符串表示。而通过传递基数,toString()可以输出以二进制、八进制、十六进制,乃至其他任意有效进制格式表示的字符串值。通过指定基数,如下所示:      


var num = 10;
alert(num.toString()); // "10"
alert(num.toString(2)); // "1010"
alert(num.toString(8)); //"12"
alert(num.toString(10)); // "10"
alert(num.toString(16)); // "a"

         在不知道要转换的值是不是null或undefined的情况下,还可以使用转型函数String(),这个函数能够将任何类型的值转换为字符串。String()函数遵循下列转换规则:

n  如果值有toString()方法,则调用该方法(没有参数)并返回相应的结果;

n  如果值是null,则返回"null";

n  如果值是undefined,则返回"undefined"

         下面给出几个例子:


var  value1 = 10;
var value2 = true;
var value3 = null;
var value4;
alert(String(value1)); //"10"
alert(String(value2)); // "true"
alert(String(value3)); // "null"
alert(String(value4)); // "undefined"

         数值和布尔值的转换结果与调用toString()方法得到的结果相同。因为null和undefined没有toString()方法,所以String()函数就返回这两个值的字面量。要把某个值转换为字符串,可以使用加号(+)把它与一个字符串("")加在一起。

2.4.7 Object类型

         ECMAScript中的对象其实就是一组数据和功能的集合。对象可以通过执行new操作符后更要创建的队形类型的名称来创建。而创建Object类型的实例并为其添加属性和方法,就可以创建自定义对象:var o=new Object();

         仅仅创建Obect的实例并没有什么用处,但关键是要理解一个重要思想:在ECMAScript中,Object类型是所有它的实例的基础。换句话说,Object类型所具有的任何属性和方法也同样存在于更具体的对象中。

         Object的每个实例都具有下列属性和方法:

1  constructor:保存着用于创建当前对象的函数。对于前面的例子而言,构造函数(constructor)就是Object()。

2  hasOwnProperty(propertyName):用于检查给定的属性在当前对象实例中(而不是在实例的原型中)是否存在。其中,作为参数的属性名(propertyName)必须以     字符串形式指定。例如:o.hasOwnProperty("name")

3  isPrototypeOf(object):用于检查传入的对象是否是传入对象的原型。

4  propertyIsEnumerable(propertyName):用于检查给定的属性是否能够使用for-in语句来枚举。与hasOwnProperty()方法一样,作为参数的属性名必须以字符      串形式指定。

5  toLocaleString():返回对象的字符串表示,该字符串与执行环境的地区对应。

6  toString():返回对象的字符串表示。

7  valueOf():返回对象的字符串、数值或布尔值表示。通常与toString()方法的返回值相同。

         由于在ECMAScript中Object是所有对象的基础,因此所有对象都具有这些基本的属性和方法。


举报

相关推荐

0 条评论