当前位置: 首页 > 科技观察

您应该了解的11条JavaScript字符串基础知识

时间:2023-03-16 13:36:04 科技观察

今天的文章介绍了关于JavaScript中字符串的11条最重要的知识。1.使用单引号和双引号创建字符串字符串可以用单引号和双引号来定义。"text"'text'它们都创建几乎相同的字符串。"text"===像'text'这样的字符串必须放在一行中,我们不能以这种方式定义跨越多行的字符串。当用双引号定义字符串时,我们需要转义其中的其他双引号。\(反斜杠)用于转义字符。"textwith\"doublequotes\"inside"双引号在定义带单引号的字符串时不需要转义。'text在定义带双引号的字符串时,里面有“双引号”也是一样的,这意味着我们不需要对里面的单引号进行转义。"textwithsingle'quotes'"包含相同文本的两个字符串相等。"Text"==="Text"\(反斜杠)也用于在字符串中包含\字符或换行符。"第一行\n第二行"2.字符串是不可变的确实,一旦一个声明的字符串不能改变,所有的字符串方法都不能改变源字符串,它们总是创建一个新的文本。考虑下一个示例,replace方法不会更改当前字符串但会创建一个新字符串。replace方法在字符串中搜索指定的子字符串并返回替换给定子字符串的新字符串。当以字符串作为第一个参数调用时,它只会替换第一次出现的地方。conststr="abc";constnewStr=str.replace("a","A");console.log(str);console.log(newStr)字符串中的字符可以像数组中那样用括号,这可能给人的印象是我们可以更改该索引处的字符。这是不能更改字符串中的字符的错误假设。consttext='ABC';text[0]='X';//TypeError:Cannotassigntoreadonlyproperty'0'ofstring'ABC'4.字符串看起来有方法JavaScript允许我们调用方法,给出他们是某种物体的错觉。字符串不是对象。当我们在字符串上调用方法时,JavaScript使用内置的String构造函数创建一个包装器对象,并在新创建的对象上调用该方法。例如,在一个字符串上调用trim方法在幕后看起来像这样。newString("文本").trim();trim方法删除字符串开头和结尾之后的空格。删除所有空白字符,包括空格、制表符和换行符。consttext="\t\ntext\n\t";constnewText=text.trim();所有字符串方法都在String.prototype对象上定义。5.内置的String函数可以将任何值转换成字符串其实我们可以使用String内置函数将任何类型的值转换成字符串。它是将基本类型转换为字符串的最佳选择。检查下一个示例:String(0)String(true)String(null)String(undefined)String([1,2,3])String({msg:'Hi'})String(Symbol('id'))如您所见,所有约定看起来都很好,除了对象转换为原始通用字符串“[objectObject]”。甚至数组也被转换为一个漂亮的字符串,所有值都用逗号分隔。6.+运算符同时执行加法和连接操作当其中一个操作数是字符串时,加号运算符(+)成为连接操作符。检查下一个示例。使用"A"+""+"text"1+"2"concat方法可以实现类似的行为,它将所有字符串参数连接到当前字符串并返回一个新字符串。"A".concat("B")"A".concat("","text")"1".concat(2)7.字符串可以与数组相互转换。split方法将文本拆分为子字符串数组。下面是一个例子。constquote='冬天来了';constwords=quote.split('');//["Winter","is","coming"]这是另一个使用逗号作为分隔符分割文本的例子。constcsv='火与血';constarr=csv.split(',');//["Fire","and","Blood"]joinarray方法使用指定的字符串分隔符String将数组中的所有元素连接起来创建一个新的字符串。如果未提供定界符,则默认使用逗号。下面是一个例子。constarr=['火','和','血'];consttext=arr.join('');8.该方法允许检测字符串是否包含子字符串indexOf方法返回指定文本在字符串中出现一次的索引。找不到文本时返回-1。constquote="我们站在这里";constfirstIndex=quote.indexOf("");console.log(firstIndex)lastIndexOf方法返回指定文本在字符串中最后一次出现的索引,当没有找到该文本时,返回-1.constquote="Herewestand";constlastIndex=quote.lastIndexOf("");console.log(lastIndex)startsWith方法检查字符串是否以给定的子字符串开头并返回布尔值(true/false)。startsWith方法区分大小写。constquote="先战";console.log(quote.startsWith("First"));endsWith方法检查字符串是否以给定的子字符串结尾,并根据需要返回true或false。constquote="我们记得";console.log(quote.endsWith("我们"));include方法检查字符串是否包含给定的子字符串,并根据需要返回true或false。constquote="OurBladesareSharp";console.log(quote.includes("are"));9.3种方法允许提取字符串的一部分有3种方法,可能太多了,用于提取字符串的一部分。substr(start,length)方法提取字符串的一部分,从指定索引开始并返回指定数量的字符。第一个字符在索引0处。constquote="Winteriscoming";constpart1=quote.substr(0,6);constpart2=quote.substr(10,6);起始索引是必需的,但长度是可选的。如果省略,它会提取字符串的其余部分。constquote="冬天来了";const部分=quote.substr(6);substring(start,end)方法返回开始和结束索引之间的字符串部分。它以开始索引处的字符开始和结束,但不包括结束索引处的字符。constquote="我们站在一起";常量部分=quote.substring(3,8);如果省略结束索引,则将其提取到字符串的末尾。constquote="我们站在一起";常量部分=quote.substring(3);这与indexOf方法结合使用效果很好。考虑以下代码以提取第一个逗号后的文本。constquote="你什么都不知道,琼恩雪诺";constcommaIndex=quote.indexOf(",");constpart=quote.substring(commaIndex+1);slice和substring的接口是一样的,基本模仿了数组的Added接口。10.模板字符串允许嵌入表达式模板字符串文字可以创建跨越多行的字符串并允许插值。模板字符串是使用反引号(`)字符定义的。`WisdomandStrength`有效表达式可以放在模板字符串文字中,表达式被计算并转换为字符串。constword="Awake";`${word}!${word}!`11.使用UnicodeUTF-16来表示一个字符串,使用一个或多个UTF-16代码单元来存储一个字符。length属性据说是返回字符串中的字符个数,但实际上返回的是UTF-16单位的个数,只有每个字符适合16位才返回字符个数,否则返回一个大数.constword='嗨';console.log(word.length)考虑下一个示例,该示例显示需要存储2x16位的表情符号字符。constword='嗨