首页 > 语言 > JavaScript > 正文

Javascript类型系统之String字符串类型详解

2024-05-06 14:55:40
字体:
来源:转载
供稿:网友

javascript没有表示单个字符的字符型,只有字符串String类型,字符型相当于仅包含一个字符的字符串

  字符串String是javascript基本数据类型,同时javascript也支持String对象,它是一个原始值的包装对象。在需要时,javascript会自动在原始形式和对象形式之间转换。本文将介绍字符串String原始类型及String包装对象

定义

  字符串String类型是由引号括起来的一组由16位Unicode字符组成的字符序列

  字符串类型常被用于表示文本数据,此时字符串中的每个元素都被视为一个代码点。每个元素都被认为占有此序列中的一个位置,用非负数值索引这些位置。首字符从位置0开始,第二个字符在位置1,依次类推

  字符串的长度即其中元素的个数(比如,16 位值)。空字符串长度为零,因而不包含任何元素

Unicode编码

  所有字符都可以写成'/uxxxx'的形式,其中xxxx代表该字符的Unicode编码。比如,/u00A9代表版权符号

var s = '/u00A9';s // "©" 

  若一个字符串包含实际的文本数据,每个元素都被认为是一个单独的UTF-16单元。每个字符在JavaScript内部都是以16位(即2个字节)的UTF-16格式储存

  但UTF-16有两种长度:对于U+0000到U+FFFF之间的字符,长度为16位(即2个字节);对于U+10000到U+10FFFF之间的字符,长度为32位(即4个字节),而且前两个字节在0xD800到0xDBFF之间,后两个字节在0xDC00到0xDFFF之间

  举例来说,U+1D306对应的字符"𝌆",写成UTF-16就是0xD834 0xDF06。浏览器会正确将这四个字节识别为一个字符,但是javascript内部的字符长度总是固定为16位,会把这四个字节视为两个字符

var s = '/uD834/uDF06';s // "𝌆"s.length // 2 

  对于U+10000到U+10FFFF的4字节Unicode字符,javascript总是视为两个字符(字符length属性为2)

引号

 字符串String是由双引号(")或单引号(')声明的。而Java则是用双引号声明字符串,用单引号声明字符。由于ECMAScript 没有字符类型,所以可使用这两种表示法中的任何一种,但左右引号必须匹配

//正确var sColor1 = "red";var sColor2 = 'red';//错误var sColor1 = "red';var sColor2 = 'red"; 

  由单引号定界的字符串中可以包含双引号,由双引号定界的字符串也可以包含单引号

'key = "value"'"It's a long journey" 

  javascript代码可能会夹杂HTML代码的字符串,HTML代码也会夹杂javascript代码。因此,最好在javascript和HTML代码中各自使用独自的引号风格

  javascript中使用单引号表示字符串,在HTML事件处理程序中使用双引号表示字符串

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选