===操作符:
要是两个值类型不同,返回false
要是两个值都是number类型,并且数值相同,返回true
要是两个值都是stirng,并且两个值的String内容相同,返回true
要是两个值都是true或者都是false,返回true
要是两个值都是指向相同的Object,Arraya或者function,返回true
要是两个值都是null或者都是undefined,返回true
==操作符:
如果两个值具有相同类型,会进行===比较,返回===的比较值
如果两个值不具有相同类型,也有可能返回true
如果一个值是null另一个值是undefined,返回true
如果一个值是string另个是number,会把string转换成number再进行比较
如果一个值是true,会把它转成1再比较,false会转成0
如果一个值是Object,另一个是number或者string,会把Object利用 valueOf()或者toString()转换成原始类型再进行比较
转自:http://www.jb51.net/article/17542.htm
一下举例说明:
首先,先做个简单的介绍,让先有个直观的认识
== equality 等同 === identity 恒等
== 两边值类型不同的时候,要先进行类型转换,再比较。
=== 不做类型转换,类型不同的一定不等。
举例说明:
"1" == true
类型不同,"=="将先做类型转换,把true转换为1,即为 "1" == 1;
此时,类型仍不同,继续进行类型转换,把"1"转换为1,即为 1 == 1;
此时,"==" 左右两边的类型都为数值型,比较成功!
如果比较:"1" === true 左侧为字符型,右侧为bool布尔型,左右两侧类型不同,结果为false;
如果比较:"1" === 1 左侧为字符型,右侧为int数值型,左右两侧类型不同,结果为false;
如果比较: 1 === 1 左侧为int数值型,右侧为int数值型,左右两侧类型相同,数值大小也相同,结果为true;
如果比较: 1 === 2 左侧为int数值型,右侧为int数值型,左右两侧类型相同,但数值大小不同,结果为false;
简而言之就是 "==" 只要求值相等; "===" 要求值和类型都相等 ^_^
============================================================================
下面,我们对"=="和"==="的区别,做一些较为深入的剖析介绍
先说 ===,这个比较简单,具体比较规则如下:
1、如果类型不同,就[不相等]
2、如果两个都是数值,并且是同一个值,那么[相等];(!例外)的是,如果其中至少一个是NaN,那么[不相等]。(判断一个值是否是NaN,只能用isNaN()来判断)
3、如果两个都是字符串,每个位置的字符都一样,那么[相等];否则[不相等]。
4、如果两个值都是true,或者都是false,那么[相等]。
5、如果两个值都引用同一个对象或函数,那么[相等];否则[不相等]。
6、如果两个值都是null,或者都是undefined,那么[相等]。
再说 ==,具体比较规则如下:
1、如果两个值类型相同,进行 === 比较,比较规则同上
2、如果两个值类型不同,他们可能相等。根据下面规则进行类型转换再比较:
a、如果一个是null、一个是undefined,那么[相等]。
b、如果一个是字符串,一个是数值,把字符串转换成数值再进行比较。
c、如果任一值是 true,把它转换成 1 再比较;如果任一值是 false,把它转换成 0 再比较。
d、如果一个是对象,另一个是数值或字符串,把对象转换成基础类型的值再比较。对象转换成基础类型,利用它的toString或者valueOf方法。js核心内置类,会尝试valueOf先于toString;例外的是Date,Date利用的是toString转换。非js核心的对象,令说(比较麻烦,我也不大懂)
e、任何其他组合(array数组等),都[不相等]。
举例说明:
"1" == true
类型不等,true会先转换成数值 1,现在变成 "1" == 1,再把"1"转换成 1,比较 1 == 1, 相等。
= 赋值运算符
== 等于
=== 严格等于
例:
var a = 3;
var b = "3";
a==b 返回 true
a===b 返回 false
因为a,b的类型不一样 ===用来进行严格的比较判断,结果为false
=============
var priceOfApple = "3元"; // 苹果的价格
var priceOfBanana = "3.5元"; // 香蕉的价格
priceOfApple = parseInt( priceOfApple ); // 解析苹果的价格
var priceOfBanana2 = parseInt( priceOfBanana ); // 解析香蕉的价格
if( ( priceOfApple===3 ) && ( priceOfBanana2 === 3 ) // 检查解析是否成功
&& ( parseFloat( priceOfBanana ) ===3.5 ) )
{
alert( "苹果的价格:" + priceOfApple // 输出水果的价格
+ "\n香蕉的价格的整数部分:" + priceOfBanana2
+ "\n香蕉的价格:" + parseFloat( priceOfBanana ) );
}
转自:http://hi.baidu.com/zealot886/item/b85da7e39015d82a6cabb839
相关推荐
javascript 运算符语法全面概述 javascript 运算符语法是javascript 语言的核心组成部分,掌握javascript 运算符语法是编写高效、可读性强的代码的关键。本文将对javascript 运算符语法进行全面概述,包括运算符的...
在JavaScript编程语言中,相等运算符(`==`)与等同运算符(`===`)是两个非常重要的概念,它们用于判断两个值是否相等,但它们的比较方式和逻辑有所不同,这一点对于理解JavaScript的数据类型转换和比较规则至关...
包含算术运算符、比较运算符、逻辑运算符等 JavaScript 是一种广泛使用的脚本语言,主要用于网页和Web应用程序的客户端开发。 JavaScript(简称JS)是一种轻量级、解释型、动态类型的脚本语言,主要用于网页前端...
JavaScript作为一种广泛使用的脚本语言,提供了丰富的运算符集,涵盖算术、比较、逻辑、位、赋值等多种类型。下面,我们将根据给定的文件信息,详细解析JavaScript中的一些常用运算符。 ### 算术运算符 #### 加法...
在JavaScript(JS)中,`==` 和 `===` 是两种常见的比较运算符,它们用于判断两个值是否相等。然而,这两个运算符在处理特殊数据类型时有着显著的差异,这经常会让开发者感到困惑。下面我们将深入探讨这两个运算符的...
JavaScript 等号运算符是 JavaScript 编程语言中的一种基本运算符,用于比较两个操作数是否相等。在 JavaScript 中,等号运算符使用双等号(==)表示,当且仅当两个操作数相等时,它返回 true。本文将详细介绍 ...
JavaScript常用运算符和操作符总结(教辅)JavaScript常用运算符和操作符总结(教辅)JavaScript常用运算符和操作符总结(教辅)JavaScript常用运算符和操作符总结(教辅)JavaScript常用运算符和操作符总结(教辅)...
JS运算符算术运算符比较运算符关系运算符位运算符赋值运算符条件运算符typeof 运算符对象运算符 JavaScript支持一下几种运算符: 算术运算符 比较运算符 关系运算符 赋值运算符 条件运算符 算术运算符 运算符 ...
比较和逻辑运算符用于测试 true 或 false。 比较运算符比较运算符在逻辑语句中使用,以测定变量或值是否相等。 给定 x=5,下面的表格解释了比较运算符: 运算符 描述 例子 == 等于 x==8 为 false === 全等(值...
JavaScript还支持其他类型的运算符,例如比较运算符(==, !=, <, >, <=, >=),逻辑运算符(&&, ||, !),位运算符,赋值运算符(=, +=, -=, *=, /=, %=)等。这些运算符在编程中起到决定性的作用,用于条件判断、...
这两个运算符在JavaScript中用于比较操作,但它们的用法和行为有所不同。 “==”(等于)运算符在进行比较时会进行类型转换。如果比较的两个值类型不同,JavaScript会尝试将它们转换为同一类型后再进行比较。这种...
JavaScript 运算符 运算符 = 用于赋值。 运算符 + 用于加值。 运算符 = 用于给 JavaScript 变量赋值。 算术运算符 + 用于把值加起来。 实例 指定变量值,并将值相加: y=5; z=2; x=y+z; 在以上语句执行后,x 的值...
在JavaScript编程中,运算符优先级决定了表达式中的运算执行顺序。如果没有明确指定运算顺序,表达式就会根据默认的优先级进行计算。在给定的文件内容中,列出了2019年JavaScript中运算符的优先级列表,这对于编写...
虽然这两个运算符都是用来比较两个值是否相等,但它们在比较的过程中有着本质上的区别,这些区别对于理解JavaScript的数据比较和类型转换行为至关重要。 首先,需要明确的是,JavaScript是一种动态类型语言,这意味...
【JavaScript源代码】ES6扩展运算符的理解与使用场景 扩展运算符(Spread Operator)是ES6引入的新特性,它以“…”的形式出现在代码中,主要用于数组和对象的展开,从而实现灵活的数据处理。以下是对扩展运算符在...
"JavaScript 比较和逻辑运算符" 在 JavaScript 中,比较和逻辑运算符是用于测试 true 或 false 的操作符,它们在逻辑语句中使用,以确定变量或值是否相等。 比较运算符 比较运算符用于在逻辑语句中测定变量或值...
在JavaScript编程中,比较运算符用于比较两个值是否相等。其中,最常用的比较运算符是双等号“==”和三等号“===”。这两个运算符虽然看似相似,但它们在比较值时却有着本质的区别。了解它们的不同用法,对于编写高...
3. **逻辑运算符**:包括逻辑与 (&&)、逻辑或 (||) 和逻辑非 (!)。`024-逻辑运算符.html`中展示了如何使用这些运算符组合多个条件。 接下来,我们讨论JavaScript中的语句。语句是代码的基本单元,它们执行特定的...