我想把整个单词改成大写字母。我的方法有什么问题,因为单个字母 toUpperCase 工作正常
var name = "gates";
for (var i=0; i< name.length; i++){
name[i] = name[i].toUpperCase();
}
name;
所以事情是&#34;你好世界&#34; .toUpperCase()正如预期的那样正常工作。为什么数组中循环的单个字符无法按预期工作! 这是数组/字符串中的某些属性,特别是在JS 中吗?
正如RGraham所说,字母不能修改,我不理解社区的负面反馈。即使这个问题似乎也是有效的。
答案 0 :(得分:4)
这不起作用的原因是使用数组语法访问字符串是只读。根据{{3}}:
对于使用括号表示法的字符访问,尝试删除或 为这些属性分配值将不会成功。属性 涉及既不可写也不可配置。 (看到 MDN docs了解更多信息。)
因此,console.log(name[0])
可行,但name[0] = "G";
不会更新name
变量。
答案 1 :(得分:2)
你不需要遍历这些字母,只需这样做:
var name = "gates";
name = name.toUpperCase();
答案 2 :(得分:2)
字符串在大多数语言中是不可变的,这意味着,您无法更改单个字符或添加内容,而无需使用新字符。
${all[*]: -1}
会给你你需要的东西,但是一个新的全大写字符串放在变量'name'中。
答案 3 :(得分:1)
符合http://www.w3schools.com/jsref/jsref_touppercase.asp
var str = "Hello World!";
var res = str.toUpperCase();
答案 4 :(得分:1)
http://www.w3schools.com/jsref/jsref_touppercase.asp
var str = "Hello World!";
var res = str.toUpperCase();
结果:
HELLO WORLD!