今天,在我实习的公司,师兄拿了一个项目的源代码要我去熟悉。
后来我想要去实现一个功能的时候,我就去翻了下前面师兄的代码。
结果看到js这一块,有个if判断难住我了。
是这样写的
loadData("pc");
var loadData = function (type) {
if(!type){
type="pc";
}
........
........
}
作为刚出来的小白,我就看不懂了
!type 这明明是false ,岂不是下面的type=“pc”怎么也不需要执行,干嘛还要写这句。
我就问了比我早出道的室友,他一开始也不清楚,当时我没明说是js语句,他以为是java代码。
他想了好久才跟我说,
type 空 为false !type就是ture ,就是用来判断type字符串是否为空的条件,我才懂了这条js语句的意思。
后面我把源码截图发给他,他又说java和js判断字符串的条件不一样,
到现在我才知道原来是不一样的,赶紧上网查询。
搞清楚了,的确不一样。
为什么呢?因为js中的null和undefined,0,false等虽然不同,但是判断的结果一样,所以要比java更加精细判断。
所以在js中最主要判断字符串为空的方法有如下:
第一种是根据字符串的length来判断
var str = '';
if (str.length == 0)
{
alert('不能为空');
}
第二种,比上一种好一点,就是用户输出空格和制表符等其他不是正常的字符时,也会提示为空
var str = ' ';
if (str.replace(/(^\s*)|(\s*$)/g, "").length ==0)
{
alert('不能为空');
}
向上面那种js判断,是偷懒的写法,但是如果不需要那么的精细判断,当然可以用。
java中判断字符串为空的条件倒是很直观明了
1:s == null || s.equals("")
2:s == null || s.length()<=0
3:s == null || s.isEmpty()
以上就是我对判断字符串为空的认知啦
以后或许还有新的认识,我还会再来记录的。