有的人是这样写:function(str){
if(str!=null && str!=""){......}
else {......}
}有的人是这样写:function(str){
if(str!="" && str.length!=0){......}
else {......}
}到底怎样写才正确呢??? 
什么情况下字符串会返回null? 
str!=""是什么意思啊?测试的是什么? 
str.length!=0是什么意思啊?测试的又是什么? 
什么情况下用str!=null? 
什么情况下用str!=""? 
什么情况下用str.length!=0? 
这几个表达式把我都弄晕了,急盼高手能解答一下, 
说一说这几个表达式到底有什么区别啊? 
顺便写个小例子更佳。谢谢!!!

解决方案 »

  1.   

    null :在内存中不存在这个对象
    ""  这个对象的值为空
    str.length  也是内存中对象的的长度为空PS:
    length:是个可写的属性,
      

  2.   

    str是自己定义的“!=”是“不等于”的意思 "" 里面表示内容没有内容就是空的意思
    length字符串长度
      

  3.   

    上面的是对的,
    在js中未声明或声明了还未赋值的变量就是null如果,var str="";就是第空字符串了,也就是第二种,
    str.length!=0与str!=""是一个意思的,
      

  4.   


    在js中声明了还未赋值的变量,是undefined
    在js中使用了未声明的变量,结果是网页上出错null也是一个值判断传过来的值是否有效,这样写就可以了function(str){ if(str){......} else {......} }
    因为如果 str  不论是 null/undefined/''中的哪一个,返回都是false