什么情况下字符串会返回null? :没有该对象 就返回这null
str!=""是什么意思啊?测试的是什么? :该字符串 长度 不为“”就是不写东西 和 length == 0 一样
str.length!=0是什么意思啊?测试的又是什么?  :该字符串 长度 不为0
什么情况下用str!=null? :有该对象 就返回这一个对象
 
这几个表达式把我都弄晕了,急盼高手能解答一下, 
说一说这几个表达式到底有什么区别啊? 
顺便写个小例子更佳。谢谢!!!<html> 
<script type="text/javascript"> 
            function check() 
            { 
              var mynum =document.getElementById("num");
              //var mynum =document.getElementById("num1");如果这样写的话 mynum 就为 null了  if (mynum == null){
               alert("num 对象为空");  
      }
              var str = mynum.value;

      if (str.length != 0){
               alert("长度不为空"+str);  
      }
               if (str != ""){
               alert("字符串不为空");  
      }         
          } 
</script> 
<html> 
<body> 
  
  <form  name="my" action="/store/ModifyBookNum" method="post">  
  <input size="2" name="iname" value="abc" id="num" >   <input type="button" value="Show" onclick="check()"> 
  </form> 
</body> 
够意思了吧 
兄弟 
试试看
^_*

解决方案 »

  1.   

    判断为空的话,str!=null && str!=""应该足够了,
    因为变量已初始化的话应该有值;只有var aa = null;或者未初始化var aa或对象不存在(其值即=='undefined '同时也==null);这个时候才会有aa==null;
    个人认为应该没有别的情况了
      

  2.   

    到底怎样写才正确呢??? 
          推荐第一种,比较正规。但项目实际需求是不同的。只要达到目的怎么写都行什么情况下字符串会返回null? 
          1,赋值被=null
         2,该变量或类 不存在或没找到
          3,封装类的默认值是null,比如int的默认值是0,但Integer是null
          boolean--Boolean  
          char-----Character  
          byte-----Byte  
          short----Short  
          int------Integer  
          long-----Long  
          float----Float  
          double---Double
    String 默认值=""   所以一般第2种情况下=null str!=""是什么意思啊?测试的是什么? 
         值不为空。值本身
    str.length!=0是什么意思啊?测试的又是什么? 
         字符长度不为0。值的长度什么情况下用str!=null? 
        变量存在且为不被赋null,String默认为"",一般只要声明后就不会为null什么情况下用str!=""? 
        声明后默认值。被赋值=""。提交的如文本框,未输入值什么情况下用str.length!=0? 
        一般情况下,不为null 且 不为"" 即 !=0
       这几个表达式把我都弄晕了,急盼高手能解答一下, 
       说一说这几个表达式到底有什么区别啊? 比较合理的是先判断!=null 再判断 !="" 和 length
    因为当=null时,(可以理解为不存在),是没有值  length 的,这个时候取获取 就会报错