项目中获取用户昵称,然后存到app.globalData里边但是结果是undefined,所以想判断如果是undefined就继续让调起登陆授权,之前一直没判断好,找了一下资料看了一下是判断出错。。
一、当nickname是空的undefined,看看原先的判断//这个判断是有误的
if(app.globalData.userInfo['NickName'] != 'undefined'){
...
}
二、改正之后的写法//1、不要用引号引着
if(app.globalData.userInfo['NickName'] != undefined){
...
}
//2、使用typeof()
if(typeof(app.globalData.userInfo['NickName']) != 'undefined'){
...
}
三、总结一下
1.判断undefined:var tmp = undefined;
if (typeof(tmp) == "undefined"){
console.log("undefined");
}
说明:typeof 返回的是字符串,有六种可能:"number"、"string"、"boolean"、"object"、"function"、"undefined"
2.判断null:var tmp = null;
if (!tmp && typeof(tmp)!="undefined" && tmp!=0){
console.log("null");
}
3.判断NaN:var tmp = 0/0;
if (isNaN(tmp) ){
console.log("NaN");
}
说明:NaN 表示非法,如果把 NaN 与任何值(包括其自身)相比得到的结果均是 false,所以要判断某个值是否是 NaN,不能使用 == 或 === 运算符。
提示:isNaN() 函数通常用于检测 parseFloat() 和 parseInt() 的结果,以判断它们表示的是否是合法的数字。当然也可以用 isNaN() 函数来检测算数错误,比如用 0 作除数的情况。
4.判断undefined和null:var tmp = undefined;
if (tmp== undefined)
{
console.log("null or undefined");
}
var tmp = undefined;
if (tmp== null)
{
console.log("null or undefined");
}
说明:null==undefined
5.判断undefined、null与NaN:var tmp = null;
if (!tmp)
{
console.log("null or undefined or NaN");
}
提示:一般不那么区分就使用这个足够。
6.判断空对象
让一个对象一开始设为null,通过判断是否为null即可判断
部分参考资料简书