JS中六种数据类型(五)——String (转)

String类型用于表示由零或多个16位Unicode字符组成的字符序列,即字符串。字符串可以由双引号(“)或单引号(‘)表示,因此下面两种字符串的写法都是有效的:

var firstName="Marry";

var firstName=‘Jane‘;

与PHP中的双引号和单引号会影响对字符串的解释方式不同,ECMAScript中的这两种语法形式没有什么区别。用双引号表示的字符串和用单引号表示的字符串完全相同。不过,以引号开头的字符串也必须以双引号结尾,而以单引号开头的字符串必须以单引号结尾。例如,下面这种字符串表示法会导致语法错误:

var firstName="Nicholas‘; //语法错误(左右引号必须匹配)

    1、字符字面量

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


   
 
这些字符字面量可以出现在字符串中的任意位置,而且也将被作为一个字符来解析,如下面的例子所示:

var text="This is the letter sigma: \u03a3.";

    这个例子中的变量text有28个字符,其中6个字符长的转移序列表示1个字符。任何字符串的长度都可以通过访问其length属性取得,例如:

alert(text.length);//输出28

    这个属性返回的字符数包括16位字符的数目。如果字符串包含双字节字符,那么length属性可能不会精确的返回字符串中字符数目。

    2.字符串的特点

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

var  lang="Java";

lang=lang+"Script";

以上示例中的变量lang开始时包含字符串“Java”。而第二行代码把lang的值重新定义为“Java”与“Script”的组合,即“JavaScript”。实现这个操作的过程如下:首先创建一个能容纳10个字符的新字符串,然后再这个字符串中填充"Java"和“Script”,最后一步是销毁原来的字符串“Java”和字符串“Script”,因为这两个字符串已经没用了。这个过程是在后台发生的,而这也是在某些旧版本的浏览器(如版本低于1.0的Firefox,IE6等)中拼接字符串时速度很慢的原因所在。但这些浏览器后来的版本已经解决了这个低效率的问题。

 3.转换为字符串

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

var age=11;

var ageAsString=age.toString();  //字符串“11”

var fount=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"

通过这个例子可以看出,通过指定基数,toString()方法会改变输出的值。而数值10根据基数的不同,可以在输出时被转换为不同的数值格式。注意,默认的(没有参数的)输出值与指定基数10时的输出值相同。

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

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

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

如果值是undefined,则返回“undefined”

下面再看几个例子:

var value1=10;

var value2=true;

var value3=null;

alert(String(value1));    //"10"

alert(String(value2));    //"true"

alert(String(value3));    //"null"

alert(String(value4));    //"undefined"

这里先后转换了4个值:数值、布尔值、null和undefined。数值和布尔值的转换结果与调用toString()方法得到的结果相同。因为null和undefined没有toString()方法,所以String()函数就返回了这两个值的字面量。

欢迎关注微信公众号:wcs290130——JavaScript那些事儿。JavaScript技术交流群:344292264  。

时间: 2024-08-01 10:42:40

JS中六种数据类型(五)——String (转)的相关文章

JS中六种数据类型(一)——undefined (转)

JS中有6种数据类型:Undefined.Null.Boolean.Number.String和Object.JS中不支持任何创建自定义类型的机制,而所有值最终都将是这6种数据类型.其数据类型的动态性特点足以表示所有数据.JS提供typeof操作符来检测变量的数据类型. (typeof返回的是字符串有六种可能:"number","string","boolean","object","function",&

JS中六种数据类型(一)——undefined

JS中有6种数据类型:Undefined.Null.Boolean.Number.String和Object.JS中不支持任何创建自定义类型的机制,而所有值最终都将是这6种数据类型.其数据类型的动态性特点足以表示所有数据. (typeof返回的是字符串有六种可能:"number","string","boolean","object","function","undefined"). 我

JS中六种数据类型(三)——Boolean (转)

Boolean类型是ECMAScript中使用最多的一种类型,该类型只有两个字面值:true和false.这两个值与数字值不是一回事,因此true不一定等于1,而false也不一定等于0.需要注意的是,Boolean类型的字面值true和false是区分大小写的.也就是说,True和False(以及其他的混合大小写形式)都不是Boolean值,只是标识符. 虽然Boolean类型的字面值只有两个,但ECMAScript中所有类型的值都有与这两个Boolean值等价的值. var message=

JS中六种数据类型(四)——Number (转)

Number类型应该是ECMAScript中最令人关注的数据类型了,这种类型使用IEEE754格式来表示整数和浮点数值(浮点数值在某些语言中也被称为双精度数值).为支持各种数值类型,ECMA-262定义了不同的数值字面量. 最基本的数值字面量格式是十进制整数,十进制整数可以像下面这样直接在代码中输入: var  item =55;   //整数 除了以十进制表示外,整数还可以通过八进制(以8为基数)或十六进制(以16为基数)的字面值来表示.其中,八进制字面值的第一位必须是零(0),然后是八进制数

JS中六种数据类型(二)——Null (转)

Null类型是第二个只有一个值的数据类型,这个特殊的值是null,从逻辑角度来看,null值表示一个空对象指针,而这也正是使用typeof操作符检测null值会返回"object"的原因,如下面的例子所示: var car =null; alert(typeof null);  //object(其实这是JavaScript最初实现的一个错误,后来被ECMAScript沿用下来) 如果定义的变量准备在将来用户保存对象,那么最好将该变量初始化为null而不是其他值.这样一来,只要直接检查

JS中六种数据类型(二)——Null

Null类型是第二个只有一个值的数据类型,这个特殊的值是null,从逻辑角度来看,null值表示一个空对象指针,而这也正是使用typeof操作符检测null值会返回“object”的原因,如下面的例子所示: var car =null; alert(typeof null);  //object(其实这是JavaScript最初实现的一个错误,后来被ECMAScript沿用下来) 如果定义的变量准备在将来用户保存对象,那么最好将该变量初始化为null而不是其他值.这样一来,只要直接检查null值

JS中六种数据类型(六)——Object(转)

ECMAScript中的对象是可变的键控集合(即一组数据和功能的集合).它将很多值聚合在一起,可通过名字访问这些值.对象也可看做属性的容器,每个属性都是一个名/值对.属性的名字可以是包括空字符串在内的任意字符串.属性值可以是除undefined值之外的任何值.对象最常见的用法是创建(create).设置(set).查找(query).删除(delete).检测(test)和枚举(enumerate)他的属性.  一.属性类型 ECMA-262第5版在定义只有内部采用的特性时,描述了属性的各种特征

JS中六种数据类型(六)——Object

   ECMAScript中的对象是可变的键控集合(即一组数据和功能的集合).它将很多值聚合在一起,可通过名字访问这些值.对象也可看做属性的容器,每个属性都是一个名/值对.属性的名字可以是包括空字符串在内的任意字符串.属性值可以是除undefined值之外的任何值.对象最常见的用法是创建(create).设置(set).查找(query).删除(delete).检测(test)和枚举(enumerate)他的属性.  一.属性类型 ECMA-262第5版在定义只有内部采用的特性时,描述了属性的各

js中的数据类型及其转换

Js中的数据类型 Js中的数据类型一共有六种,即number,string,boolean,underfine,null,object. 一,number Number数据类型指的是数字,可以为整型,也可以是浮点数.如 var a=12,b=12.5; 二,string 字符串由零个或多个字符构成,字符包括字母,数字,标点符号和空格;需要注意的是 字符串必须放在引号里(单引号或双引号); 如 var bob=”man”; alert(“bob”); alert(bob); 浏览器首先会弹出包含有