5

我不知道我做错了什么;但不知何故.toUpperCase(),字符串函数在我的浏览器上不起作用,或者我有什么问题吗?

var string ="kjsdgfiIJHBVSFIU";
string.toUpperCase();
console.log(string);

现场演示

4

9 回答 9

25

.toUpperCase返回大写字符串。它不是就地修改器方法。

string = string.toUpperCase();

文档:https ://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/toUpperCase

于 2013-03-10T19:36:20.960 回答
7

字符串是不可变的。一旦创建,字符串对象就不能被修改。

所以这里toUpperCase返回一个新字符串,这应该工作-

var string ="kjsdgfiIJHBVSFIU";
var newString = string.toUpperCase();
alert(newString);
于 2013-03-10T19:40:33.647 回答
1

toUpperCase返回新字符串,因此您必须编写:

string = string.toUpperCase();

在许多语言中,字符串是不可变的,这意味着它们一旦创建就无法修改。虽然这会降低效率,但它对于面向对象的编程很重要,因为如果通过引用传递给函数的字符串是可修改的,则可以在未经对象同意的情况下更改对象的状态。

于 2013-03-10T19:40:07.250 回答
1
var upperCase = string.toUpperCase();
console.log(upperCase);

toUpperCase 不转换现有字符串,它只返回一个大写字符串。

于 2013-03-10T19:38:08.017 回答
1

我不知道该字符串是不可更改的,除非您用新名称重新分配它

console.log(i, 'is a ' + typeof i);
var N = i.toUpperCase();
console.log(N);
于 2020-06-08T09:24:47.780 回答
1

以前关于字符串不可变的答案很棒!这只是导致此错误的另一个潜在的运行时原因,起初可能很难发现。它不会减损上述任何有效答案:

如果调用该.toUpperCase()方法的对象不是字符串,则运行时不会“找到”该方法toUpperCase(),因为该方法/函数仅存在于字符串对象上。

例如console.log(variableName.toUpperCase());

如果 variableName 是 String 类型,它可以正常工作。如果它是另一种类型(没有toUpperCase()方法,它会说 'toUpperCase() 不是函数(因为它不是)。

如果你知道它应该是一个字符串,你可以像这样转换它:

console.log(String(variableName).toUppercase());

希望能帮助到你。

于 2019-05-24T09:42:44.987 回答
1
  • 您错过了将更新的数据保存在string密钥中
  • string使用can beupperCaseStringnewString or之类的名称不是一个好的约定updatedString。这可能是出于测试目的,但请尽量遵循良好的惯例:) 将来会有所帮助。
var string ="kjsdgfiIJHBVSFIU";
string = string.toUpperCase();
console.log(string);

// Output:
KJSDGFIIJHBVSFIU
于 2020-06-08T09:33:33.250 回答
0
var string ="kjsdgfiIJHBVSFIU";
string = string.toUpperCase();
console.log(string);
于 2018-09-13T02:24:50.787 回答
-1

string值转换为toUpperCase然后toLowercase使用方法()的对象。

var string ="kjsdgfiIJHBVSFIU";

console.log(string.toUpperCase());
于 2019-07-01T06:45:02.770 回答