toUpperCase() is not making the string upper case

前端 未结 7 1852
我在风中等你
我在风中等你 2021-02-11 03:10

I don\'t know what I\'m doing wrong; But somehow .toUpperCase() String-function is not working on my browser or do I get something wrong?

var string          


        
相关标签:
7条回答
  • 2021-02-11 03:19

    Previous answers about Strings being immutable are great! Here is just another potential run-time reason for getting this error which might be hard to spot at first. It does not detract from any of the above valid answers:

    If the object on which the .toUpperCase() method is invoked is not a String, then the runtime doesn't 'find' the method toUpperCase() since that method/function only exists on String objects.

    e.g. console.log(variableName.toUpperCase());

    If variableName is of the type String, it works fine. If it is of another type (that does not have a toUpperCase() method, it says 'toUpperCase() is not a function (since it isn't).

    If you know it should be a string, you can cast it like this:

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

    Hope it helps.

    0 讨论(0)
  • 2021-02-11 03:20

    I didn't know that string is unchangeable unless your reassign it with new name

    console.log(i, 'is a ' + typeof i);
    var N = i.toUpperCase();
    console.log(N);
    
    0 讨论(0)
  • 2021-02-11 03:30
    var upperCase = string.toUpperCase();
    console.log(upperCase);
    

    toUpperCase doesn't transform existing string, it just returns a uppercase string.

    0 讨论(0)
  • 2021-02-11 03:32

    .toUpperCase returns the upper-cased string. It is not an in-place modifier method.

    string = string.toUpperCase();
    

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

    0 讨论(0)
  • 2021-02-11 03:33

    String is Immutable. Once created, a string object can not be modified.

    So here toUpperCase returns a new string, This should work-

    var string ="kjsdgfiIJHBVSFIU";
    var newString = string.toUpperCase();
    alert(newString);
    
    0 讨论(0)
  • 2021-02-11 03:39

    toUpperCase returns the new string, so you must write:

    string = string.toUpperCase();
    

    In many languages, strings are immutable, meaning that they can not be modified once created. While this costs in efficiency, it is important for object oriented programming, because if a String passed by reference to a function was modifiable, the state of objects could be changed without the object's consent.

    0 讨论(0)
提交回复
热议问题