说明

在JavaScript中,下面的值被当做假(false),除了下面列出的值,都被当做真(true):

  1. false

  2. null

  3. undefined

  4. 空字符串

  5. 数字 0

  6. NaN //属性是代表非数字值的特殊值。NaN 与所有值都不相等,包括它自己

NaN   ===  NaN     //false

!!NaN === !!NaN    //true

判断规则

  1. ==, 两边值类型不同的时候,要先进行类型转换,再比较。

  2. ===,不做类型转换,类型不同的一定不等。

恒等(===)

  1. 如果类型不同,就[不相等]

  2. 如果两个都是数值,并且是同一个值,那么[相等];(!例外)的是,如果其中至少一个是NaN,那么[不相等]。(判断一个值是否是NaN,只能用isNaN()来判断)

  3. 如果两个都是字符串,每个位置的字符都一样,那么[相等];否则[不相等]。

  4. 如果两个值都是true,或者都是false,那么[相等]。

  5. 如果两个值都引用同一个对象或函数,那么[相等];否则[不相等]。

  6. 如果两个值都是null,或者都是undefined,那么[相等]。

等号(==)

  1. 如果两个值类型相同,进行 === 比较。

  2. 如果两个值类型不同,他们可能相等。根据下面规则进行类型转换再比较:

    1. 如果一个是null、一个是undefined,那么[相等]。

    2. 如果一个是字符串,一个是数值,把字符串转换成数值再进行比较。

    3. 如果任一值是 true,把它转换成 1 再比较;如果任一值是 false,把它转换成 0 再比较。

    4. 如果一个是对象,另一个是数值或字符串,把对象转换成基础类型的值再比较。对象转换成基础类型,利用它的object.toString()或者object.valueOf()方法。

160822、关于javascrip ==(等号) 和===(恒等)判断的更多相关文章

  1. javascrip总结12:逻辑运算符与等号运算符

    1 逻辑运算符 逻辑运算的结果只有true 或者 false. 1.1 与&&: 两个表达式为true的时候,结果为true. 1.2 或|| 只要有一个表达式为true,结果为tru ...

  2. Kotlin入门(17)等式判断的情况

    话说等式可是编程语言最基本的表达式之一,不管哪种高级语言,无一例外都采用双等号“==”判断两个变量是否相等:就算是复杂的对象,在Java中也可通过equals函数判断两个实例是否相等.按理说这些能够满 ...

  3. js 逻辑运算符、等号运算符

    1 逻辑运算符 逻辑运算只有2个结果,一个为true,一个为false. 1.且&& ★ 两个表达式为true的时候,结果为true. ------------------------ ...

  4. tp3.2判断修改成功

    save方法的返回值是影响的记录数,如果返回false则表示更新出错,因此一定要用恒等来判断是否更新失败. 一开始用这种判断, if (!$edit_flag && $edit_fla ...

  5. javascript(脚本语言)

    javascript(脚本语言)一.注释语法:1.单行注释 //注释内容2.多行注释 /*注释内容*/二.输出语法js语言格式,尽量靠下写,属双标签<script type=”text/java ...

  6. JS DOM操作 函数 事件 阻止事件冒泡

    一 函数 1.字符串函数 s.tolowerCase( ):    -- 变小写 s.toupperCase( ):   -- 变大写 s.substr( 2 , 8 ):     -- 截取     ...

  7. ThinkPhp 3.2 CRUD操作

    创建数据对象 ThinkPHP可以帮助你快速地创建数据对象,最典型的应用就是自动根据表单数据创建数据对象,这个优势在一个数据表的字段非常之多的情况下尤其明显. 很简单的例子: // 实例化User模型 ...

  8. SWFUpload简介及中文参考手册(share)

    SWFUpload SWFUpload 版本 2 概览 (Overview) 入门( Getting Started) js对象 (SWFUpload JavaScript Object) 构造器(C ...

  9. Thinkphp 整理备忘 杂记

    1:输出变量函数  (手册目录:控制器-输出变量) I('变量类型.变量名',['默认值'],['过滤方法'],['额外数据源']) 例:$title = I('post.title','','str ...

随机推荐

  1. Centos6.2上做nginx和tomcat的集成及负载均衡(已实践)

    Centos6.2上做nginx和tomcat的集成及负载均衡 ---------------------------------------------------------Jdk-------- ...

  2. lua_pcall,lua_call 调用前后栈情况

    lua_pcall和lua_call功能一样,只是lua_pcall提供了一个可以提供错误处理函数的功能 首先压入函数 ,再依次压入参数,现在你就可以调用lua_call了,函数调用后将参数,函数都弹 ...

  3. .net中数据缓存使用

    今天 遇到一个问题 访问一个接口数据 基本上是固定的,于是想把数据 缓存下来...于是版本1 诞生了 private static ConcurrentDictionary<int, List& ...

  4. PHP经常使用正則表達式汇总

    1.    平时做站点常常要用正則表達式,以下是一些解说和样例,仅供大家參考和改动使用:  2.    "^\d+$" //非负整数(正整数 + 0)  3.    "^ ...

  5. atitit.跨语言执行cmd cli api的原理及兼容性设计草案

    atitit.跨语言执行cmd cli api的原理及兼容性设计草案 1. 标准输入,标准输出,标准错误与重新定向1 2. 常见问题2 2.1. 执行bat文件2 2.2. 执行bat文件  /c   ...

  6. FPGA和DSP间基于SRIO的高速通信系统设计

    作者:陈婷,岳强,汪洋 解放军信息工程大学 摘要: 现代信号处理系统通常需要在不同处理器之间实现高速数据通信,SRIO协议由于高效率.低延时的特性被广泛使用.本文研究了在FPGA和DSP两种处理器之间 ...

  7. 网页webbrowser

    http://www.codeproject.com/Articles/50544/Using-the-WebBrowser-Control-in-ASP-NET/

  8. js实现div闪烁-------Day46

    近期在学着用easyui,发现框架用起来果然是方便简洁,能弄出这框架的都是大神级别了吧,牛啊.... 今天碰到这个应用能够说是让我很之无语,整出源代码来一看就明确了.可之前却还是感觉很奇妙,我也经常告 ...

  9. HttpClient如何 关闭连接(转)

    ava代码 HttpClient client = new HttpClient(); HttpMethod method = new GetMethod("http://www.apach ...

  10. 125. Valid Palindrome【easy】

    125. Valid Palindrome[easy] Given a string, determine if it is a palindrome, considering only alphan ...