JavaScript基础: 字符串

检测字符串

let str = '中国'
// typeof
typeof str === 'string' // true
// constructor
str.constructor === String // true
// 原型
Object.prototype.toString.call(str) === "[object String]" // true

字符串属性

属性 描述
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}` 

// 复杂场景
// strings: 字符串模板中的常量 type:变量
function price (strings, type) {
  console.log(strings, type) //["您此次", "", raw: Array(2)]  "retail" 
  let s1 = strings[0]
  let showTxt
  if (type === 'retail') {
    showTxt = '购买的批发价是20'
  } else {
    showTxt = '购买的零售价是25'
  }
  return `${s1}${showTxt}`
}
let showTxt = price`您此次${'retail'}`
console.log(showTxt) // 您此次购买的批发价是20
发布了6 篇原创文章 · 获赞 6 · 访问量 194

猜你喜欢

转载自blog.csdn.net/qq_35387720/article/details/105209305