javascript中false值及其常见比较运算

1. ture或者false的值

if判断中会被隐式转换成false的boolean类型的值有 false, 0, undefined , null , ‘‘, NaN(not a number)

除此外 其他的值会被认为true, 包括 ‘0‘, ‘false‘, 空function, 空数组([]),空对象({})

var a = !!(0);// 等价于 var a = false;

var a = !!(‘0‘); // 等价于 var a = true; 

2.  falsy值的比较

  值为 false , ‘‘, 0 三者进行值比较,如下:

alert(false == ‘‘);//true
alert(false == 0);//true
alert(0 == ‘‘);//true

  false,‘‘,0 与 undefined , null 之间的比较,结果如下:

alert(false == undefined);//false
alert(‘‘ == null);//false
alert(‘‘ == undefined);//false

 

alert(undefined == undefined);//true
alert(null == null);//true

 可以看到,0, ‘‘, false 这三者进行值比较是相等的,undefinde, null 除与自身相比外,与其他任何类型值进行比较都是不等的

NaN与其他类型falsy values值比较情况如下:

alert(false == NaN);//false
alert(0 == NaN);//false
alert(‘‘ == NaN);//false
alert(undefined == NaN);//false
alert(null == NaN);//false
alert(NaN == NaN);//false

  由结果得知,NaN与任何类型的值都不相等,包括自身. 如何判断NaN类型的值

alert(typeof(NaN));//number
alert(isNaN(NaN));//true

  

时间: 2024-10-17 05:14:28

javascript中false值及其常见比较运算的相关文章

JavaScript中的值类型和引用类型

先抛出一个题目,阿里的笔试面试题(很基础,但确实是阿里的笔试题) var a = {"x": 1}; var b = a; a.x = 2; a = {"x": 3}; console.log(b.x); 大家觉得最后在控制台输出的结果是多少? 如果你答案是2,那你就没必要接下去看了.如果不是.那你就接着看下去来解决你的疑惑吧! JavaScript中的值类型和引用类型 在javascript里面有两种变量类型,一种是值类型,一种是引用类型. 值类型:数值.布尔型.

前端要给力之:语句在JavaScript中的值

文件夹 文件夹 问题是语句有值吗 那么说你骗我咯 有啥米用呢 研究这个是不是闲得那个啥疼 ES5ES6有什么差异呢 结论是ES6是改了规则但更合理 最后不不过if语句 这两天在写语言精髓那本书的第三版,讨论到ES6跟ES5中间对"语句的值"的不同处理.正好Weibo上也有同学对这个问题有兴趣,所以专门整理了这篇. 写博客能够啰嗦点,写书就不行了.所以这篇文章跟书上能看到的还是会不一样的. 问题是:语句有值吗? 非常不幸.我们面临的的确是一门连语句都有值的语言.在JavaScript中.

JavaScript中Object值合并方法

前言:在日常开发工作中我们可能会遇到js中对象中所有值的复制工作,也有可能是通过electron开发客户端,改版时候面临到的设置合并问题.那么本文将对此做一个简要解决方案的叙述. 介绍:比如有obj1, obj2,我们需要将obj1中的所有与obj2中相同字段相同深度的值copy给obj2,并且需要保持obj2字段结构不变,调用一下方法即可(采用ES6写法). 1 /** 2 * 将src中的数据copy到dist中,并保留dist的结构 3 * @param src 4 * @param di

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中null值,特别注意的两点

null 是一个javascript字面量,表示空值,就是没有对象被呈现.他是javascript原始值之一.null值常被放在期望一个对象上,但是不引用任何对象的参数位置,也就是说对象的初始化. 我们看下面的一个例子 Javascript var obj = null; console.log(typeof obj === "object"); // true 我们通过对null的命名描述来理解,null是被期望在一个对象上,可能在javascript的规范中设这么设定的.所以返回一

javascript中作为值的函数

因为ECMAScript中函数名本事就是一个变量,所以函数也可以作为值来使用,即不仅可以向传递参数一样把函数传递给另一个函数,而且可以将函数作为另一个函数返回 这个函数接受两个参数,第一个参数是一个函数名,第二个参数是传递给该函数的一个值 function add(num){ return num+10; } var result=callFunction(add,10){ alert(result);//20 }

javascript中值传递与值引用的研究

今天重新看了一下<javascript高级程序设计>,其中讲到了javascript中的值传递和值引用,所以就自己研读了一下,但是刚开始没有明白函数中的参数只有值传递,有的场景好像参数是以引用的方式传递的,但是实际上却不是,那到底是怎么回事,或者是函数中的传值是值传递还是值引用呢,下面来对书上给出的例子做一个图解,这样能够更好的解释这个问题.有顿悟的感觉.javascript中貌似共有8种数据类型,包括了字符串类型,数值类型,布尔类型,undefined类型,null类型,对象,数组,函数:1

javascript中Date对象的应用——简易日历的实现

× 目录 [1]效果 [2]HTML [3]CSS[4]JS 前面的话 简易日历作为javascript中Date对象的常见应用,用途较广泛.本文将详细说明简易日历的实现思路 效果演示 HTML说明 使用type=number的两个input分别作为年和月的输入控件,这样在高级浏览器下自带调节按钮 按照周日到周一的顺序进行星期的排列 <div class="box"> <header class='control'> <input id="con

javascript中Date对象的应用

前面的话 简易日历作为javascript中Date对象的常见应用,用途较广泛.本文将详细说明简易日历的实现思路 效果演示 HTML说明 使用type=number的两个input分别作为年和月的输入控件,这样在高级浏览器下自带调节按钮 按照周日到周一的顺序进行星期的排列 <div class="box"> <header class='control'> <input id="conYear" class="con-in&q