javascript中的true和false

今天遇到一个问题,执行下面的代码返回true还是false?请说明理由

console.log([] == ![])

在浏览器中运行了一下,发现结果是true。为什么会这样呢?于是查找了相关的资料。

在javascript中0,"", null, unbdefined,NaN,false 为false,其他为true

if(0 || "" || null || undefined || NaN || false) {
  console.log("true")
}else{
  console.log("false")
}

打印结果为false

特别的,当[]与==或者!=进行使用时,被当作""来进行处理;一个非null或者undefined的对象(包括[])用在布尔表达式中,会被作为true来进行处理。因此![]的结果为false。则[]==![]等价于""==false,因此结果为true。

下面代码进行验证:

console.log([]=="") //打印true,说明[]与==使用时被当作""来处理
if([]==false) console.log("false") //打印false,说明[]与==使用时是false
if([]) console.log("true") //打印true,说明在逻辑运算中[]被当作true来处理
console.log(![]) //打印false
时间: 2024-10-03 07:06:42

javascript中的true和false的相关文章

支付宝支付后回调通知中responseTxt=true isSign=False可能的问题

在做支付宝的二维码扫码支付功能,生成二维码成功,扫描后也能付款,付款后也能回调通知到我的页面,但是验证签名的时候出错,找了好久终于找到是什么原因: 引用 1. 用的RSA签名验证,默认密钥纯字符,并不是从pem文件中读取,主要是在Aop.Api.DefaultAopClient中的全局变量keyFromFile=false 2. 我项目中用的密钥是存在文件中的,所以要改为keyFromFile=true; 3. 生成二维码的时候生成签名的是用pem文件,同样在回调的时候验证签名是也应该是从pem

Python3中真真假假True、False、None等含义详解

概述 在Python中,不仅仅和类C一样的真假类似,比如1代表真,0代表假.Python中的真假有着更加广阔的含义范围,Python会把所有的空数据结构视为假,比如[](空列表).{}(空集合).''(空字符串)等,而与之相反的非空数据结构即为真 简单对比代码: # 遍历列表中的示例元素,获取对应的真假: for elenment in ['', 'S', [], [1, 2], {}, {3, 'SSS'}, 0, 0.0, 1, None]: if elenment: print(elenm

JavaScript中布尔值为false的几种情况

下面6种值转化为布尔值时为false,其他转化都为true 1.undefined(未定义,找不到值时出现) 2.null(代表空值) 3.false(布尔值的false,字符串"false"布尔值为true) 4.0(数字0,字符串"0"布尔值为true) 5.NaN(无法计算结果时出现,表示"非数值":但是typeof NaN==="number") 6.""(双引号)或''(单引号) (空字符串,中间

javascript中几种为false的值

如果JavaScript预期某个位置应该是布尔值,会将该位置上现有的值自动转为布尔值.转换规则是除了下面六个值被转为false,其他值都视为true. undefined null false 0 NaN ""或''(空字符串) 需要特别注意的是,空数组([])和空对象({})对应的布尔值,都是true. <!DOCTYPE html> <html lang="en"> <head> <meta charset="

JavaScript中function 之return false的理解(实例代码)

1.司空见惯代码,在某一dom节点上注册事件方法 $("#btnResponse").click(Login); $("#txtCode").keydown(ReturnKey); 2.非常正常的Login function,只是里面用了swal插件 代码执行效果就是我要的,点击btnResponse,当满足触发条件,弹出swal提示框,非常好. function Login(e) { var loginUserId = $("#txtUserno&quo

三元运算符:(b == 5) ? a=&quot;true&quot; : a=&quot;false&quot;;

三元运算符: 如名字表示的三元运算符需要三个操作数. 语法是 条件 ? 结果1 : 结果2;. 这里你把条件写在问号(?)的前面后面跟着用冒号(:)分隔的结果1和结果2.满足条件时结果1否则结果2. <script type="text/javascript"> var b=5; (b == 5) ? a="true" : a="false"; document.write(" -----------------------

JavaScript中值的真真假假(true and false)

值为flase的有: false 0 "" //空串 null undefined NaN 除了以上的之外的都是ture,包括"0" (zero in quotes), "false" (false in quotes) , empty functions, [](空数组), and {}(empty objects),都是为true var a = !!(0); // false var b = !!("0"); // tr

javascript中的 return false和return true

关于javascript中的 return false和return true,return 是javascript里函数返回值的关键字,一个函数内处理的结果可以使用return 返回,这样在调用函数的地方就可以用变量接收返回结果.return 关键字内任何类型的变量数据或表达式都可以进行返回,甚至什么都不返回也可以比如: function NullReturn(IsNull){ if(IsNull==true){ return; } } 这样写也是可以的,这里的意思是返回空(null)所以有的

关于JavaScript中0、空字符串、&#39;0&#39;是true还是false的总结

最近被问到关于js中空字符串是true还是false得问题,一时间没想起来,现在在chrome的console面板上输出代码测试一下. "" == false 结果是true   在js中空字符串与0相等  即空字符串等于false 0 == false  结果是tue   比较的时候 布尔类型的转换成number类型  false 为0  true 为1 “0” == fase 结果是true  字符串准成number Boolean("0") 结果是true