字符串String的slice、replace、toUpperCase和repeat等方法会不会改变原有字符串

------JavaScript中对于String对象有很多原生的属性和方法,非常的方便和实用,例如:length属性获取字符串的总长度;IndexOf()查找指定字符,返回位置索引等。
------我们还有一些方法是会改变我们的字符串模样,返回一个新的字符串,那么他们的一系列操作是否会改变原有字符串的样式呢?
------让我们一起来看看吧!

  1. 首先,测试一下字符串的截取方法slice、substr和substring
var str = "这里是一个字符串";
var newStr = str.slice(5),
    newStr2 = str.substring(3,1),
    newStr3 = str.substr(1,3);

console.log("原字符串---",str);
console.log("slice截取的字符串---",newStr);
console.log("substring截取的字符串---",newStr2);
console.log("substr截取的字符串---",newStr3);

输出结果
原字符串— 这里是一个字符串
slice截取的字符串— 字符串
substring截取的字符串— 里是
substr截取的字符串— 里是一

由此可以看出,字符串的截取方法并不会修改原有字符串,而只是返回了一个新字符串。

  1. 然后,再看一下replace方法
var str = "这里是一个字符串";
var newStr = str.replace("字符串","replace");

console.log("原字符串---",str);
console.log("replace修改后的字符串---",newStr);

输出结果
原字符串— 这里是一个字符串
replace修改后的字符串— 这里是一个replace

由此可以看出,字符串的replace方法并不会修改原有字符串,而只是返回了一个修改后的新字符串。

  1. 前面的两种方法,都不会对原有字符串造成影响,那么toUpperCase和toLowerCase呢
var demo = "Hello,world";
var NEW = demo.toUpperCase();
var new = demo.toLowerCase();

console.log(NEW); // 输出:HELLO,WORLD
console.log(new); // 输出:hello,world
console.log(demo);// 输出:Hello,world

可以看到,使用toUpperCase()方法后," hello,world "变为 " HELLO,WORLD "。假设如果会改变原字符串的话,此时demo应该全都变为大写,但是依然是原来最初定义的字符串,这足可以说明不会影响到原字符串。同理可得,toLowerCase()也不会改变原有字符串。

  1. 最后再来看一下ES6中新增的一些方法repeat,padStart和padEnd
        var str = "s";
        var newStr = str.repeat(10);

        console.log("原字符串---",str);
        console.log("repeat修改后的字符串---",newStr);

输出结果,并未改变原字符串
原字符串— s
repeat修改后的字符串— ssssssssss

var str = "s";
var newStr = str.padStart(3,"pa");

console.log("原字符串---",str);
console.log("padStart修改后的字符串---",newStr);

输出结果
原字符串— s
padStart修改后的字符串— pas

总结

由上面的小案例我们可以看出,字符串String的内置方法

  1. slice()、substr()和substring()
  2. replace()
  3. toUpperCase()和toLowerCase()
  4. ES6中新增的一些方法repeat(),padStart()和padEnd()

都不会修改原有字符串

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值