我是靠谱客的博主 仁爱镜子,最近开发中收集的这篇文章主要介绍javascript boolean/布尔表达式前言判定成 false判定成 true对象无法比较,除非有一个不是=== 运算符需要在类型和值两方面同时相等,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

前言

  • 具有“真实”值的即为 True;不具有“真实”值的即为 False
  • 简单理解:除了false外,0undefinedNaN"" or null 也被判定成false。

判定成 false

console.log(false?"i am true":"i am false"); /* i am false */
console.log(0?"i am true":"i am false"); /* i am false */
console.log(undefined?"i am true":"i am false"); /* i am false */
console.log(""?"i am true":"i am false"); /* i am false */
console.log(NaN?"i am true":"i am false"); /* i am false */
console.log(null?"i am true":"i am false"); /* i am false */
console.log(null==1?"i am true":"i am false"); /* i am false */
console.log(1==2?"i am true":"i am false"); /* i am false */
console.log(1!=1?"i am true":"i am false"); /* i am false */
console.log("1"=="2"?"i am true":"i am false"); /* i am false */
console.log("1"!="1"?"i am true":"i am false"); /* i am false */
console.log(true==false?"i am true":"i am false"); /* i am false */
console.log(false==true?"i am true":"i am false"); /* i am false */

判定成 true

console.log(true?"i am true":"i am false"); /* i am true */
console.log(1?"i am true":"i am false"); /* i am true */
console.log("1"?"i am true":"i am false"); /* i am true */
console.log(new Date?"i am true":"i am false"); /* i am true */
console.log({}?"i am true":"i am false"); /* i am true */
console.log([]?"i am true":"i am false"); /* i am true */
console.log(1==1?"i am true":"i am false"); /* i am true */
console.log("1"=="1"?"i am true":"i am false"); /* i am true */
console.log(true==true?"i am true":"i am false"); /* i am true */
console.log(false==false?"i am true":"i am false"); /* i am true */

对象无法比较,除非有一个不是

console.log(true==new Boolean(true)?"i am true":"i am false"); /* i am true */
console.log(false==new Boolean(false)?"i am true":"i am false"); /* i am true */
console.log(new Boolean(true)==new Boolean(true)?"i am true":"i am false"); /* i am false*/
console.log(new Boolean(false)==new Boolean(false)?"i am true":"i am false"); /* i am false*/
console.log(1==new Number(1)?"i am true":"i am false"); /* i am true*/
console.log(1==new Number(2)?"i am true":"i am false"); /* i am false*/
console.log(new Number(1)==new Number(1)?"i am true":"i am false"); /* i am false*/
console.log(new Number(1)==new Number(2)?"i am true":"i am false"); /* i am false*/

=== 运算符需要在类型和值两方面同时相等

console.log(new Boolean(true)===new Boolean(true)?"i am true":"i am false"); /* i am false*/
console.log(new Boolean(false)===new Boolean(false)?"i am true":"i am false"); /* i am false*/
console.log(new Number(1)===new Number(1)?"i am true":"i am false"); /* i am false*/
console.log(new Number(1)===new Number(2)?"i am true":"i am false"); /* i am false*/
console.log(true===new Boolean(true)?"i am true":"i am false"); /* i am false*/
console.log(false===new Boolean(false)?"i am true":"i am false"); /* i am false*/
console.log(true===true?"i am true":"i am false"); /* i am true*/
console.log(false===true?"i am true":"i am false"); /* i am false*/

最后

以上就是仁爱镜子为你收集整理的javascript boolean/布尔表达式前言判定成 false判定成 true对象无法比较,除非有一个不是=== 运算符需要在类型和值两方面同时相等的全部内容,希望文章能够帮你解决javascript boolean/布尔表达式前言判定成 false判定成 true对象无法比较,除非有一个不是=== 运算符需要在类型和值两方面同时相等所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(30)

评论列表共有 0 条评论

立即
投稿
返回
顶部