关于赋值 改变字符串 必须重新赋值 简单的通过索引查找并不能改变字符串

 

为什么这里一定要赋值啊 不赋值到arr2 直接运算为什么不行。。 我是不是自己把自己搞魔怔了 还是这本身就不是问题?

用这个直接代替 不用写个arr2 就运行不了很奇怪 , 学了这么长时间我发现其他的 能代替都能通过的啊 赋值能让自己看的清楚点, 有时候确实是需要 但是这里 为什么确实需要。。。 把自己绕煞笔了

 

 

 

 

你这代码
逻辑有点乱啊
弄复杂了
function titleCase(str) {

// 请把你的代码写在这里
var arr = str.split(' ');
arr.forEach(function(item,index){
arr[index] = item[0].toUpperCase() + item.slice(1).toLowerCase();
});
return arr.join(' ');
}
你已经用str.split()把参数拆分成数组了,没必要再把每个单词再拆分成数组,再改首字母的
直接arr[i][0]就可以表示每个单词的首字母了
至于为什么必须赋值,是因为字符串是基本数据类型,不能改的
比如str = “abc”;

Rachel0637 @Rachel0637 12:25
str[0] = “c”;
这时候str不会变成“cbc”
因为字符串不能被改变,只能重新赋值
也就是说,想要达到目的,只能这样写: str = “cbc"
在你的代码里,也就是把内容赋值给arr2
顺便说一下,你的arr2直接跳出来的,没用var,这种写法不太好,虽然也能正常声明变量,但是容易造成内存泄露
最好每次声明新变量都用var

 

 

 

 

之前有一题特别声明了这一点,学字符串的时候。不深刻 这次记住了。    var声明的作用    还有全局声明  都要熟悉。

 

posted @ 2017-12-25 00:02  深海有鱼呀  阅读(362)  评论(0编辑  收藏  举报