CreateTime--2017年2月16日14:11:35
Author:Marydon
非空判断与是否存在
UpdateTime--2017年7月13日16:27:29
1.取值问题
1.1 使用javascript进行页面取值,获取到的值只会是字符串string类型;
原因:如果页面上不存在该元素,运行js时会直接报错。
1.2 使用jQuery进行页面取值时,获取到的值的类型只能有两种:string、undefined。
原因:如果页面上存在该元素,返回的是字符串;如果页面上不存在该元素,返回的是undefined。
1.3 使用js将null值赋到页面上时,赋的值其实是空字符串"";
1.4 从数据库查询数据,若字段是日期类型,字段值为空且SQL、java未将日期类型转换成字符串的情况下,返回的是null,是否存在判断用==null;
字段为字符串类型且为空,返回的是空字符串"";
1.5 通过JSON对象根据不存在的键取值时,返回的是undefined。
2.判断值是否为空
var keyVal= $("#key").val(); if(null==keyVal || ""==keyVal){ alert("隐藏域的值为空"); }
注意:
不要使用string.length == 0 判断,如果返回的是undefined,会直接报错,因为undefined没有.length属性。
3.是否存在判断
UpdateTime--2017年6月30日07:20:51
js在作是否存在判断时,有两种方式:
方式一:不声明!=null或==null
/*非空判断*/ if (variable) { //要执行的语句 } /*为空判断*/ if (!variable) { //要执行的语句 }
不适用场景:
a1. 当variable=0时,if (variable) {},不进该if语句(但是,应该进if判断),更多内容见文章-javascript对于0的解读;
a2. 当variable=""时,if (variable) {},不进该if语句,但是该进if语句;
if (undefined == null) { alert("执行"); } if (undefined) { alert("不执行"); }
注意: js判断某值是否存在可以使用if(param){},java中不能使用这种判断方法,java中类似这样的使用场景,仅用于boolean类型判断
JAVA举例:
boolean flag = false; /*boolean类型判断*/ // 方式一:只能用于boolean类型判断 if (flag) { } // 方式二 if (flag == true) { } // 这两种方式都对,都表示当flag=true时走if语句,只不过前者是对后者的简化
/*不能用于非空判断*/ String str = "测试非空判断"; // 编译直接报错 if (str) { } // 只能使用这种方式 if (null != str) { }
方式二:声明!=null或==null
/*非空判断*/ if (null != variable) { //要执行的语句 } /*为空判断*/ if (null == variable) { //要执行的语句 }
注意:
当variable=undefined时,直接用==null或!=null判断即可。如果是非空判断,不进if语句;若是为空判断,进if语句。
举例:
var aa = 1; if (aa) { alert("tan") } /*当aa存在为0的情况时,进行的非空判断*/ aa = 0; // 必须使用这种方式 if (null != aa) { alert("tan") } // 不能使用这种方式 if (aa) { alert("不弹"); }
UpdateTime--2017年7月12日08:12:13
小结:
方式a通常用于判断方法参数是否存在(if-else语句),举例:
this.showMessage = function(title, url, width, height, type) { var object = this; this.Title = title ? title : "无标题"; this.Width = width ? width : 500; this.Height = height ? height : 300; }
说明:三元运算符判断是if-else语句的变形方式之一,更多变形见文章:if-else用法
UpdateTime--2017年7月26日17:24:08
总结:
是否存在判断
/** * 是否存在判断 */ if (null != variable) { // 要执行的操作 }
非空判断
情景一:
/** * 非空判断(不确定变量是否存在或变量值可能为undefined) */ if (null != variable && "" != variable) { // 要执行的操作 }
情景二:
/** * 非空判断(变量值只有两种可能:空字符串"";非空字符串) */ if ("" != variable) { // 要执行的操作 }