CreateTime--2017年2月16日14:11:35
Author:Marydon
非空判断与是否存在
UpdateTime--2017年7月13日16:27:29
1.取值问题
使用javascript进行页面取值,获取到的值只会是字符串string类型;
如果页面上不存在该元素,运行js时会直接报错。
使用jQuery进行页面取值时,获取到的值的类型只能有两种:string、undefined。
如果页面上存在该元素,返回的是字符串;如果页面上不存在该元素,返回的是undefined。
使用js将null值赋到页面上时,赋的值其实是空字符串"";
从数据库查询数据,若字段是日期类型,字段值为空且SQL、java未将日期类型转换成字符串的情况下,返回的是null,是否存在判断用==null;
字段为字符串类型且为空,返回的是空字符串"";
通过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) {
//要执行的语句
}
不适用场景:
当variable=0时,if (variable) {},不进该if语句(但是,应该进if判断),更多内容见文章-javascript对于0的解读;
当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) {
// 要执行的操作
}