JavaScript判断字符串为非空

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

                var str = "aa";(var str = ""; var str = 1.5)

                if (typeof str === 'string'  &&  str.length  >  0)


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

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


解释

        1,str需要定义。

        2,var str = null; 则不满足条件。需要检查不为null。

        3,str.valueof(str),无论str是字面字符串还是对象字符串,都是string.并且可以用严格等(===)。

        4,字面字符串,对象字符串都有length属性。Array也有。数字没有。(如果访问字面字符串的length属性时,会创建一个新的String对象,并设置对应值。访问length属性后,丢弃新创建的String对象)。


基础知识

        1,JavaScript中,要判断数据,首先得知道输入的是什么类型,typeof去判断。

        2,得知道有什么类型(number,string,boolean,function,object,undefined)。

        3,object包括,null,Array,其他JavaScript对象。

        4,str.valueof(str),无论str是字面字符串还是对象字符串,都是string.并且可以用严格等(===)。也就是说valueof()将返回一个字符串字面值。

        5,先判断类型,在判断其属性(length,或者其他属性)。

        6,严格等与松散等。(===   ==)与 (!==        !=)基本类型与对象之间的关系。比如操作字符串时,只关心基本类型值,不管你是对象字符串还是字面字符串,松散等。结论:对基本类型值感兴趣,松散等;对对象类型强制一致,严格等。也可以这样理解,松散等不关心你是字面还是对象,只关心基本类型的值;严格等,多了一层,要先是同类型,在相等。比如都是object,然后判断是是否等;根据具体情况,选择需要松散等还是严格等,并说清楚为什么这么写

        7,根据语言特性,想办法缩短测试。比如我只找满足条件(正面或反面)。




猜你喜欢

转载自blog.csdn.net/outsanding/article/details/80837326