美文网首页
Javascript文本

Javascript文本

作者: 败于化纤 | 来源:发表于2022-11-28 18:01 被阅读0次

    文本*:
    定义:表示文本的 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)// => 第一个匹配项的位置
    

    相关文章

      网友评论

          本文标题:Javascript文本

          本文链接:https://www.haomeiwen.com/subject/qtqrfdtx.html