数据类型_string_string数据类型概括

string数据类型

  • 数据:使用单引号或双引号引起来的0个或多个字符即为字符串

  • 注意问题:

    • 单引号内不能再包含单引号,但可以包含双引号

    • 双引号内不能再包含双引号,但可以包含单引号

    • 原因:在遇到单/双引号时,默认会向后寻找 另一个单/双引号,若是找到默认此字符串结束;

    • eg:

      let str='1233'1'
      // 此时就会报错,原因是因为str字符串到3就结束了
      
创建字符串的三种方式

[1]直接赋值

let a1 = 'aaa' // 数据类型:stirng

[2]String()方法创建字符串(强制类型转化-将不同的数据类型转化为字符串)

let a2 = String('aaa') // 数据类型:string

[3]new String构造函数创建字符串(基本包装对象)

let a3 = new String('aaa') 
console.log('数据类型:', typeof a3) // 数据类型:object
检查字符串的方法

通过new String() 获取的对象是引用类型,打印可以看到原型上的所有方法;
在这里插入图片描述
当记不住字符串的方法时就可以 在控制台打印 new String() 显示字符串的所有方法

常用的字符串方法
字符串遍历

for...of是es6新增的遍历方法,可以用来遍历字符串

let str = 'abcdefgh'
for(let i in str){
  // i  为索引
  console.log(str[i]) // 单个字符串 a b c d e f g h
}
for(let key of str){
  // key 为单个zi fu
  console.log(key) // 单个字符串 a b c d e f g h
}
切割字符串为数组
  • 语法:字符串.split(分隔符)

  • 举例说明

     let str = 'ababdbgbdba'
     let arr1 = str.split('')
     console.log('arr1',arr1) // ['a', 'b', 'a', 'b', 'd', 'b', 'g', 'b', 'd', 'b', 'a']
     let arr2 = str.split('b')
     console.log('arr2',arr2) //  ["a", "a", "d", "g", "d", "a"]
    
​截取子串
  • 语法:字符串.substr(下标,切割个数)

  • 举例说明:

    let str = 'abcdefghigk'
    let sonStr = str.substr(1, 5)
    console.log(sonStr) //bcdef
    
判断某个字符串是否出现在当前字符串中

判断某个字符串是否出现在当前字符串中方法汇总

文本匹配-match、(es6)matchAll

match方法

文本替换-replace、(es6)replaceAll

replace方法

(es6)获取某个位置的字符串


at()方法是es6新增的查看字符串指定位置字符的方法;

at()方法接受一个整数作为参数,返回参数指定位置的字符,支持负索引(即倒数的位置)。

如果参数位置超出了字符串范围,at()返回undefined。

const str = 'hello';
console.log(str.at(1)) // "e"
console.log(str.at(-1)) // "o"
console.log(str.at(22)) // undefined
有关ASCII码的方法
获取某字符的ASCII编码
  • 语法:str.charCodeAt(index) 其中index为字符的索引
  • 示例
    const str1 = 'abcde';
    const str2 = 'ABCDE'
    console.log(str1.charCodeAt(0)) // 97
    console.log(str2.charCodeAt(0)) // 65
    
比较字符串大小
本质

若是操作数中存在number数据类型,则会触发隐士转化 -> 将其他数据类型转化为 number类型再进行比较。

举例说明

console.log('1111' > 2) // true
  • 由于2为number数据类型,则会将‘1111’转化为number类型1111再进行比较

字符串比较大小 本质上是将字符串转化为ASCII码后再进行大小比较。

在比较时 由第一个字符进行比较,若是

  • 不相等 -> 得出大小 (此时结束,不会再比较下一个字符)
  • 相等 -> 比较下一个字符,以此类推

举例说明

console.log('1111'> '2') // false
  • ‘1111’ 的第一个字符为1 -> 转化为ASCII编码后是49,‘2’的第一个字符为2 -> 转化为ASCII编码后是50
  • 以上代码相当于比较 49 > 50 // false
localeCompare方法

比较字符串大小可以直接比较也可以使用 localeCompare 方法进行比较
语法
localeCompare 方法是 String原型链上的方法

str.localeCompare(compareString, [locales], [options])
  • locales:表示缩写语言代码(BCP 47 language tag)的字符串,或由此类字符串组成的数组 -> 省略默认当地
  • options:一个调整输出格式的对象 -> 省略默认以下
    • 大于比较字符串 -> 返回1(number)
    • 等于比较字符串 -> 返回0(number)
    • 小于比较字符串 -> 返回-1(number)

该方法一般配合字符串排序使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值