Truthy
In JavaScript, a truthy value is a value that is considered true
when encountered in a Boolean context. All values are truthy unless they are defined as falsy (i.e., except for false
, 0
, -0
, 0n
, ""
, null
, undefined
, and NaN
).
在 JavaScript 中,truthy(真值)指的是在布尔值上下文中,转换后的值为真的值。所有值都是真值,除非它们被定义为假值(即除 false
、0
、-0
、0n
、""
、null
、undefined
和 NaN
以外皆为真值)。
JavaScript uses type coercion in Boolean contexts.
JavaScript 在布尔值上下文中使用强制类型转换(coercion)。
Examples of truthy values in JavaScript (which will be coerced to true in boolean contexts, and thus execute the if
block):
JavaScript 中的真值示例如下(将被转换为 true,if
后的代码段将被执行):
if (true)
if ({})
if ([])
if (42)
if ("0")
if ("false")
if (new Date())
if (-42)
if (12n)
if (3.14)
if (-3.14)
if (Infinity)
if (-Infinity)
See also
测试示例
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Truthy</title>
</head>
<body>
<script type="text/javascript">
if(true) {
console.log(true)
}
if({}) {
console.log({})
}
if([]) {
console.log([])
}
if(42) {
console.log(42)
}
if("foo") {
console.log("foo")
}
if(new Date()) {
console.log(new Date())
}
if(-42) {
console.log(-42)
}
if(3.14) {
console.log(3.14)
}
if(-3.14) {
console.log(-3.14)
}
if(Math.PI) {
console.log(Math.PI)
}
if(-Math.PI) {
console.log(-Math.PI)
}
if(Infinity) {
console.log(Infinity)
}
if(-Infinity) {
console.log(-Infinity)
}
if(false) {
console.log(false)
}
if(0) {
console.log(0)
}
if(-0) {
console.log(-0)
}
if(0n) {
console.log(0n)
}
if("") {
console.log("")
}
if(null) {
console.log(null)
}
if(undefined) {
console.log(undefined)
}
if(NaN) {
console.log(NaN)
}
</script>
</body>
</html>
从控制台的输出结果可知,除 false
、0
、-0
、0n
、""
、null
、undefined
和 NaN
以外皆为真值:
原文
MDN Web Docs Glossary - Definitions of Web-related terms > Truthy