首页 > 编程语言 >JavaScript null和0和undefined的比较

JavaScript null和0和undefined的比较

时间:2024-09-27 10:28:43浏览次数:3  
标签:console undefined JavaScript let false null log

null和0和undefined的比较

alert( null > 0 );  // (1) false

alert( null == 0 ); // (2) false

alert( null >= 0 ); // (3) true

注意:这是因为相等性检查 == 和普通比较符 > < >= <= 的代码逻辑是相互独立的。进行值的比较时,null 会被转化为数字,因此它被转化为了 0。这就是为什么(3)中 null >= 0 返回值是 true,(1)中 null > 0 返回值是 false。

另一方面,undefined 和 null 在相等性检查 == 中不会进行任何的类型转换,它们有自己独立的比较规则,所以除了它们之间互等外,不会等于任何其他的值。这就解释了为什么(2)中 null == 0 会返回 false。

 

关于undefined不应该和任何值进行比较。

alert( undefined > 0 ); // false (1)

alert( undefined < 0 ); // false (2)

alert( undefined == 0 ); // false (3)

(1) 和 (2) 都返回 false 是因为 undefined 在比较中被转换为了 NaN,而 NaN 是一个特殊的数值型值,它与任何值进行比较都会返回 false。

(3) 返回 false 是因为这是一个相等性检查,而 undefined 只与 null 相等,不会与其他值相等。

除非你非常清楚自己在做什么,否则永远不要使用 >= > < <= 去比较一个可能为 null/undefined 的变量。对于取值可能是 null/undefined 的变量,请按需要分别检查它的取值情况。

例子1:

let s1 = null==0;

let s2 = null==0;

let s3 = null>=0;

let s4 = undefined>0;

let s5 = undefined<0;

let s6 = undefined==0;

 

console.log('s1: ',s1)

console.log('s2: ',s2)

console.log('s3: ',s3)

console.log('s4: ',s4)

console.log('s5: ',s5)

console.log('s6: ',s6)

结果:

JavaScript null和0和undefined的比较_取值

例子2:

let s1 = 5 > 4;

let s2 = "apple" > "pineapple";

let s3 = "2" > "12";

let s4 = undefined == null;

let s5 = undefined === null;

let s6 = null == "\n0\n";

let s7 = null === +"\n0\n";

 

console.log('s1: ',s1)

console.log('s2: ',s2)

console.log('s3: ',s3)

console.log('s4: ',s4)

console.log('s5: ',s5)

console.log('s6: ',s6)

console.log('s7: ',s7)

结果:

JavaScript null和0和undefined的比较_取值_02

 

标签:console,undefined,JavaScript,let,false,null,log
From: https://blog.51cto.com/u_16830897/12126846

相关文章

  • javascript 匿名函数之立即执行
    函数分为具名函数和匿名函数,具名函数需要先声明在进行调用,而匿名函数是完全没有值。例如:我们设置点击事件中的function就是匿名函数document.addEventListener('click',function(){})我们可以设置匿名函数立即执行。好处是一方面可以防止变量污染,另外一方面,......
  • JavaScript的条件语句
    if条件语句if结构先判断一个表达式的布尔值,然后根据布尔值的真伪,执行不同的语句。所谓布尔值,指的是JavaScript的两个特殊值,true表示真,false表示伪。if语句语法规范if(布尔值){语句;}varm=3if(m===3){console.log(true)......
  • 易优CMS致命错误,联系技术支持:Call to undefined function eyPreventShell()-eyoucms
    当你遇到 core/helper.php 第146行左右出现致命错误,并且提示 CalltoundefinedfunctioneyPreventShell() 时,通常是因为某个自定义函数未被定义或未被正确引入。以下是一些具体的解决步骤:步骤1:检查函数定义定位 eyPreventShell 函数查找 eyPreventShell 函数的......
  • 选择数字 - HakerRank 解决方案 - Javascript
    给定一个整数数组,找到任意两个元素之间的绝对差小于或等于的最长子数组例子_a=[1,1,2,2,4,4,5,5,5]_有两个满足条件的子数组:[1,1,2,2]和[4,4,5,5,5]。最大长度子数组有5个元素。功能说明在下面的编辑器中完成pickingnumbers函数。pickingnumbers有以下参数:int......
  • 解锁 JavaScript 中“navigator”对象的强大功能:综合指南
    javascript中的导航器对象是一个功能强大的工具,它允许web开发人员以远远超出简单网页交互的方式与用户的浏览器和设备进行交互。从访问地理位置数据到管理设备存储,导航器对象是一个功能宝库,可以增强web应用程序的功能。在本博客中,我们将探索导航器对象的一些最有用的功能,并提......
  • 解锁 JavaScript 的超能力:变量的魔力
    从今天开始,我们将探索编程的世界。?你拥有超能力的世界。是的,你没看错,超能力。如果不是超能力,那又是什么?使用javascript,您可以让物体飞、移动、消失、改变颜色,并在数英里之外看到您的朋友,而这只是可能的一小部分。是的,一切都在你的屏幕上,但仍然非常令人兴奋。像任何超级英雄一样,......
  • 理解 JavaScript 中的对象
    您是否遇到过需要在javascript代码中存储一组复杂信息的情况?例如,您需要将用户的数据存储在数据库中,例如姓名、年龄和地址。您将使用什么javascript框架来完成此任务?在本文中,我们将了解对象如何在此类任务中发挥作用,并了解javascript中这一重要数据集合的含义。跟我来吧!......
  • 理解 JavaScript 数组迭代方法
    我最近遇到一个面试问题,要求使用不同的方法来迭代javascript数组对象。提示最初看起来很简单,因为我应该提供一些示例代码片段。然而,这个问题引起了我的兴趣,所以我决定更深入地研究每种方法,不仅探索如何使用它们,而且探索何时以及为何选择一种方法而不是另一种方法。在本文中,我将......
  • 每个开发人员都应该掌握的 JavaScript 数组方法(第 1 部分)
    “能力越大,责任越大。”—本叔叔,蜘蛛侠(2002)就像蜘蛛侠必须掌握他新发现的能力一样,开发人员需要掌握javascript强大的数组方法才能高效、负责任地进行编码。让我们深入研究一些必须知道的数组方法!1.查找find()方法返回满足所提供的测试函数的第一个数组元素的值。ar......
  • 深入 JavaScript 世界:掌握 OOP、虚拟 DOM 等
    踏上激动人心的旅程,探索广阔而动态的javascript世界!getvm提供的免费编程学习资源集合涵盖了广泛的主题,从复杂的面向对象编程(oop)到创建自定义虚拟dom实现。无论您是经验丰富的开发人员还是好奇的初学者,这些教程都将为您提供提升javascript能力的知识和技能。?理......