JavaScript判断字符串非空的严格写法

       最近在阅读O'REILLY系列的《JavaScript经典实例》,里面第一张在讲String相关操作时提到一种严格判断String非空的写法,觉得很有意思,就纪录在此。

问题:想要检查一个已经定义了的变量,是一个字符串,并且它不为空。

解决:使用typeof运算符、通过valueOf方法(这都是JavaScript对象共享的)以及stringlength属性来创建一个条件测试,以确保一个变量是存在的,是一个字符串,并且不为空:

思考:可能String最重要的内建属性是length。我们可以使用length来了解字符串的长度信息,并且测试字符串变量是否是一个空字符串(长度为0):

然而,当使用字符串的时候并不确定它们是否存在的时候,你是不能检查其长度的,因为如果还没设置该变量的话,将会得到一个未定义的JS错误,必须把长度检测和另一项存在性测试组合起来,此时,就需要了解一下typeof运算符。

typeof运算符返回对象类型:


最后一个值现在对我们就有意义,因为,一个没有定义的变量拥有undefined数据类型。

valueOf方法对于所有的javascript对象都可用,并且不管对象是什么,都返回其基本值:对于Number、String和布尔类型,也就是它们的原始值;对于函数,是函数文本;以此类推。因此,如果该变量是一个String对象,valueOf返回值是一个字符串直接量。如果该字符串已经是一个字符串直接量,其对应的valueOf方法将会临时性的将它封装为一个String对象,这意味着,valueOf返回值依然是一个字符串直接量。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值