Borislav Hadzhiev
Last updated: Oct 20, 2021
Check out my new book
The "toUpperCase is not a function" error occurs when we call the
toUpperCase()
method on a value that is not a string. To solve the error,
convert the value to a string using the toString()
method or make sure to only
call the toUpperCase
method on strings.
Here is an example of how the error occurs.
const str = {}; // ⛔️ TypeError: str.toUpperCase is not a function const result = str.toUpperCase();
We called the String.toUpperCase method on an object and got the error back.
To solve the error, make sure to only call the toUpperCase()
method on
strings. You can convert most values to a string by using the toString()
method.
const num = 123; const result = num.toString().toUpperCase();
Alternatively, you can check if the value is a string before calling the
toUpperCase()
method.
const str = null; const result = typeof str === 'string' ? str.toUpperCase() : ''; console.log(result); // 👉️ ""
We used a ternary operator to check if the str
variable stores a string.
If it does, the value to the left of the comma is returned, otherwise the value to the right is returned.
toUpperCase
method on it, otherwise we return an empty string to be consistent.If you want to convert all strings in an array to uppercase, use the map
method to iterate over the array and call the toUpperCase
method on each
string.
const arr = ['hey', 'hi', 'hello']; const result = arr.map(str => str.toUpperCase()); // 👇️ ['HEY', 'HI', 'HELLO'] console.log(result);
map
method takes a function and calls the function on each element in the array. On each iteration, we call the toUpperCase
method to convert the current string to uppercase.If the error persists, console.log
the value you're calling the toUpperCase
method on and check it's type using the typeof
operator.
If the value is an object, there's a very good chance that you are forgetting to
access a specific property on which you need to call the toUpperCase()
method.