jso是什么意思_Js中的!+是什么意思?

这么多人邀请我,而且 @蒙奇D撸码客 在回答中 at 了我,那我就挑挑这段代码的问题吧。

从代码逻辑看,这段代码的意思是:

变量 notice 记录的是公告的个数(正整数,和零??),保持在了 cookie 里。

cookie() 返回的结果是字符串(?),也就是说 notice 变量是一个数字字符串。

+hideNotice 把字符串转换为数字。

!+hideNotice 逻辑非运算,当数字为 0 或者 NaN 时返回 true。

就如这个变量名 hideNotice 所示,用来表示是否隐藏公告。

由于我们不知道 cookie() 函数的实现,所以当 cookie 里面没有 notice 时,返回什么?undefined?null?false?""?……

好在这几个结果都返回 true

!+undefined

!+null

!+false

!+""所以,从这段代码来看,!+hideNotice 的意思是判断 hideNotice 是否为 '0'。

但是,离开这段代码后,!+str 并不能正确的判断字符串 str 是否为 '0'。

当 str 不为数字时,!+str 返回 true。

还有就是 +str 的结果为 0 时,str 并不一定必须是 '0',也可能是 0 的各种变体:

+'+0'

+'-0'

+'.0'

+'-.0'

+'0e0'

+'0x0'

+'0o0'

+'0b0'

后面加个好萌啊,将来还可能会有:+'0n'。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值