我正在学习 Javascript,发现理解起来令人沮丧。
下面是两个计算给定数组中整数总和的函数,其中一个有效解决方案,另一个部分有效。
这是我的工作函数:
var sum = function(array) {
total = 0
for (index in array) {
total += array[index]
}
return total
}
这是部分工作的函数:
var sum = function(array) {
sum = 0
for (index in array) {
sum += array[index]
}
return sum
}
您会发现不同之处在于变量名称。我想我在这里缺少一些基本的理解,希望得到一些澄清。
这是我的测试语句:
console.log(sum( [1, 2, 3, 4, 5, 5, 7] ) === 27)
console.log(sum( [1, 2, 3, 4, 5, 5, 7] ) === 27)
它们有意完全相同,以向您展示问题的核心。
对于工作函数,它为两个 测试语句返回 true。
对于部分工作的函数,它返回 true 一次,后跟 TypeError: number is not a function
这是怎么回事?
最佳答案
var sum = function(array) {
sum = 0
sum
现在是一个数字,而不是一个函数。
关于Javascript:类型错误混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22237555/