JS11-字符串的基本操作方法(toString、indexOf、lastIndexOf,字符全大全小写、charAt、charCodeAt、substring)

toString、indexOf、lastIndexOf,字符全大或全小写、charAt、charCodeAt、substring、substr、字符串.replace()和字符串.split()的区别

1, 变量.toString()

将数据类型强制转化为字符串
参数是转化的进制

    var int = 100;
    console.log( int.toString(8) );144

数组的扁平化


将多维数组,转化为一维数组
    var arr = [1,2,3,4,5,[6,7,8,9,10,[11,12,13,[14,15,16]]]];
    console.log(arr);

获取数组中数值的内容,以逗号间隔
    var str = arr.toString();  /* →  也可以用join */
    console.log(str);123....16

再将字符串转成数组
    var newArr = str.split(',');
    console.log(newArr);["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16"]


转化之后的所有数据类型,都是字符串
而且还不能转换话存储对象,函数的数组
要完美转化,我们之后有其他方法学习,先记住这种粗糙的方式

2, 变量.indexOf()

字符首次(从左往右第一次)出现的位置
查找数组或者字符串中是否有某个数值或者某个字母
如果有这个内容,返回值是 这个内容的 索引下标
如果没有这个数据,返回值是 -1 
这里执行的是 === 全等比较

    var arr = ['北京','上海','广州',1,2,3,4,5];

    console.log( arr.indexOf('广州') );2
    console.log( arr.indexOf(5) );7

    console.log( arr.indexOf(500) );-1

    console.log( arr.indexOf('5') );-1

3, lastIndexOf()

字符最后一次(从左往右最后一次)出现的位置
数组,字符串都可以使用
有符合条件的数据,执行结果是最后一次出现位置的索引下标
没有符合条件的数据,执行结果是-1
进行的也是 === 全等比较
        
    var arr1 = [1,2,3,4,5,1,2,3,4,5,1,2,3,4,5];
        
    console.log(arr1);

    console.log( arr1.indexOf(5) );4
    console.log( arr1.lastIndexOf(5) );14
    console.log( arr1.lastIndexOf('5') );-1

4.所有字符大写,所有字符小写

不会改变字符串存储的原始内容,如果需要改变,要做赋值操作
字符串`.toUpperCase()`   字符串中所有字符大写
字符串`.toLowerCase()`   字符串中所有字符小写

做字符串判断时,有时需要先统一大小写


    var str1 = 'hello word';
将函数值操作的返回值,赋值给变量
    str1 = str1.toUpperCase();
    console.log(str1);   →   hello word

    var str2 = 'HELLO WORD';
    str2 = str2.toLowerCase();
    console.log(str2);   →   hello word

5.字符串.charAt()

获取指定位置的字符
[]语法也可以达到效果

    var str3 = 'abcdefg';

    console.log( str3.charAt(0) );   →  a

6.字符串.charCodeAt()

获取指定位置的字符的编码数值
返回字符在ASCII码表中的数值
范围是 0-255 一共 256 个字符

console.log( str3.charCodeAt(0) );97

7.字符串.substring()

**字符串截取**:从原始字符串(母串),截取一部分字符串(子串)
   **参数1**: 截取起始字符的索引下标
   **参数2**: 截取结束字符的索引下标
**定义1个参数**: 从指定的索引位置开始,截取至字符串的结尾 
**定义2个参数**: 从指定的索引位置开始,截取至指定的结束位置索引
            包含起始索引,不包含结束索引
            两个参数相同,结果是空字符串
            如果是第1个数值小,2个数值大,是向字符串结尾截取
            如果是第1个数值大,2个数值小,是向字符串起始截取
**第一个参数是负数**,不管多大数值都相当于从字符串的起始位置开始截取 到指定位置,不包括指定位置
**第二个参数是负数**,相当于从指定的位置开始,向前截取,截取到字符串的起始字符串
                不包括起始字符
        
一般使用就是定义两个正数的参数

    var str4 = 'abcdefghijklmn';


只有一个参数
从索引下标是4,实际是第5个字符开始截取,到字符串的结尾
    console.log( str4.substring(4) );   →  efghijklmn



从索引是4,实际是第五个字符开始截取
截取至索引是5,实际是第六个字符结束
包裹索引是4的字符,不包括索引是5的字符
    console.log( str4.substring(4 , 5) );   →  e

从索引是4的位置开始,向索引是0的位置截取
此时,不会包括4索引的字符,会包括0索引的字符
    console.log( str4.substring(4 , 0) );   →  abcd



两个参数相同,结果是空字符串
    console.log( str4.substring(3,3) );   →  啥也没显示-单空一行(空字符串)



两个参数都是负 结果是空字符串
     console.log( str4.substring(-3,-2) );   →  啥也没显示-单空一行(空字符串)



第一个参数是负数,效果是从字符串起始位置开始截取
    console.log( str4.substring(-4) );   →   abcdefghijklmn
    console.log( str4.substring(-2,2) );   → ab

        


第二个参数是负数,效果是从指定位置开始,向字符串的起始位置截取
截取至字符串的第一个字符
不包含指定位置的字符串
指定索引是3,向字符串起始位置截取
结果是 索引是2的字符(即不包括指定位置),至起始第一个字符
    console.log( str4.substring(3 , -6) );  → abc
    console.log( str4.substring(2,-4) );   →  ab
    console.log( str4.substring(3,-1) );   →  abc

8.substr()

**从母串中截取子串**
**参数1**: 指定截取的起始位置
**参数2**: 指定截取的字符个数
**语法1**:只定义一个参数.从指定位置开始,截取至字符串结尾
**语法2**:定义两个参数.从指定位置开始,截取指定个数的字符
**语法3**:第一个参数是负数,指定起始位置是倒数第几个字符

   var str5 = 'abcdefghijklmn';

从索引是3,也就是第四个字符开始,截取至字符串结尾
    console.log( str5.substr( 3 ) );  →  defghijklmn

从索引是3,也就是第四个字符开始,截取3个字符
    console.log( str5.substr( 3 , 3 ) );  →  def


从倒数第三个字符开始截取,截取至字符串结尾
    console.log( str5.substr( -3 ) );   → lmn

从倒数第三个字符开始截取,截取两个字符
    console.log( str5.substr( -3 , 2 ) );  →  lm

第二个参数是负数,结果是空字符串
    console.log( str5.substr( 3 , -2 ) );   →  啥也没有显示-单空一行(空字符串)

9.字符串.replace()和字符串.split()的区别

**字符串`.split()`**
将字符串按照指定的字符,切割成数组
可以用来删除字符串中的关键词

**字符串`.replace()`**
字符串内容替换函数
将制定的字符串内容,替换为新的内容
**第一个参数**:字符串原有的,要替换没的
**第二个参数**:字符串没有的,要新替换进来的
默认只能执行一次替换,要替换所有符合的内容,必须要配合正则表达式


    var str6 = '北京卧槽今天卧槽的天气卧槽有点热';

将关键词替换为 ** 只能替换第一个符合的内容
    str6 = str6.replace('卧槽' , '**');
    console.log(str6);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值