String类型

String类型用于表示由0或多个16位Unicode字符组成的 字符序列,即字符串。字符串可以由双引号"或单引号'表示,因此以下两种字符串写法都是正确的:

var str1 = 'Alvin';
var str2 = "Alvin";

虽然在JavaScript中单引号和双引号都可以用来表示字符串,但是单引号或双引号必须成对出现,不能单双混用。比如:

var name = "Alvin';
var name1 = 'Alvin";

上面这两种写法都是错误的。

字符字面量

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

字面量 含义
\n

换行

\t 制表符

\b

退格
\r 回车
\f 换页
\\ 斜杠
\' 单引号

\"

双引号
\xnn 以十六进制代码nn表示的一个字符,如\x41表示A
\unnnn 以十六进制代码nnnn表示的一个Unicode字符,如\u03a3表示字符∑

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

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

这个例子中变量text有28个字符,其中6个字符长转义序列表示一个字符。

任何字符串的长度都可以通过访问length属性取得,如下面代码:

console.log(text.length); //28

字符串特点

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

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

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

转换为字符串

要把一个值转换为字符串有两种方式。第一种是使用几乎每个值都有的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;
console.log(num.toString());//"10"
console.log(num.toString(2));//"1010"
console.log(num.toString(8));//"12"
console.log(num.toString(10));//"10"
console.log(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;
var value4;console.log(String(value1)); //"10"
console.log(String(value2)); //"true"
console.log(String(value3)); //"null"
console.log(String(value4)); //"undefined"

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

JavaScript数据类型 - String类型相关推荐

  1. ESQLC数据类型 - string类型

    GBase8s ESQL/C字符串数据类型 GBase8s ESQL/C支持5种字符串数据类型, 如果在数据库的列中使用字符串类型,例如CHAR或者VARCHAR, 以下ESQL/C字符串类型可以使用 ...

  2. [译]ElasticSearch数据类型--string类型已死, 字符串数据永生

    原文链接: https://www.elastic.co/blog/s... Text vs. keyword 随着ElasticSearch 5.0的到来, 同时也迎来了该版本的重大特性之一: 移除 ...

  3. JavaScript数据类型 - Boolean类型

    Boolean类型 Boolean类型是JavaScript中使用的最多的一种类型,该类型只有两个字面值:true和false.这两个值与数字值不是一回事,因此true不一定等于1,而false也不一 ...

  4. JavaScript数据类型 - Object类型

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

  5. 前端 javascript 数据类型 布尔类型

    python 是大写 True javascript 是小写 true false 也是 布尔类型仅包含真假,与Python不同的是其首字母小写. ==      比较值相等 !=       不等于 ...

  6. 2.3、JavaScript 数据类型 - 数字类型

    在 JavaScript 中,数字有两种类型: (1)常规数字类型,以 64 位的格式 IEEE-754 存储,也被称为"双精度浮点数".这也是我们绝大多数时候使用的数字. (2) ...

  7. JavaScript数据类型 - Null类型

    Null类型 Null 类型是第二个只有一个值的数据类型,这个特殊的值就是null.从逻辑角度来看,null值表示一个空对象指针,而这也正是使用typeof检测null值时返回object的原因,如下 ...

  8. javascript 数据类型与类型转换

    JavaScript 数据类型 值类型(基本类型): 字符串(String) 数字(Number) 布尔(Boolean) 空(Null) 未定义(Undefined) Symbol 注:Symbol ...

  9. js基础--javascript基础概念之String 类型

    String 类型 String用来保存由零到多个16为Unicode 字符组成的字符序列. 即 字符串 ,字符串可以用 双引号( "" ) 单引号( '' ) 表示.如下: va ...

最新文章

  1. web.config文件详解
  2. 实际上module(data) 等价于module.forward(data)的原因分析
  3. 炉石传说 C# 设计文档(序)
  4. Word 2016加载Endnote x9的方法
  5. java map string stu_Java Map遍历的三种方式 | 学步园
  6. C语言入门题-是不是太胖了 (10分)
  7. ThinkPHP - F函数,更新配置文件
  8. APP设计没有灵感?让那些小众但富有创意的页面告诉你!
  9. android webview圆角,Android 实现一个通用的圆角布局
  10. 【运维】vi 和 vim 的区别
  11. php模拟顺序栈基本操作
  12. 【干货分享】用AI工具设计一款吸引人的字体效果
  13. 线性调频(LFM信号)脉冲压缩雷达matlab仿真- 脉冲压缩 测距 测速 距离速度三维像(附matlab代码)
  14. ir2104s的自举电容_有关IR2104的自举电容和NMOS选择问题 - 图文 -
  15. win764位loadrunner安装问题:提示:少了Microsoft Visual c++2005 sp1运行时组件,安装时会提示命令行选项语法错误,键入“命令/?”可获取帮肋信息,无法正常安装;
  16. 产品 软件验收标准参考
  17. wing带你玩转自定义view系列(3)模仿微信下拉眼睛
  18. creator 反复横跳瞄准线的实现
  19. skip-gram 学习笔记
  20. AutoIt 键盘操作(send)

热门文章

  1. IDEA的介绍基础运用和优化还有各种功能(超级全!!多图!!)
  2. 11 月中国手游海外收入排行:米哈游《原神》第一,《使命召唤手游》第二
  3. 頑健なJavaプログラムの書き方
  4. JavaScript实现模板生成大量数据的方法(附代码)
  5. 1813 句子相似性 III
  6. 软件开发项目计划编制过程[转]
  7. eclips开发工具的使用
  8. 人人旗下风车网CEO的创业失败教训总结
  9. subst 不小心创建出来虚拟磁盘 在磁盘管理中删不掉 使用subst命令删除 完美解决
  10. qgjsfagafgpjqip