理解掌握ECMAScript的String类型

理解掌握ECMAScript的String类型

1.转义序列有哪些?

转义序列,String类型的特殊字符字面量(Character Literals)。

字面量含义
\n换行
\t制表
\b空格
\r回车
\f进纸
\'单引号
\"双引号
\xnn以十六进制代码nn表示的一个字符(其中n为0~F),例,\x41表示"A"
\unnnn以十六进制代码nnnn表示的一个Unicode字符(其中n为0~F),例,\u03a3代表一个希腊字符Σ

注意:1个转义序列的字符串表示1个字符。字符串的length属性返回了这个字符串中16位字符的数目。如果字符串中包含双字节字符,那么length属性可能不会精确地返回字符串中的字符数目。

var a = "\x41";
console.log(a.length);  // 1

var b = "\t";
console.log(b.length);  //1
 
2.字符串有什么特点?

ECMAScript中的字符串是不可变的,也就是说,字符串一旦创建,它们的值就不能改变。

那么如何改变变量保存的字符串呢?

首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量。

例:

var lang = "Java";
lang = lang + "Script";
 

首先,创建一个能容纳10个字符的新字符串;

然后,在这个字符串中填充"Java"和"Script";

最后,销毁原来的字符串"Java"和字符串"Script"。

上面这个过程是在后台发生的,而这也是在某些旧版本的浏览器(例如版本低于1.0的Firefox、IE6等)中拼接字符串时速度很慢的原因所在。

3.如何将其他类型的值转换为字符串?

两个方法:toString() 和 String()。

toString()方法。

Number类型、Boolean类型、Object类型和String类型的值,都有一个toString()方法。

Null类型和Undefined类型的值,没有toString()方法。

var numVlaue = 11;
numVlaue.toString();  // "11"
11 .toString();  // "11",注意,是"11" "空格" "点" "toString()"

var booleanValue = true;
booleanValue.toString(); // "true"
true.toString(); // "true"

var objectValue = {
    mirror:"avatar"
};
objectValue.toString(); //"[object Object]"
 

转换Number类型的值的时候,toString()可以添加参数,用于转换成二进制、八进制、十六进制等模样的字符串,默认不加是十进制。

var num = 10;

num.toString(); // "10"
num.toString(2); // "1010"
num.toString(8); // "12"
num.toString(10); // "10"
num.toString(16); // "a"
 
String()方法。

Null类型和Undefined类型的值,没有toString()方法。所以转换这两种类型的值时候用String()。

String(null);  // "null"
String(undefined); // "undefined"
 

String()方法的转换规则:

  1. 当此类型的值有toString()方法,则用toString()方法;
  2. 如果是null,返回"null"。
  3. 如果是undefined,返回"undefined"。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值