Javascript 中的相等与不等

在 javascript 中,可以使用 == 来比较两个数据是否相等,如果两个数据的类型不同,那么,将在进行转换后进行比较,转换的规则如下:

l         如果其中一个操作数的类型为 Boolean ,那么,首先将它转换为数字类型,false 转换为 0, true 将转换为 1。

l         如果其中一个操作数的类型是字符串,另外一个为数字类型,那么,将字符串转换为数字进行比较。

l         如果其中一个操作数的类型是字符串,另外一个为 object 类型,那么,将调用对象的 toString 方法之后,比较字符串。

l         如果其中一个操作数的类型是数字类型,另外一个为 object 类型,那么,将对象转换为数值后进行数字比较。

以下的规定了一些特殊的比较:

l         null 和 undefined 是相等的。

l         null 和 undefined 不会转换为任何其他类型

l         如果任何一个操作的结果为 NaN,那么相等比较返回 false,不相等比较返回 true。注意,即使两个操作数都为 NaN,返回结果一样是 false,也就是说,NaN 不等于 NaN。

l         如果两个操作数都是对象,那么比较它们引用的值,如果引用同一个对象,那么,返回真,否则,返回假。

alert(null == undefined);   // true

alert(undefined == null);   // true

alert(true == 1);   // true

alert(false == 0);  // true

alert(true == 2);   // false

var obj = {};

alert(10 == obj);   // false

完全相同的比较 === 和不完全相等 !==

完全相同的比较用来比较不进行转换是否相等,例如:

var a = "100";

var b = 100;

alert(a == b);      // true

alert(a === b);     // false

== 比较将返回真,因为 “100” 首先转换为数字 100, 然后与数字 100 进行比较,结果相等。

=== 比较将返回假,因为字符串 ”100” 不经过转换的话,与数字 100 不相等。

!== 用于比较在不转换的情况下,是否不相等。

alert(a != b);      // false

alert(a !== b);     // true

时间: 2024-08-01 10:32:16

Javascript 中的相等与不等的相关文章

Jquery中$(document).ready() 和 JavaScript中的window.onload方法 比较

Jquery中$(document).ready()的作用类似于传统JavaScript中的window.onload方法,不过与window.onload方法还是有区别的. 1.执行时间 window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行. $(document).ready()是DOM结构绘制完毕后就执行,不必等到加载完毕. 2.编写个数不同 window.onload不能同时编写多个,如果有多个window.onload方法,只会执行一个(最后一个)       

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中的数据类型

JavaScript中包含五种基本数据类型(原始数据类型),分别是:undefined, null, number, boolean, string; 和一种引用类型 Object,引用类型中包含特殊的一类:Function类型.number, boolean, string三种基本类型对于有包装类型 Number,Boolean,String,这三种包装类型是对象类型. 针对这些类型,下面分别解释: 1. typeof 操作符 可以通过此操作符获取变量的类型,操作返回值为字符串,如下7种:"n

浅谈JavaScript中的函数问题

前面的话:JavaScript可运行在所有主要平台的主流浏览器上,也可运行在每一个主流操作系统的服务器端上.所以呢,要想成为一名优秀的全栈工程师,必须懂得JavaScript语言.这是我整理的JS的部分函数问题,供大家参考借阅,有不妥的地方也请多多指教. 1.函数的三要素    1.1 函数的功能   1.2 函数的参数 a. 形参——定义函数的时候,没有实际的值,给实参占位 b. 实参——调用函数的时候,有实际的值: c. 当调用函数的时候会把实参复制一份传递给函数 d. 函数调用的时候,实参

JavaScript中__proto__与prototype的关系

一.所有构造器/函数的__proto__都指向Function.prototype,它是一个空函数(Empty function) 1 2 3 4 5 6 7 8 9 Number.__proto__ === Function.prototype  // true Boolean.__proto__ === Function.prototype // true String.__proto__ === Function.prototype  // true Object.__proto__ ==

javascript中=、==、===区别详解

javascript中=.==.===区别详解今天在项目开发过中发现在一个小问题.在判断n==""结果当n=0时 n==""结果也返回了true.虽然是个小问题,却有着大影响,所以决定深入分析下.1.= 赋值运算符 //例: var n=1; console.log(n);//1 n=n+1; console.log(n);//2 2.== 值比较运算符 值比较运算符在表达式两边的数据类型不一致时,会隐式转换为相同数据类型,然后对值进行比较. //例: var a=

javascript中的那些让人摸不着头脑的不=

今个咱来盘点盘点javascript中那些让人摸不着头脑的不等: 本篇博客略偏学术性研究形式了:除了浮点数运算常见写:其他的在实际开发中并不多么实用: 一:首先上场的是NaN: NaN在js中是一个神(xian)奇(jing)的存在:它用来代表不是数字.不可表示的值: 如果我们理解了它代表的是不可表示的值:那对于下面的代码打印的false就容易接受了: NaN == NaN;// false 对于NaN更为深入的探讨可以参考这篇博客:这里就不再过多介绍了:The Curious Case of

javascript 中==和===的区别

    对于JavaScript中比较运算符,可能大家用的比较多的是“==”.对于“===”很多人可能很陌生.=== 表示恒等,首先比较两边的变量数据类型是否相等,其次比较两边的变量的数值是否相等:== 表示相等即仅仅比较两边变量的数值是否相等. 一.“===”首先计算其操作数的值,然后比较这两个值,比较过程没有任何类型转换 1.如果两个值类型不相同,则它们不相等. 2.如果两个值都是null或者都是undefined,则它们不相等. 3.如果两个值都是布尔值true或false,则它们相等.

Javascript中的对象(一)

Javascript是基于对象模型设计的一种编程语言,它的核心(ECMAScript)具有非常强大和灵活的面向对象编程的能力. 什么是对象? 在javascript中,对象是一个拥有属性和类型的独立实体.ECMA-262 把对象(object)定义为"属性的无序集合,每个属性存放一个原始值.对象或函数”. 我们拿它和一个杯子做下类比.一个杯子是一个对象(物体),拥有属性.杯子有颜色,图案,重量,由什么材质构成等等.同样,javascript对象也有属性来定义它的特征.杯子也具有某些功能,比如说能