检测字符串
let str = '中国'
typeof str === 'string'
str.constructor === String
Object.prototype.toString.call(str) === "[object String]"
字符串属性
属性 |
描述 |
length |
获取字符串的长度 |
constructor |
对创建该对象的函数的引用 |
prototype |
允许向对象添加属性和方法,且添加的属性或方法在所有实例上共享 |
字符串常用方法
方法 |
描述 |
charAt(index) |
‘返回在指定位置的字符’.charAt(0) //返 |
indexOf(searchValue [, fromIndex]) |
检索字符串,i默认从0检索, 未检索到返回-1 |
split(separator) |
把字符串分割为字符串数组, separator为字符串或正则表达式 |
slice(beginIndex[, endIndex]) |
提取从 start 开始(包括 start)到 end 结束(不包括 end)为止的所有字符;start如果为负数,则从尾部开始算起, 如: -1 指字符串中最后一个字符 |
substring(start,stop) |
提取字符串中两个指定的索引号之间的字符 |
toLowerCase() |
把字符串转换为小写 |
toUpperCase() |
把字符串转换为大写 |
replace(regexp/substr,replacement) |
替换与正则表达式匹配的子串 |
startsWith() |
ES6新增, ‘检测子串是否包含于字符串开头’.startsWith(‘检测’) // true |
endsWith() |
ES6新增, 检测子串是否包含于字符串结尾 |
includes() |
ES6新增, ‘检测字符串中是否包含某个字符’.includes(‘某个字符’) // true includes() 比indexOf() 的优势在于,indexOf() 的返回结果不是布尔值,须与-1对比,不够直观 |
repeat(n) |
ES6新增, ‘重复n次’.repeat(2) // 重复n次重复n次 |
padStart(length,txt) |
ES6新增, 头部补全字符串, length: 限制字符串的长度, txt: 补的内容, 2020-12.padStart(8, ‘*’) // *2020-12 |
padEnd(length,txt) |
ES6新增, 尾部补全字符串 |
更多… |
|
模板字符串(ES6新增)
let age = 18
let str = `My age is ${age}`
function price (strings, type) {
console.log(strings, type)
let s1 = strings[0]
let showTxt
if (type === 'retail') {
showTxt = '购买的批发价是20'
} else {
showTxt = '购买的零售价是25'
}
return `${s1}${showTxt}`
}
let showTxt = price`您此次${'retail'}`
console.log(showTxt)