最新消息: 关于Git&GitHub 版本控制你了解多少?
您现在的位置是:群英 > 开发技术 > web开发 >
JavaScript中的假值是什么?有哪些?
PHP中文网发表于 2021-09-17 17:59 次浏览

    今天我们一起来了解一下JavaScript中的假值,在JavaScript中,例如false、0、null、undefined、NaN等值其实都是假值,很多新手可能对假值不是很理解,接下来小编就给大家来详细的介绍一下JavaScript的价值。

    JavaScript中的假值

  • false
  • 0和其他形式的数字等的零-0 00.00x0(信贷RBT为十六进制形式)
    - `”“,’‘ 和 ```-长度的字符串0
  • null
  • undefined
  • NaN
  • document.all (仅在HTML浏览器中)这是一个奇怪的。document.all是一个假对象,带有typeof as undefined。它是IE11之前的IE中的Microsoft专有功能,并作为“蓄意违反JavaScript规范”而添加到HTML规范中,因此为IE编写的网站在尝试访问时不会中断document.all.something。这是虚假的,因为它if (document.all)曾经是在条件注释之前检测IE的流行方法。
    “ Falsey”仅表示JavaScript的内部ToBoolean函数return falseToBooleanunderlies !value,value ? ...: …;和if (value)。这是其官方规范(2018年工作草案)(自1997年第一个ECMAscript规范以来唯一的变化就是添加了ES6的Symbols,它们始终是真实的):

  • []

  • {}

  • ""(空字符串)

    与==(宽松平等)的比较

    值得一谈的是falsy值与的松散比较==,这会使用ToNumber()并可能由于潜在的差异而引起混淆。它们有效地分为三类:

  • false, 0, -0, "", '' 彼此匹配 ==
  • 例如false == ""'' == 0因此4/2 - 2 == 'some string'.slice(11);
  • null, undefined==
  • 例如,null == undefined但是undefined != false
  • 这也是值得一提的是,虽然typeof null回报'object',null是不是一个对象,这是一个长期的错误/怪癖这是不固定的,以保持兼容性。它不是一个真正的对象,并且对象是真实的(document.all当在HTML中实现Javascript时会发生“恶意违反” )
  • NaN 不匹配任何东西,用=====,甚至没有自己
    例如NaN != NaNNaN !== NaNNaN != falseNaN != null
  • 对于“严格相等”(===),没有这样的分组。只有false === false

    这就是为什么许多开发人员和许多样式指南(例如standardjs)偏爱===且几乎从不使用的原因之一==

    真正的价值观 == false

“ Truthy”仅表示JavaScript的内部ToBoolean函数return true。Javascript的应用怪癖要知道的(和另一个很好的理由,更喜欢=====):这是可能的值是truthy(ToBoolean回报true),而且还== false

    你可能会认为这if (value && value == false) alert('Huh?')是不可能发生的逻辑上的可能性,但对于以下情况,它将是可能的:

  • "0"'0'-它们是非空字符串,这是正确的,但Javascript会将==数字与等效字符串匹配(例如42 == "42")。因为0 == false,如果 "0" == 0"0" == false
  • new Number(0)并且new Boolean(false)-它们是真实的对象,但是==看到它们的值which == false
  • 0 .toExponential(); -数值等于的对象 0
  • 任何类似的构造都会为你提供虚假的值,并包装在真实的类型中
  • [][[]][0](感谢cloudfeet对JavaScript的平等表链接)

    一些更真实的价值

    这些只是一些人可能期望是虚假的价值观,但实际上是真实的。

  • -1 和所有非零负数
  • ' '" ""false"'null'… 所有非空字符串,包括只是空格串
  • 来自的任何内容typeof,总是返回非空字符串,例如:

  • typeof null'object' 由于长期存在的错误/怪癖而返回字符串)

  • typeof undefined(返回一个字符串'undefined'
  • 任何对象(document.all浏览器中的“恶意违反”除外;请记住,null尽管有typeof其他建议,但这实际上不是对象)。包含:

  • {}

  • []
  • function(){}() => {}(任何功能,包括空功能)
  • Error以及 Error
  • 任何正则表达式
  • new(包括new Number(0)new Boolean(false))创建的任何内容
  • 任何符号
    true,1,"1"[1]回报true相比彼此==

    现在大家对javascript假值是什么及哪些是javascript假值应该都清楚了吧,如果还想要了解更多JavaScript的内容,请关注群英网络其它相关文章。

标签:javascript假值
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
相关信息推荐