当name全是null时,函数应该返回给用户。例如,当name为“JERRY”时,函数应该返回字符串“HELLO,JERRY!“控制台记录错误:.toUpperCase()不是函数。
var hello = "Hello, ";
function greet(name) {
if (name == null) {
console.log(hello + "my friend")
} else if (name == name.toUpperCase()) {
console.log(hello.toUpperCase() + name.toUpperCase())
} else {
console.log(hello + name);
}
}
var names = ["jack", "john"]
greet(names);
6条答案
按热度按时间sqougxex1#
names
是一个数组数组没有这样的功能。你可能想对数组的每个元素调用
greet
函数:如果你想让
greet
函数接受一个数组作为参数,那么你可以这样做但这种多态性通常被视为一种不好的做法。
8tntrjer2#
您可以先应用
.toString()
,然后再使用.toUpperCase()
:ctzwtxfj3#
names
是数组声明,所以不能使用该类型的函数,如果你想使用for循环或names[1]
类型打印该数组,txu3uszq4#
如果你把一个数组传入函数,它就不工作了。现在好多了。
6g8kf2rb5#
另一种方式,更多的ES学习,错误和类型处理:
结果
这将处理一个空数组,一个数组,一个字符串和空或假调用。如果您还需要处理一个Object,也可以通过附加代码来完成。
奖励材料
避免讨论这种方式使用原型是好是坏,只是展示了一种合理的方式,如果需要的话。
toPropertyCase原型:
vxqlmq5t6#
因为
names
是一个数组,你必须先循环它才能得到数组内部的值。你可以试试我的代码: