Javascript文本

文本*:
定义:表示文本的 JS 类型是字符串。

  • 字符串是不可修改的,以 16 个二进制位为一个单位的 “16 位值” 序列,通常一个 16 位值表示一个 Unicode 字符。

  • 字符串长度是它所包含的 16 位值的个数。JavaScript 的字符串和数组都是用从 0 开始的下标索引。第一个 16 位值在位置 0,第二个在位置 1,以此类推。空字符串的长度是 0。不像某些其他语言那样存在字符类型,对于单个字符,在 JS 中就表示为含有一个字符的字符串

  • JavaScript 使用 Unicode 字符集的 UTF-16 编码,JavaScript 字符串其实是无符号的 16 位值的序列。最常见的 Unicode 字符用 16 位二进制都能表示得下。但也存在少量的 Unicode 字符需要用两个 16 位才能装得下。比如 :

示例.png

所以,”字符串的 length 属性表示字符串中的字符个数“这句话对吗?大多数情况是对的,但并不准确,准确的说是表示字符串中 16 位值的个数。

对字符串使用数组下标取值时,按 16 位为单位读取,而未必是字符单位。用比较运算符比较两个字符串时,也是以 16 位值为单位依次比较编码值的大小。

在 ES6 中,字符串是可迭代物,如果对字符串使用 for/of 循环或者散列操作符,那将会按实际字符为单位遍历,而不是按 16 位值。

1 字符串字面量

  • String类型
    JavaScript 中表示文本的类型是 String ,即字符串。
    每个值都表示Unicode字符。
    JavaScript的字符串(以及数组)使用基于零的索引
    要JavaScript可以把字符串放到一对匹配的单引号双引号还在反引号,双引号字符和反引号。

反引号 定界字符串是ES6的特性 :允许在字符串字面量中包含(或者插入)JavaScript表达式

JavaScript最早版本要求字符串字面量必须写在一行,使用+操作符把单行字符串拼接成长字符串的JavaScript代码

"hello"+"word"

但是到了es5 ,我们可以在后面加一个\从而把字符串字面量写到多行上

"weo/fff"
"weo\
fff\
"

到了es6反引号语法支持跨行字符串

` sssssssssssss
ssssssssssssss
ssssssssssssss`

注意

最好JavaScript和HTML分别使用不同的引号

字符串字面量中的转义序列

反斜杠(/)在JavaScript字符串中有特殊作用,

它与后面的字符组合在一起,

可以在字符串中表示一个无法直接表示字符

比如说\n是一个表示换行符的转义序列


要在 JavaScript 程序中包含字符串,可以 符串放到 对匹配的单引号、双引号或者
反引号(\”或、)中。
双引号字符和反引号可以出现在由 引号定界的 符串中, 同理
由双引号和反引号定界的 符串里 可以包含另外两种引号。

字符串字面量
的例子:
 '' ''//空字符串 即有零个字符
’ testing' 
” 3.14” 
nafTle =” fTlyfo fTI "’
”Wouldn ’ t you efe 'Rei. lly ’s book?” 
” I i.s the ati.o of a ci. cle's ci. CUfTlfe ence to i.ts adi.us
、” She sai.d 'hi.' ", he sai.d.
  • 使用反引号定界 符串是 ES6 的特性,允许在丰符串 字面量中包含(或插入 JavaScript
    表达式。
    JavaScript 最早的版本要求字符串字面 必须 ,使用+ 操作符把单行字符串
    接成长字符串的 JavaScript 代码随处可见。
  • 到了 ES5 ,我们可以在每行末尾加一个反斜杠( \)从而 字符串字面量写到多行上。
    这个反斜杠和它后面的行终结符都不 不属于字符。
  • ES6 的反引号支持跨行字符串,而行终结符 是字符串字面量的一部分
//写在一行但表两行的字符串
'two\nli.nes’ 
//写在三行但只有一行的字符串
one\
long\ 
li.ne" 
//写在两行实际也是两行的字符串:
the newli.ne cha acte at the end of thi.s li.ne 
i.s i.ncluded li.te ally i.n thi.s st i.ng

3 使用字符串

定义:
拼接 符串是 JavaScript 个内置特性 果对数值使用 操作符,那数值会相加。
如果对字符串使用 +操作符,那字符串会拼接起来(第 个在第 个后面) 。

例如:
let    name = ”Hello,” + "wo ld //产生字符串 Hello, WO ld
let greeting= "We lcofTle to fTIY blog , ” +””+ nafTle;
  • 以使用标准的全等 === 和不全等 !== 操作符比较字符串。
  • 字符串 也可以使** <、<=、>、>=**操作符来比较

注意:
要确定 个字符串的长度(即 符串包含的 16 位值的个数), 以使用字符串的 length属性

  • 除了 length 属性之外, JavaScrip 还提供了操作字符串的丰富 API

记住, JavaScript 中的字符串是不可修改的。像replace ()和 toUppe rCase () 这样的方法都返回新字符串,它们并不会修改调用它们的字符串。
字符串 也可以被 成只读数组,使用方括号而非 cha At () 方法访问字符串中个别的字
符( 16 值):

let s =”hello, wo ld";
s.4 模板字面量0]  //=>'h'
s[s. length -1)  //=>"d" 

4. 模板字面量

定义:面量可以用反引号来定界。
let a=hello world;

  • 模板字面量可 以包含任意
    JavaScript 表达式。
    反引号中字符串 字面量最终值的计算, 步及对其中包 的所有表达
    求值、将这些表达式的值转换为字符串,然后再把这些 符串与反引号中的字面
    组合:
let nar1e =”Bi.ll”; 
let greeting = ` Hello${ nar1e }//greeting=="Hello Bill."

5. 模式匹配

定义:
JavaScript 定义了 种被称为正则表达式(或 RegExp )的数据类型,用于描述和匹配文
本中的字符串模式。
于Reg ExP 很强大,用于处理文本,简单介绍下;

  • 对斜杠之间的文本构成正则表达式 面量。这对斜杠中的第 个后面也可以跟 个或
    多个字母,用于修改模式的含义。

/^HTML/; //匹配字符串开头的字母html
/[1-9][0-9]*/ ; //匹配非0数字,后面跟着任意数字;
RegExp 对象定义了 些有用的方法,而字符串也有接收 RegExp 参数的方告。例如:

let text = ”testi.ng: 1, 2, 3'’ ; //示例文本
let patte = /\d+/g ; //匹配一个或多个数字
pattern . test(text)// => true :存在匹配项
text.seach(pattern)// => 第一个匹配项的位置

//写在一行但表示两行的字符串
'two\nli.nes’
//写在三行但只有一行的字符串
one
long\
li.ne"
//写在两行实际也是两行的字符串:
the newli.ne cha acte at the end of thi.s li.ne
i.s i.ncluded li.te ally i.n thi.s st i.ng

3 使用字符串

定义:
拼接 符串是 JavaScript 个内置特性 果对数值使用 操作符,那数值会相加。
如果对字符串使用 +操作符,那字符串会拼接起来(第 个在第 个后面) 。

例如:
let    name = ”Hello,” + "wo ld //产生字符串 Hello, WO ld
let greeting= "We lcofTle to fTIY blog , ” +””+ nafTle;
  • 以使用标准的全等 === 和不全等 !== 操作符比较字符串。
  • 字符串 也可以使** <、<=、>、>=**操作符来比较

注意:
要确定 个字符串的长度(即 符串包含的 16 位值的个数), 以使用字符串的 **len
注意:
要确定 个字符串的长度(即 符串包含的 16 位值的个数), 以使用字符串的 length属性

  • 除了 length 属性之外, JavaScrip 还提供了操作字符串的丰富 API

记住, JavaScript 中的字符串是不可修改的。像replace ()和 toUppe rCase () 这样的方法都返回新字符串,它们并不会修改调用它们的字符串。
字符串 也可以被 成只读数组,使用方括号而非 cha At () 方法访问字符串中个别的字
符( 16 值):

let s =”hello, wo ld";
s.4 模板字面量0]  //=>'h'
s[s. length -1)  //=>"d" 

4. 模板字面量

定义:面量可以用反引号来定界。

let a=hello world;

  • 模板字面量可 以包含任意
    JavaScript 表达式。
    反引号中字符串 字面量最终值的计算, 步及对其中包 的所有表达
    求值、将这些表达式的值转换为字符串,然后再把这些 符串与反引号中的字面
    组合:
let nar1e =”Bi.ll”; 
let greeting = ` Hello${ nar1e }//greeting=="Hello Bill."

5. 模式匹配

定义:
JavaScript 定义了 种被称为正则表达式(或 RegExp )的数据类型,用于描述和匹配文
本中的字符串模式。
于Reg ExP 很强大,用于处理文本,简单介绍下;

  • 对斜杠之间的文本构成正则表达式 面量。这对斜杠中的第 个后面也可以跟 个或
    多个字母,用于修改模式的含义。
/^HTML/;   //匹配字符串开头的字母html
/[1-9][0-9]*/ ;    //匹配非0数字,后面跟着任意数字;

RegExp 对象定义了 些有用的方法,而字符串也有接收 RegExp 参数的方告。例如:

let text = ”testi.ng: 1, 2, 3'’ ; //示例文本
let patte = /\d+/g ; //匹配一个或多个数字
pattern . test(text)// => true :存在匹配项
text.seach(pattern)// => 第一个匹配项的位置
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 224,983评论 6 522
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 96,354评论 3 403
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 172,216评论 0 367
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 61,061评论 1 300
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 70,073评论 6 400
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 53,541评论 1 314
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 41,906评论 3 428
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 40,881评论 0 279
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 47,428评论 1 324
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 39,460评论 3 346
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 41,578评论 1 355
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 37,176评论 5 351
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 42,913评论 3 339
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 33,348评论 0 25
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 34,490评论 1 277
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 50,142评论 3 381
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 46,650评论 2 366

推荐阅读更多精彩内容

  • # JavaScript基础第01天 ## 1 - 编程语言 ### 1.1 编程 -编程: -就是让计算机为解...
    私心呢阅读 240评论 0 0
  • 1.JavaScript简介 JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置...
    蜂子fightting阅读 387评论 0 0
  • 1 - 编程语言 1.1 编程 编程:就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果...
    Scincyc阅读 281评论 0 0
  • JavaScript 前端三层 HTML 结构层 从语义的角度描述页面结构 CSS 样式层 从美观的角度描述页面样...
    GongShengM阅读 195评论 0 0
  • JavaScript 用法 HTML 中的脚本必须位于 与 标签之间。脚本可被放置在 HTML 页面的 ...
    蜂子fightting阅读 847评论 0 0