Javascript:类型错误混淆

标签 javascript typeerror

我正在学习 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/

相关文章:

AngularJS - $httpBackend 无法读取嵌套的 JSON 属性

JAVASCRIPT - 变量 "i"未定义

javascript - 相当于 : my_obj. 高度 += 10;在 adobe animate HTML5 Canvas 中?

Javascript 错误仅在 uglify mangle 为 false 时发生

javascript - 如何在 Class 组件的函数中使用 React Context

python - iter() 是如何工作的,它给出 "TypeError: iter(v, w): v must be callable"

javascript - 未捕获的 TypeError : elem. nodeName.toLowerCase 不是函数 Jquery

javascript - 使用 Javascript Fetch API 对异步获取的数据进行排序

python - typeerror 'bytes' 对象不可调用

javascript - 未捕获的类型错误 : number is not a function