ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
##前言 js中最常见的数据类型,使用最广泛 ## 对象属性: * length ## 常用的方法: 1. charAt() 制定位置的字符 1. replace() 替换字符 1. toLowerCase()小写 1. concat() 字符连接 1. split() 根据分隔符分割 1. toUpperCase()大写 1. indexOf() 检索字符串 1. substring()获取子字符串 1. search() 检索与匹配值 1. formCharCode() 返回制定位置的字符 1. charCodeAt() 返回字符的指针 ## es6拓展 * codePointAt 针对某些unicode编号大于0xffff的字符,js会认为它是两个字符,不能正确解析,比如部分汉字。对于能够正确解析的与charCodeAt方法相同的。 实践:可以通过这个鉴别一个字符是两个字节还是4个字节组成的。 ~~~ function is32Bit(c){ return c.codePointAt(0)>0xFFFF;//4个字节组成的返回true ,其他返回false } ~~~ * fromCodePoint() 与上面的方法作用相反,根据编码返回汉字。 ~~~ String.fromCodePoint(21513)//吉 var s="吉"; s.codePointAt(0)//21513 ~~~ * 字符的unicode表示法 允许用‘\uxxxx’表示一个字符,其中xxxx代表字符的unicode的编号。 但是这种局限于在\u0000--\uffff之间的字符,超出这个范围的字符必须用两个双字节来表示。 * 正则表达式的u修饰符(部分语法只有在谷歌的v8引擎支持) es6对正则里的追加了这个字符,主要用来区分某些汉子的长度识别错误.比如:。 ~~~ var s=String.fromCodePoint(134071);// console.log(s.length);//2 实际只有一个汉字 var reg=/^.$/; reg.test(s); //测试不通过 为两个字符 var reg2=var reg=/^.$/u; reg2.test(s); //测试通过 为1个字符 ~~~ * contains ,startsWith,endsWith contains() 返回布尔值,之前的方法是indexOf(),通过返回是否是-1来判断是否有该字符。联想如果没有indexOf,也可以用正则的方式来判断,只不过比较麻烦而已。 startsWith() 返回布尔值,表示参数字符串是否在源字符串的头部 endsWith() 返回布尔值,表示参数字符串是否在源字符串的末尾 * repeat() 返回一个新字符串,将原来的字符串重复n遍 "sfcsc".repeat(n); * 正则表达式的y修饰符 表示黏连,也就是第一个和第二个必须连在一起的,如果不满足连在一起,只能返回第一个。 ~~~ var s="aaa-aa-a"; var reg=/a+/g; var reg2=/a+/y; reg.exec(s) reg2.exec(s) ~~~ * 模板字符串 增强版的字符串,用反引号标识,可以当做普通字符串标识,也可以定义多行字符串或者嵌入变量,用途:你在拼接字符串的时候针对变量可以直接用定义好的变量插入即可,避免了字符串的低效率拼接。 ~~~ 单行字符串 `sdvs``dbfdb` 多行字符串 `sfvrs eevg` 嵌入变量 var doc='黎明'; var t=`${doc} is a good doctor`; ~~~