JavaScript判断字符串为非空

朴灿烈づ我的快乐病毒、 2022-05-21 02:20 634阅读 0赞

1,判断非空字符串字面值。

  1. var str = "aa";(var str = ""; var str = 1.5)
  2. if (typeof str === 'string' && str.length > 0)

2,判断字符串为非空(字符串字面值或者字符串对象)。

  1. if ((typeof str != 'undefined' && str) && (typeof str.valueof(str) == 'string') && str.length > 0)

解释

  1. 1,str需要定义。
  2. 2,var str = null; 则不满足条件。需要检查不为null
  3. 3,str.valueof(str),无论str是字面字符串还是对象字符串,都是string.并且可以用严格等(===)。
  4. 4,字面字符串,对象字符串都有length属性。Array也有。数字没有。(如果访问字面字符串的length属性时,会创建一个新的String对象,并设置对应值。访问length属性后,丢弃新创建的String对象)。

基础知识

  1. 1JavaScript中,要判断数据,首先得知道输入的是什么类型,typeof去判断。
  2. 2,得知道有什么类型(number,string,boolean,function,objectundefined)。
  3. 3,object包括,null,Array,其他JavaScript对象。
  4. 4,str.valueof(str),无论str是字面字符串还是对象字符串,都是string.并且可以用严格等(===)。也就是说valueof()将返回一个字符串字面值。
  5. 5,先判断类型,在判断其属性(length,或者其他属性)。
  6. 6,严格等与松散等。(=== ==)与 (!== !=)基本类型与对象之间的关系。比如操作字符串时,只关心基本类型值,不管你是对象字符串还是字面字符串,松散等。结论:**对基本类型值感兴趣,松散等;对对象类型强制一致,严格等**。也可以这样理解,松散等不关心你是字面还是对象,只关心基本类型的值;严格等,多了一层,要先是同类型,在相等。比如都是object,然后判断是是否等;**根据具体情况,选择需要松散等还是严格等,并说清楚为什么这么写**?
  7. 7,根据语言特性,想办法缩短测试。比如我只找满足条件(正面或反面)。

发表评论

表情:
评论列表 (有 0 条评论,634人围观)

还没有评论,来说两句吧...

相关阅读

    相关 java判断字符串

    Java空字符串与null的区别: 1、类型 null表示的是一个对象的值,而并不是一个字符串。例如声明一个对象的引用,String a = null ; ""表示的