es6数组和字符串方法,es6中拼接字符串有几种写法
本文介绍了ES6 string中的新方法,了解这些方法对你很有帮助。
1. String.fromCodePoint()
首先我们来提一下String.fromCharCode()。这两种方法都用于将unicode代码转换为相应的单词。但是String.fromCodePoint()是对String.fromCharCode()的改进。
方法js版本差异formCharCodees5无法识别大于0xFFFF的码位,会发生溢出。相反,fromCodePoint formCodePointes6传入多个参数时,会合成一个字符串返回,而fromCharCode不会。
2. String.raw()
两种用法:
一个是模板字符串,不应该使用(),另一个是(callSite,替换)。两个参数:callSite是模板字符串的调用对象,应该是具有raw属性的对象{RAW: [foo , bar , baz]}2.1 String.raw ``
在转义字符前添加斜杠。
String.raw`Hi \ n $ { 2 3 } ` \ \ Hi \ \ 5
string . raw ` hi \ u00a!`\\ 嗨\\u000A!如果原字符串的斜杠已经转义,即(\n)
string . raw ` hi \ \ n `;\\ 你好\\\\n
string . raw ` Hi \ \ n `== Hi \ \ \ \ n ;\\ true2.2 String.raw(callSite, ...substitutions)
通常,这种方法很少使用,但是为了模拟t${0}e${1}s${2}t
String.raw({raw:test},3,4,5) //t3e4s5t
String.raw({raw:[aa , bb , cc],1 2,3 })// aa 3 bb 3c
//下面这个函数等于` aa $ { 2 3 } bb $ { Java Script } cc `。
String.raw({raw:[aa , bb , cc]},2 3, Java Script )//aa 5 bbjavascript cc2.3 String.raw()的代码实现
String.raw=function(字符串,值){
let output=“”;
let索引;
for(索引=0;索引值。长度;索引){
output=strings . raw[index]values[index];
}
output=strings . raw[索引]
返回输出;
}
3. 实例方法:codePointAt()
3.1 实例方法、静态方法、原型方法
首先,我想说一下范例方法是什么。可能是我还是个菜鸡,所以第一次听到例法的时候不知道是什么。
js方法有三种类型:实例方法、静态方法和原型方法。
方法实例方法由function对象中的prototype属性定义。在使用对象之前,请先将其实例化。
函数A (){}
a . prototype . say hello=function(){
console.log(Hello )
}
var A=new A();
a . say hello();//Hello静态方法只能由.方法调用
函数A(){}
A.sayHello=function(){
console.log(Hello )
}
a . say hello();//Hello Prototype可以访问方法原型中的方法实例和构造函数。
函数A(){}
a . prototype . say hello=function(){
Console.log(“原型方法”)
}
A.sayHello=function(){
Console.log(“静态方法”)
}
A.sayHello() //静态方法
A.prototype.sayHello() //原型方法
设a=新A();
a . say hello();//这个“prototype method”函数是一个对象,function对象中的property prototype可以认为是一个指针,指向一个方法(这样就不用每次用构造函数创建新的实例都重新创建方法了)。所以很好理解。var a是A的引用,也就是指针,A可以指向sayHello方法。如果直接使用A.sayHello()会报错,因为A不是指针,a.sayHello()也会报错,因为A不是方法对象。
进入正题
CodePointAt()的出现解决了Unicode码位大于0xFFFF的字符无法读取整个字符的问题。
3.2 JavaScript字符存储格式
将十进制代码点转换为十六进制
s.codePointAt(0)。toString(16) //20bb73.3 用途
codePointAt()方法是测试一个字符是由两个字节还是四个字节组成的最简单的方法。
字体许多欧洲语言都有语调符号和重音符号。
Unicode提供了两种方法:
\ u01d 1 === \ u004F \ u030C //false
\u01D1 。长度//1
\u004F\u030C 。length //2上面的代码javaScript无法识别它们是相同的。
4.1 不接收参数
但是,normalize()方法将规范化Unicode。
\u01D1 。normalize()===\u004F\u030C 。normalize() //true4.2 接收参数
\u004F\u030C 。正常化(“NFC”)。长度//1
\ u004f \ u030c 。正常化( NFD )。length//2以上代码表明NFC参数返回字符的合成形式,nfd参数返回字符的分解形式。
但是,normalize方法目前不能识别三个或更多字符的组合。在这种情况下,我们只能用正则表达式通过Unicode编号区间来判断。
4. 实例方法:normalize()
函数:用于判断一个字符串是否包含在另一个字符串中。
有JavaScript indexOf方法let a= abcd
a . index of( b );//1
a . index of( e );//-1includes()返回布尔值是否包含某个字符a . includes( b );//真
a .包括( f );//falsestartsWith()。返回一个布尔值,该值指示参数字符串是否位于原始字符串的开头let a= abc
a . starts with( a );//真
a . starts with( b );//falseendsWith():返回一个布尔值,该值指示参数字符串是否在原始字符串a.endsWith(c )的末尾;//真
ends with( a );//falsestartsWith()、endsWith()、includes()都有第二个参数,表示搜索的起始位置。
让我们=“你好,世界!”;
s.startsWith(world ,6) //true
s.endsWith(Hello ,5) //true
S.includes (hello ,6)//false:
5. 实例方法:includes(), startsWith(), endsWith()
函数:返回新字符串,表示原字符串重复多次。
正常的x。重复(3);//xxx
你好。重复(2);//你好你好 0 x 。Repeat (0)/“”小数将向下舍入为“x”。重复(2.5)。//xx 负数或无穷大误差 x 。重复(-1) //RangeError
x 。repeat(infinity)//范围误差是介于0和-1之间的负数。四舍五入为0 x 。重复(-0.3)/nan等于0x 。repeat(NaN) // 字符串首先转换为数字“x”。重复( 2)//xx:
6. 实例方法:repeat()
010-5900
用于完成字符串,padStart()用于完成头。PadEnd()用于结尾补全。
两个参数:
第一个:有效的字符串结束的最大长度,第二个:用于结束的字符串7.1 作用。
完成“xxx”。padStart(5, abc )正常;//abxxx
xxx 。padEnd(5, ABC );//xxxab 原字符串长度或=最大长度(即第一个参数),它不会生效,原字符串 xxx 。padStart(2, ab) //xxx
Xxx 。padEnd(2, ab) //xxx 用于完井的字符串长度。完整的字符串将被截断为“ABC”。Padstart (10, 0123456789 )// 0123456 ABC 7.2 传两个参数
省略第二个参数,默认情况下使用空格来完成它。
x 。padStart(4) // x
x 。padEnd(4) //x 7.3 省略第二个参数
按指定的位数“1”完成数值。padstart (10, 0)//00000001
123456.padstart (10, 0)//000123456 提示字符串格式 12 。padstart (10, yyyy-mm-dd)//yyyy-mm-12
09-12.padstart (10, yyyy-mm-DD )// yyyy-09-12
7. 实例方法:padStart(),padEnd()
Trimstart()删除字符串开头的空格trimEnd()和字符串结尾的空格const s= abc
s.trim() //abc
s.trimStart() //abc
S.trimEnd() // abc 浏览器还部署了另外两种方法。trimLeft()是trimStart()的别名,trimRight()是trimEnd()的别名。这两种用法与trimStart()和trimEnd()相同。
8. 实例方法:trimStart(),trimEnd()
7.4 用途
只能替换第一个匹配的。
Aabbcc。replace (b , _)//aa _ bcc要替换所有B,需要使用/g修饰符
aabbcc。替换(/b/g, _) //aa__cc9.1 replace()
第一个参数传递字符串“aabbcc”。replaceAll (b , _)/aa _ _ cc 。第一个参数传递正则表达式。如果没有/g修饰符replaceall,将会报告错误//不会报告错误。
aabbcc。替换(/b/, _ )
//报告错误
“aabbcc”的第二个参数。replaceAll(/b/, _ )是一个字符串,表示被替换的文本,其中可以使用一些特殊的字符串。//$表示匹配的字符串,即` b 本身
//因此返回的结果与原始字符串一致
abbc 。replaceAll(b , $ )
//abbc
//$ `表示匹配结果之前的字符串。
//对于第一个 b ,$ 指的是 a。
//对于第二个 b ,$ 是指 ab。
abbc 。replaceAll(b , $ ` )
//aaabc
//$ 表示匹配结果之后的字符串。
//对于第一个“b ”,$”指的是“bc”。
//对于第二个“b ”,$”指的是“c”。
abbc 。replaceAll(b ,` $ `)
//abccc
//$1表示正则表达式的第一个组匹配,它指的是“ab”。
//$2表示正则表达式的第二组匹配,它指的是“BC”。
abbc 。replaceAll(/(ab)(bc)/g, $2$1 )
//bcab
//$ $指的是$
abc。replaceAll(b , $$ )
//a$c 除了字符串之外,第二个参数可以是函数 aabbcc。替换所有( b ,()= _)//aa _ _ cc 更多编程知识请访问:编程视频!以上是ES6中新的string方法的细节,更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。