- 对于初入前端的我,虽然遇到很多次这次坑,也知道是未定义的意思,但是每次就是要找半天,今天遇到的是下面这种情况:
由于不了解js预解析导致的undefined错误
什么是预解析:
简单来说就是在在js代码执行之前会有以下操作:
1.所有的var开头定义的变量,数组,对象等都会在预解析是赋值undefined。
2.所有的function声明的函数都会在预解析是声明(其他形式的函数一定不会!!!)
下面就是我今天遇到的问题:(仅插入有问题的一段)
console.log(operation['add']);
var operation = {
add : function(num1,num2){
return parseInt(num1) + parseInt(num2);
}
};
相信大家很容易就看出来问题,这里运行时出出现’add’ undefined;
而我,今天就是这个错误找了半天,就算知道这行有错误,我也没发现是因为后面的operation还未定义,属实哭了。
希望大家引以为戒,因为这个错误确实容易反还难找,尤其是在真个项目中,对象和var定义的函数时,真的会找到哭,希望对大家有帮助。
写在最后的话:
遇到undefined时一定要先自己预解一下,而不要傻乎乎的认为我明明声明函数了什么的,血的教训!!!