在 JavaScript 中,除了布林值本身就是真值或假值外,其他型别会在布林的执行环境中转换成为 真值
或假值
以以下程序码为例:
因 数值 1
为真值,转换为 true
,所以执行 if 判断式
if (1) {
console.log('执行 if 判断式');
}
// 执行 if 判断式
需要要注意的是 - 不要把真假值与隐含转型混淆
字串 1
虽然在宽松相等中会因自动转型而与 布林值 true
相等,但此例中是因 字串 1
使真值,所以执行 if 判断式
if ('1') {
console.log('执行 if 判断式');
}
// 执行 if 判断式
数值 5
也因是真值,所以执行 if 判断式,与是否等同 布林值 true
无关
console.log(1 == true); // true
console.log(5 == true); // false
if (5) {
console.log('执行 if 判断式');
}
// 执行 if 判断式
真值大概有以下几种:
以下列举几个当作范例:
除了 0 以外的数值,包含负值皆为真值
if (5) {
console.log('执行 if 判断');
} else {
console.log('执行 else 判断');
}
// 执行 if 判断
if (-7) {
console.log('执行 if 判断');
} else {
console.log('执行 else 判断');
}
// 执行 if 判断
任何非空字串的字串皆为真值
if ('abc') {
console.log('执行 if 判断');
} else {
console.log('执行 else 判断');
}
// 执行 if 判断
if ('0') {
console.log('执行 if 判断');
} else {
console.log('执行 else 判断');
}
// 执行 if 判断
if ('false') {
console.log('执行 if 判断');
} else {
console.log('执行 else 判断');
}
// 执行 if 判断
所有阵列皆为真值
if ([1]) {
console.log('执行 if 判断');
} else {
console.log('执行 else 判断');
}
// 执行 if 判断
// 空物件
if ([]) {
console.log('执行 if 判断');
} else {
console.log('执行 else 判断');
}
// 执行 if 判断
所有物件皆为真值
if ({a: 1}) {
console.log('执行 if 判断');
} else {
console.log('执行 else 判断');
}
// 执行 if 判断
// 空物件
if ({}) {
console.log('执行 if 判断');
} else {
console.log('执行 else 判断');
}
// 执行 if 判断
因包裹物件为物件形式,而物件为真值所以包裹物件也为真值
虽然 0 为假值,但因包裹物件所以为真值
if (new Number(0)) {
console.log('执行 if 判断');
} else {
console.log('执行 else 判断');
}
// 执行 if 判断
虽然 false 为假值,但因包裹物件所以为真值
if (new Boolean(false)) {
console.log('执行 if 判断');
} else {
console.log('执行 else 判断');
}
// 执行 if 判断
假值大概有以下几种:
以下列举几个当作范例:
if (0) {
console.log('执行 if 判断');
} else {
console.log('执行 else 判断');
}
// 执行 else 判断
if ('') {
console.log('执行 if 判断');
} else {
console.log('执行 else 判断');
}
// 执行 else 判断
if (null) {
console.log('执行 if 判断');
} else {
console.log('执行 else 判断');
}
// 执行 else 判断
if (undefined) {
console.log('执行 if 判断');
} else {
console.log('执行 else 判断');
}
// 执行 else 判断
if (NaN) {
console.log('执行 if 判断');
} else {
console.log('执行 else 判断');
}
// 执行 else 判断
关於真假值图表可看 JavaScript Equality Table
今天来分享一下我自己如何除错,出错很正常(对我来说啦QWQ),但是发现有错,很重要的是,要知道自己错...
Filebeat 本篇接续上一重,来浏览建置完成的kibana dashboard View you...
动态网页概念 DHTML是 Dynamic HTML 的简称,相较於 HTML 它更强调网页的动态表...
前情提要 一般我们要在 App 中显示 PDF 档案,可能会透过 WKWebView 来进行实作 最...
正如人需要重复呼吸。在程序中,多数时候都与「重复进行某动作」有关,而这,就是回圈。视执行次数、过程与...