小码哥的IT人生

JavaScript 逻辑

JavaScript基础 2022-04-25 01:32:51小码哥的IT人生shichen

JavaScript 逻辑

JavaScript 布尔(逻辑)代表两个值之一:truefalse

布尔值

通常,在编程中,您会需要只能有两个值之一的数据类型,比如

  1. YES / NO
  2. ON / OFF
  3. TRUE / FALSE

鉴于此,JavaScript 提供一种布尔数据类型。它只接受值 truefalse

Boolean() 函数

您可以使用 Boolean() 函数来确定表达式(或变量)是否为真:

示例代码:

Boolean(10 > 9)        // 返回 true

完整实例:

<!DOCTYPE html>
<html>
<body>
<p>显示 Boolean(10 > 9) 的值:</p>
<button onclick="myFunction()">试一试</button>
<p id="demo"></p>
<script>
function myFunction() {
  document.getElementById("demo").innerHTML = Boolean(10 > 9);
}
</script>
</body>
</html>

可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html

或者甚至更简单:

示例代码:

(10 > 9)              // 也返回 true
10 > 9                // 也返回 true

完整实例:

<!DOCTYPE html>
<html>
<body>
<p>显示 10 > 9 的值:</p>
<button onclick="myFunction()">试一试</button>
<p id="demo"></p>
<script>
function myFunction() {
  document.getElementById("demo").innerHTML = 10 > 9;
}
</script>
</body>
</html>

可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html

比较和条件

JS 比较这一章列出了完整的比较运算符。

JS 条件这一章列出了完整的条件语句。

下面是一些例子:

运算符 描述 实例
== 等于 if (day == "Monday")
> 大于 if (salary > 9000)
< 小于 if (age < 18)

表达式的布尔值是 JavaScript 比较和条件的基础。

所有具有“真实”值的即为 True

示例代码:

100
3.14
-15
"Hello"
"false"
7 + 1 + 3.14
5 < 6 

完整实例:

<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
var b1 = Boolean(100);
var b2 = Boolean(3.14);
var b3 = Boolean(-15);
var b4 = Boolean("Hello");
var b5 = Boolean('false');
var b6 = Boolean(1 + 7 + 3.14);
document.getElementById("demo").innerHTML =
"100 是 " + b1 + "<br>" +
"3.14 是 " + b2 + "<br>" +
"-15 是 " + b3 + "<br>" +
"任何(非空)字符串是 " + b4 + "<br>" +
"即使字符串 'false' 也是 " + b5 + "<br>" +
"任何表达式(除了零)是 " + b6;
</script>
</body>
</html>

运行结果:

100 是 true
3.14 是 true
-15 是 true
任何(非空)字符串是 true
即使字符串 'false' 也是 true
任何表达式(除了零)是 true

可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html

所有不具有“真实”值的即为 False

0(零)的布尔值为 false

var x = 0;
Boolean(x);       // 返回 false

完整实例:

<!DOCTYPE html>
<html>
<body>
<p>显示 0 的布尔值:</p>
<button onclick="myFunction()">试一试</button>
<p id="demo"></p>
<script>
function myFunction() {
  var x = 0;
  document.getElementById("demo").innerHTML = Boolean(x);
}
</script>
</body>
</html>

可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html

-0 (负零)的布尔值为 false

var x = -0;
Boolean(x);       // 返回 false

完整实例:

<!DOCTYPE html>
<html>
<body>
<p>显示 -0 的布尔值:</p>
<button onclick="myFunction()">试一试</button>
<p id="demo"></p>
<script>
function myFunction() {
  var x = -0;
  document.getElementById("demo").innerHTML = Boolean(x);
}
</script>
</body>
</html>

可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html

""(空值)的布尔值为 false

var x = "";
Boolean(x);       // 返回 false

完整实例:

<!DOCTYPE html>
<html>
<body>
<p>显示 "" 的布尔值:</p>
<button onclick="myFunction()">试一试</button>
<p id="demo"></p>
<script>
function myFunction() {
  var x = "";
  document.getElementById("demo").innerHTML = Boolean(x);
}
</script>
</body>
</html>

可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html

undefined 的布尔值是 false

var x;
Boolean(x);       // 返回 false

完整实例:

<!DOCTYPE html>
<html>
<body>
<p>显示 undefined 的布尔值:</p>
<button onclick="myFunction()">试一试</button>
<p id="demo"></p>
<script>
function myFunction() {
  var x;
  document.getElementById("demo").innerHTML = Boolean(x);
}
</script>
</body>
</html>

可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html

null 的布尔值是 false

var x = null;
Boolean(x);       // 返回 false

完整实例:

<!DOCTYPE html>
<html>
<body>
<p>显示 null 的布尔值:</p>
<button onclick="myFunction()">试一试</button>
<p id="demo"></p>
<script>
function myFunction() {
  var x = null;
  document.getElementById("demo").innerHTML = Boolean(x);
}
</script>
</body>
</html>

可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html

false 的布尔值(正如您猜到的)是 false

var x = false;
Boolean(x);       // 返回 false

完整实例:

<!DOCTYPE html>
<html>
<body>
<p>显示 false 的布尔值:</p>
<button onclick="myFunction()">试一试</button>
<p id="demo"></p>
<script>
function myFunction() {
  var x = false;
  document.getElementById("demo").innerHTML = Boolean(x);
}
</script>
</body>
</html>

可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html

NaN 的布尔值是 false

var x = 10 / "H";
Boolean(x);       // 返回 false

完整实例:

<!DOCTYPE html>
<html>
<body>
<p>显示 NaN 的布尔值:</p>
<button onclick="myFunction()">试一试</button>
<p id="demo"></p>
<script>
function myFunction() {
  var x = 10 / "H";
  document.getElementById("demo").innerHTML = Boolean(x);
}
</script>
</body>
</html>

可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html

布尔可以是对象

通常 JavaScript 布尔是由字面量创建的原始值:

var x = false

但是布尔也可以通过关键词 new 作为对象来定义:

var y = new Boolean(false)

示例代码:

var x = false;
var y = new Boolean(false);
// typeof x 返回 boolean
// typeof y 返回 object

完整实例:

<!DOCTYPE html>
<html>
<body>
<p>永远不要将布尔值创建为对象。</p>
<p>无法安全地比较布尔和对象。</p>
<p id="demo"></p>
<script>
var x = false;         // x 是布尔值
var y = new Boolean(false);  // y 是对象
document.getElementById("demo").innerHTML = typeof x + "<br>" + typeof y;
</script>
</body>
</html>

运行结果:

永远不要将布尔值创建为对象。

无法安全地比较布尔和对象。

boolean
object

可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html

不要创建布尔对象。它会拖慢执行速度。

new 关键词会使代码复杂化,并产生某些意想不到的结果:

当使用 == 运算符时,相等的布尔是相等的:

示例代码:

var x = false;             
var y = new Boolean(false);
// (x == y) 为 true,因为 x 和 y 拥有相等的值

完整实例:

<!DOCTYPE html>
<html>
<body>
<p>永远不要将布尔值创建为对象。</p>
<p>无法安全地比较布尔和对象。</p>
<p id="demo"></p>
<script>
var x = false;         // x 是布尔值
var y = new Boolean(false);  // y 是对象
document.getElementById("demo").innerHTML = (x==y);
</script>
</body>
</html>

运行结果:

永远不要将布尔值创建为对象。

无法安全地比较布尔和对象。

true

可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html

当使用 === 运算符时,相等的布尔是不相等的,因为 === 运算符需要在类型和值两方面同时相等。

示例代码:

var x = false;             
var y = new Boolean(false);
// (x === y) 为 false,因为 x 和 y 的类型不同

完整实例:

<!DOCTYPE html>
<html>
<body>
<p>永远不要将布尔值创建为对象。</p>
<p>无法安全地比较布尔和对象。</p>
<p id="demo"></p>
<script>
var x = false;         // x 是数字
var y = new Boolean(false);  // y 是对象
document.getElementById("demo").innerHTML = (x===y);
</script>
</body>
</html>

运行结果:

永远不要将布尔值创建为对象。

无法安全地比较布尔和对象。

false

可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html

或者甚至更糟。对象无法进行比较:

示例代码:

var x = new Boolean(false);             
var y = new Boolean(false);
// (x == y) 为 false,因为对象无法比较

完整实例:

<!DOCTYPE html>
<html>
<body>
<p>永远不要将布尔值创建为对象。</p>
<p>无法安全地比较布尔和对象。</p>
<p id="demo"></p>
<script>
var x = new Boolean(false);  // x 是对象
var y = new Boolean(false);  // y 是对象
document.getElementById("demo").innerHTML = (x==y);
</script>
</body>
</html>

运行结果:

永远不要将布尔值创建为对象。

无法安全地比较布尔和对象。

false

可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html

比较两个 JavaScript 对象将始终返回 false。

完整的布尔参考手册

如需完整的参考手册,请访问我们的 JavaScript 布尔参考手册

参考手册包含有关所有布尔属性和方法的描述和实例。

版权所有 © 小码哥的IT人生
Copyright © phpcodeweb All Rights Reserved
ICP备案号:苏ICP备17019232号-2  

苏公网安备 32030202000762号

© 2021-2024