本篇内容介绍了“JavaScript中的假值是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

专注于为中小企业提供成都网站设计、成都网站制作服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业古浪免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了数千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
在JavaScript中,false、0和其他形式的数字等的零(“-0”、“+0”、“0.0”和“0x0”)、null、undefined、NaN、“document.all”、“[]”、“{}”、“""”(空字符串)等值都是假值。
本教程操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。
JavaScript中的假值
- false
- 0和其他形式的数字等的零- -0、- +0、- 0.0和- 0x0(信贷RBT为十六进制形式)
 - `”“,’‘ 和 ```-长度的字符串0
- null 
- undefined 
- NaN 
- document.all (仅在HTML浏览器中)这是一个奇怪的。 - document.all是一个假对象,带有- typeofas- undefined。它是IE11之前的IE中的Microsoft专有功能,并作为“蓄意违反JavaScript规范”而添加到HTML规范中,因此为IE编写的网站在尝试访问时不会中断document.all.something。这是虚假的,因为它- if (document.all)曾经是在条件注释之前检测IE的流行方法。请参阅为什么- document.all虚假?详情
 “ Falsey”仅表示JavaScript的内部- ToBoolean函数return- false。- 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中的假值是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!
当前文章:JavaScript中的假值是什么
本文路径:http://www.scyingshan.cn/article/ipdhse.html

 建站
建站
 咨询
咨询 售后
售后
 建站咨询
建站咨询 
 