JavaScript比较运算
2016-02-18 17:08
471 查看
等值检测
等值检测的目的在于判断两个变量是否相同或相等。我们说相同与不相同,是指运算符“===”和“!==”的运算效果;说相等与不相等,是指运算符“==”和“!=”的运算效果。我们可以用个表格来表示:
名称 | 运算符 | 说明 |
---|---|---|
相等 | == | 比较两个表达式,看是否相等 |
不等 | != | 比较两个表达式,看是否不相等 |
严格相等 | === | 比较两个表达式,看值是否相等并具有相同的数据类型 |
不严格相等 | !== | 比较两个表达式,看是否具有不相等的值或数据类型不同 |
等值检测中相等运算规则
类型 | 运算规则 |
---|---|
两个值类型进行比较 | 转换成相同数据类型的值进行数据等值比较 |
值类型与引用类型比较 | 将引用类型的数据转换为值类型,再进行数据等值比较 |
两个引用类型比较 | 比较引用的地址 |
等值检测中相同运算规则
类型 | 运算规则 |
---|---|
两个值类型进行比较 | 数据类型不同,则必然不相同 数据类型相同时,进行数值等值比较 |
值类型与引用类型比较 | 必然不相同 |
两个引用类型比较 | 比较引用的地址 |
[javascript] view
plain copy
var str1 = new String("str");
var str2 = new String("str");
console.log(str1 == str2); // false
console.log(str1 === str2); // false
序列检测
序列检测这个概念咋一听很拗口,换个说法其实就是比较大小。比较的运算符有四个:>、>=、<、<=,意义不用说大家都明白。可以进行序列检测的数据类型有三种,boolean、string和number。它们的序列值如下表所示:
可比较序列的类型 | 序列值 |
---|---|
boolean | 0~1 |
string | 0~255(*注1) |
number | NEGATIVE_INFINITY~POSITIVE_INFINITY(*注2) |
*注2:表示负无穷到正无穷,实际上是有界限的,只不过这个界限达到了10^308级别(可以通过Number.MAX_VALUE查看),我们一般认为达不到。值NaN没有序列值,任何值(包括NaN本身)与NaN进行序列检测都将得到false
序列检测的运算规则如下表:
类型 | 运算规则 |
---|---|
两个值类型进行比较 | 直接比较数据在序列中的大小 |
值类型与引用类型比较 | 将引用类型的数据转换为值类型数据,再比较数据在序列中的大小 |
两个引用类型比较 | 无意义,总是返回false |
相关文章推荐
- 闭包 js
- JavaScript逻辑运算
- JavaScript位运算
- JavaScript赋值运算与数值运算
- JS实现1000以内被3或5整除的数字之和
- js 把字符串当函数执行的方法
- fastjson 的简单使用
- js常用正则表达式
- JavaScriptCore框架入门介绍
- 使用Jsoup抓取数据
- JSON认识
- 《JavaScript高级程序设计》读书笔记(五):BOM
- ajax 和jsonp 不是一码事 细读详解
- js Uncaught SyntaxError: Unexpected token错误
- Javascript关键字和保留字
- jstl与<%%>
- 服务端与客户端共用smarty模板技术
- <c:if>------JSTL
- Js基础知识梳理系列
- jsp下页面跳转的几种方法小结