【js记忆-费曼准备】String篇
语法:
' string text ' , " string text "
还可以使用String函数将其他值生成或转换成字符串:
String(thing)
new String(thing)
模板字面量
ECMAScript 2015开始(更多再阮一峰ES6),字符串字面量也可以称为模板字面量:
`hello world` `hello! world!` `hello ${who}` escape `<a>${who}</a>`
转义字符串
Code | Output |
---|---|
\0 |
空字符 |
\' |
单引号 |
\" |
双引号 |
\\ |
反斜杠 |
\n |
换行 |
\r |
回车 |
\v |
垂直制表符 |
\t |
水平制表符 |
\b |
退格 |
\f |
换页 |
\uXXXX |
unicode 码 |
\u{X} ... \u{XXXXXX} |
unicode codepoint |
\xXX |
Latin-1 字符(x小写) |
从字符串中获取单个字符
获取字符串的某个字符有两种方法。第一种是使用charAt方法:
return 'cat'.charAt(1); // returns "a"
另一种 (在ECMAScript 5中有所介绍) 是把字符串当作一个类似数组的对象,其中的每个字符对应一个数值索引:
return 'cat'[1]; //returns "a"
使用括号访问字符串不可以对其进行删除或添加,因为字符串对应未知的属性并不是可读或配置的。 (更多的信息请参阅 Object.defineProperty
。 )
基本字符串和字符串对象的区别
字符串字面量(通过单引号或双引号定义)和 直接调用String方法(没用通过new生成字符串对象实例)的字符串都是基本字符串。
属性
String.prototype
可以为String对象增加新的属性。
方法
String.fromCharCode()
通过一串Unicode创建字符串。
String.fromCodePoint()
通过一串码点创建字符串。
String.raw()
通过模板字符串创建字符串。
String
实例
属性
String.prototype.constructor
用于创造对象的原型对象的特定函数。
String.prototype.length
返回了字符串的长度。
N
用于访问第N个位子的字符,其中N是小于length和0之间的正整数。这些属性都只是“只读”性质,不能编辑。
跟HTML无关的方法
String.prototype.charAt() 返回特定位置的字符。(character:字符, index:指数)
语法:str.charAt(index)
String.prototype.charCodeAt() 返回表示给定索引的字符的Unicode的值。(unit:单元)
语法:str.charCodeAt(index) 返回值是一表示给定索引处(String中index索引处)字符的 UTF-16 代码单元值的数字;如果索引超出范围,则返回 NaN
。
String.prototype.codePointAt() 方法返回 一个 Unicode 编码点值的非负整数。(Point:点)
返回值是在字符串中的给定索引的编码单元体现的数字,如果在索引处没找到元素则返回 undefined
。
* String.prototype.normalize() 返回调用字符串值的Unicode标准化形式。
String.prototype.concat() 方法将一个或多个字符串与原字符串连接合并,形成一个新的字符串并返回。
语法:str.concat(string2, string3[,..., stringN]) concat方法并不影响原字符串。性能上强烈使用赋值操作符(+,+=)代替concat方法。
String.prototype.includes() 判断一个字符串是否包含在另一个字符串中,返回布尔值。(includes:包括)
语法:str.includes(searchString[,position]) (search:搜索)
String.prototype.startsWith() 判断一个字符串是否以给定字符串开头,返回布尔值。
语法:str.startsWith(searchString[, position])
String.prototype.endsWith() 判断一个字符串是否以给定字符串结尾,返回布尔值。
String.prototype.indexOf() 从字符串对象中返回首个被发现的给定值的索引值,如果没有找到则返回-1。(index:指数)
String.prototype.lastIndexOf() 从字符串对象中返回最后一个被发现的给定值的索引值,从后向前搜索。
String.prototype.substr() 方法返回一个字符串中从指定位置开始到指定字符数的字符。
String.prototype.substring() 方法返回一个字符串在开始索引之间的一个子集,或从开始索引直到字符串的末尾的一个子集。返回的是新的字符串。
语法:str.substring(indexStart[, indexEnd])
String.prototype.slice() 提取某个字符串的一部分,并返回一个新的字符串。(slice: 切)
语法: str.slice(beiginIndex[, endIndex])
* String.prototype.localeCompare() (locale:本地的,Compare:相比)方法返回一个数字来指示一个参考字符串是否在排序顺序前面或之后或与给定字符串相同。
String.prototype.match() 使用正则表达式与字符串相比较。更多的需要结合RegExp使用
String.prototype.replace() 被用来在正则表达式和字符串直接比较,然后用新的子串来替换被匹配的子串。
String.prototype.search() 对正则表达式和指定字符串进行匹配搜索,返回第一个出现的匹配项的下标。(search:搜索)
String.prototype.padEnd() 在当前字符串尾部填充指定字符串,直到达到指定的长度。返回一个新的字符串。
String.prototype.padStart() 在当前字符串头部填充指定字符串,直到达到指定长度。返回一个新的字符串。
String.prototype.repeat() 构造并返回一个新的字符串,该字符串包含被链接在一起的指定数量的字符串的副本。 语法:str.repeat(count)
String.prototype.split() 使用指定的分割符将一个String对象分割成子字符串数组,以一个指定的分割字串来决定每个拆分的位置。 (split: 分裂)
语法:str.split([separator[, linit]])
String.prototype.toLocaleLowerCase() 根据任何指定区域语言环境设置的大小写映射,返回调用字符串被转换为小写的格式。对于大多数语言来说,toLowerCase
的返回值是一致的。 (LowerCase: 小写)
String.prototype.toLocaleUpperCase() 根据任何指定区域语言环境设置的大小写映射,返回调用字符串被转换为大写的格式。对于大多数语言来说,toLowerCase
的返回值是一致的。 (UpperCase: 大写)
String.prototype.toString() 返回字符串表示的特定对象。
String.prototype.valueOf() 返回特定对象的原始值。重写 Object.prototype.valueOf
方法。
String.prototype.trim() 从字符串的开始和结尾去掉空格。
String.prototype.trimStart() / String.prototype.trimLeft() 从字符串左侧去除空格。
String.prototype.trimEnd() / String.prototype.trimRight() 从字符串右侧去除空格。
String.prototype[@@iterator]() 返回一个新的Iterator对象,它遍历字符串的代码点,返回每一个代码点的字符串。
语法:string[Symbol.iterator]() (iterator: 迭代器)
参考:MDN、JS高程3、阮一峰ES6入门