JavaScript中什么值是假值
时间:2021-07-30 来源:互联网
今天PHP爱好者给大家带来JavaScript中什么值是假值的介绍,在JavaScript中,false、0和其他形式的数字等的零(“-0”、“+0”、“0.0”和“0x0”)、null、undefined、NaN、“document.all”、“[]”、“{}”、“""”(空字符串)等值都是假值。希望对大家有所帮助。

本教程操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。
JavaScript中的假值
false0和其他形式的数字等的零-0、+0、0.0和0x0(信贷RBT为十六进制形式)
- `”“,’‘ 和 ```-长度的字符串0null
undefined
NaN
document.all (仅在HTML浏览器中)这是一个奇怪的。
document.all是一个假对象,带有typeofasundefined。它是IE11之前的IE中的Microsoft专有功能,并作为“蓄意违反JavaScript规范”而添加到HTML规范中,因此为IE编写的网站在尝试访问时不会中断document.all.something。这是虚假的,因为它if (document.all)曾经是在条件注释之前检测IE的流行方法。请参阅为什么document.all虚假?详情
“ Falsey”仅表示JavaScript的内部ToBoolean函数returnfalse。ToBooleanunderlies!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与==例如,n
ull == undefined但是undefined != false这也是值得一提的是,虽然
typeof null回报'object',null是不是一个对象,这是一个长期的错误/怪癖这是不固定的,以保持兼容性。它不是一个真正的对象,并且对象是真实的(document.all当在HTML中实现Javascript时会发生“恶意违反” )NaN 不匹配任何东西,用
==或===,甚至没有自己
例如NaN != NaN,NaN !== NaN,NaN !=false,NaN != 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中什么值是假值的详细内容,更多请关注php爱好者其它相关文章!
-
AERO币2026项目亮点解析及欧易App交易步骤指南 2025-11-02 -
熬夜神是什么梗 揭秘年轻人爆肝修仙的搞笑自嘲文化 2025-11-02 -
2025年华为手机安装幣安binance(币安)指南:官方APP下载与注册全流程 2025-11-02 -
AERO币未来走势预测 币安App实时行情与深度分析 2025-11-02 -
华为用户必看:幣安binance(币安)App安装失败怎么办?解决方案大全 2025-11-02 -
什么神仙是什么梗?揭秘网络热词神仙的爆火真相,一秒get流行语精髓! 2025-11-02