Javascript函数打印出NaN

时间:2014-02-17 19:24:55

标签: javascript

为什么这个代码在我执行console.log(square.area)时返回NaN;而不是36?

var calcArea1 = function(){
this.area = this.sideLength * this.sidelength;
};

var square = new Object();
square.sideLength = 6;
square.area = 0;
square.changeArea = calcArea1;


square.changeArea();
console.log(square.area);

1 个答案:

答案 0 :(得分:3)

你的功能有错字:

var calcArea1 = function(){
    this.area = this.sideLength * this.sideLength;
}; //                                      ^^

JavaScript区分大小写,因此大写和小写名称被视为不同。

因为在这种情况下this.sidelength的结果为undefined,所以当你尝试使用NaN(非数字)时(例如,将其与此处相乘)与另一个数字相比,它会产生NaN(非数字)。