关于JS判断字符串是否为空的讨论

来源:互联网 发布:window的端口共有多少 编辑:程序博客网 时间:2024/06/05 20:58

今天,在我实习的公司,师兄拿了一个项目的源代码要我去熟悉。

后来我想要去实现一个功能的时候,我就去翻了下前面师兄的代码。

结果看到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()

以上就是我对判断字符串为空的认知啦
以后或许还有新的认识,我还会再来记录的。

原创粉丝点击