1

1

1

=== 全相等(全部相等)

==  值相等(部分相等)

demo:

var x=0;
undefined
var y=false;
undefined
if(x===y){
console.log("all equal!")
}else if(x==y){
console.log("just value equal!")
}else{
onsole.log("not at all equal!")
}
VM3163:1 just value equal!

1

 null == undefined

 true == 1 == "1"

 false == 0 == ""

 "" + ? == "?" (anything)

 null (value) == 0   (仅当 null + 数字时,成立!)

false+0;// false==0
0
true+0;// true==1
1

0+undefined;
NaN
0+null;// null (value)==0; null==0; false
0
0+NaN;
NaN

1+undefined;
NaN
1+null;// null (value)==1; null==0; false
1
1+NaN;
NaN

NaN+"";
"NaN"
null+"";
"null"
undefined+"";
"undefined"

true+"";
"true"
false+"";
"false"

typeof null;
"object"

typeof NaN;
"number"

typeof undefined;
"undefined"

typeof false;
"boolean"

typeof true;
"boolean"

typeof "";
"string"

typeof 0;
"number"

1

1

1

1

1

x

undefined==null;
true
NaN==null;
false
NaN==undefined;
false
<script>
var a;
if(a==undefined) alert('undefined');//true
if(a==null) alert('null');//true
if(null==NaN) alert('NaN=null');//undefined
if(undefined==NaN) alert('NaN=undefined');//undefined
if(NaN) alert('NaN');//undefined
</script>
null==0;
false
null===0;
false
undefined==0;
false
undefined===0;
false
null==undefined;
true
null===undefined;
false
<script>
var a=null;//(0/false)
var b=undefined;//(false)
var c = 7 ;
alert('undefined+null='+(a+b));//NaN
alert('c+null='+(a+c));//7
alert('c+undefined='+(b+c));//NaN
</script> chrome 测试结果!
个人认为:
null 的取值是(0/false),
undefined 的取值是(false/NaN)。
null==0;
false
null===0;
false
undefined
undefined
undefined==0;
false
undefined===0;
false
null==false;
false
undefined==false;
false
NaN==0;
false
NaN==false;
false
typeof NaN;
"number"
NaN==undefined;
false
typeof null;
"object"
typeof undefined;
"undefined"

false == 0, true == 1

null+false;
0
undefined+false;
NaN
NaN+false;
NaN
NaN+null;
NaN
false+false;
0
false+true;
1
true+true;
2
null+true;
1
undefined+true;
NaN
NaN+true;
NaN
false==0;
true
false===0;
false
true==1;
true
true===1;
false
0==false;
true
0===false;
false
1==true;
true
1===true;
false

1

1

//前端JS blogs:

<!-- http://www.ruanyifeng.com/blog/2014/03/undefined-vs-null.html -->
<!-- http://yanhaijing.com/javascript/2014/01/05/exploring-the-abyss-of-null-and-undefined-in-javascript/ --> //前端JS试题: <!-- https://github.com/N-ZOO/everycode/issues/13 -->
        <script>
var a;
if(a==undefined) alert('undefined');//true
if(a==null) alert('null');//true
if(null==undefined) alert('null==undefined');//true
if(undefined==null) alert('undefined==null');//true
var b =5 ;
alert('b+undefined=||b+null='+(a+b));//NaN
</script>
<script>
var a = null;//(0/false)
var b = undefined;//(false)
var c = 7;
var x;
alert('undefined+null='+(a+b));//NaN
alert('c+null='+(a+c));//7
alert('c+undefined='+(b+c));//NaN
if(x==undefined) alert('undefined');//true
if(x==null) alert('null');//true
if(null==NaN) alert('NaN=null');//undefined
if(undefined==NaN) alert('NaN=undefined');//undefined
if(NaN) alert('NaN');//undefined
</script>

1

1

1

1

1

1

1

1

=== 与 == 区别?

使用 === 判断 两个变量是否完全相等

== 可能会导致,判断错误[code=javascript]

//使用 === 判断 两个变量是否完全相等
//== 可能会导致,判断错误 (undefined == 0)
//false
(null == 0)
//false
(null+1)
//1
(undefined+1)
//NaN
(undefined===null)
//false
(undefined==null)
//true

1

1

1

var a;
undefined
a==null;
true
a==undefined;
true
a===null;
false
a===undefined;
true a=0;
0
a===undefined;
false
a==undefined;
false
a===null;
false
a==null;
false a
0
a+null;
0
a+undefined;
NaN
a+NaN;
NaN a
1
a+NaN;
NaN
a+undefined;
NaN
a+null;
1 null==0;
false
null===0;
false
undefined==0;
false
undefined===0;
false
null==undefined;
true
null===undefined;
false

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

你所不知道的 JS: null , undefined, NaN, true==1=="1",false==0=="",null== undefined的更多相关文章

  1. 你所不知道的js的小知识点(1)

    1.js调试工具 debugger <div class="container"> <h3>debugger语句会产生一个断点,用于调试程序,并没有实际功能 ...

  2. js值----你所不知道的JavaScript系列(6)

    1.数组 在 JavaScript 中,数组可以容纳任何类型的值,可以是字符串.数字.对象(object),甚至是其他数组(多维数组就是通过这种方式来实现的) .----<你所不知道的JavaS ...

  3. js类型----你所不知道的JavaScript系列(5)

    ECMAScirpt 变量有两种不同的数据类型:基本类型,引用类型.也有其他的叫法,比如原始类型和对象类型等. 1.内置类型 JavaScript 有七种内置类型: • 空值(null) • 未定义( ...

  4. 你所不知道的setTimeout

    JavaScript提供定时执行代码的功能,叫做定时器(timer),主要由setTimeout()和setInterval()这两个函数来完成.它们向任务队列添加定时任务.初始接触它的人都觉得好简单 ...

  5. 闭包----你所不知道的JavaScript系列(4)

    一.闭包是什么? · 闭包就是可以使得函数外部的对象能够获取函数内部的信息. · 闭包是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分. · 闭包就 ...

  6. 关于setTimeout()你所不知道的地方,详解setTimeout()

    关于setTimeout()你所不知道的地方,详解setTimeout() 前言:看了这篇文章,1.注意setTimeout引用的是全部变量还是局部变量了,当直接调用外部函数方法时,实际上函数内部的变 ...

  7. JavaScript中你所不知道的Object(二)--Function篇

    上一篇(JavaScript中你所不知道的Object(一))说到,Object对象有大量的内部属性,而其中多数和外部属性的操作有关.最后留了个悬念,就是Boolean.Date.Number.Str ...

  8. Android Context完全解析,你所不知道的Context的各种细节

    Context相信所有的Android开发人员基本上每天都在接触,因为它太常见了.但是这并不代表Context没有什么东西好讲的,实际上Context有太多小的细节并不被大家所关注,那么今天我们就来学 ...

  9. 你所不知道的 CSS 阴影技巧与细节 滚动视差?CSS 不在话下 神奇的选择器 :focus-within 当角色转换为面试官之后 NPOI 教程 - 3.2 打印相关设置 前端XSS相关整理 委托入门案例

    你所不知道的 CSS 阴影技巧与细节   关于 CSS 阴影,之前已经有写过一篇,box-shadow 与 filter:drop-shadow 详解及奇技淫巧,介绍了一些关于 box-shadow  ...

随机推荐

  1. Jmeter-插件扩展及性能监控插件的安装

    需要对http服务进行大数据量的传值测试:看看产品中的http服务,能支持传多少字符:目标值是希望能到10w+: 上次测试中,服务器总是内存满导致服务不响应,因此想增加对服务端的性能监控:查阅了smi ...

  2. 向HDFS中指定的文件追加内容,由用户指定内容追加到原有文件的开头或结尾。

    1 import java.io.FileInputStream; 2 import java.io.IOException; 3 import java.text.SimpleDateFormat; ...

  3. Hash Array Mapped Trie

    Hash Array Mapped Trie   Python\hamt.c

  4. Python学习【第9篇】:python中的局部变量与全局变量

    1.全局变量 全局变量定义后可被下面所有函数进行调用 例子: name = "xiao"def chang_name(): print("chang_name" ...

  5. 「THP3考前信心赛」解题报告

    目录 写在前面&总结: T1 T2 T3 T4 写在前面&总结: \(LuckyBlock\) 良心出题人!暴力分给了 \(120pts\) \(T1\) 貌似是个结论题,最后知道怎么 ...

  6. office提示“应用程序无法正常启动(0xc0000142)。请单击确认关闭应用程序”

    打开word文档,突然弹出如下提示框: 网上查询,说应用程序无法正常启动(0xc0000142)的原因可能是缺少组件导致的.控制面板 - 时钟和区域 - 更改日期.时间或数字格式 - 管理 - 更改系 ...

  7. Windows搭建TestLink环境

    环境准备: 搭建php5.4.39+apache2.2+mysq5.5.28l环境 (可参考http://www.cnblogs.com/yangxia-test/p/4414161.html) (注 ...

  8. jvm 总体梳理

    jvm 总体梳理 1.类的加载机制 1.1什么是类的加载 1.2类的生命周期 1.3类加载器 1.4类加载机制 2.jvm内存结构 JVM内存模型 2.1jvm内存结构 2.2对象分配规则 3.GC算 ...

  9. linux(6)查看进程ps命令

    ps命令 Linux ps (英文全拼:process status)命令用于显示当前进程的状态,类似于 windows 的任务管理器 查看所有进程 ps -A 显示所有进程信息,连同命令行 ps - ...

  10. Hive 中日志的存放位置

    目前hive启动无法成功,想查看下hive的日志定位问题,但发现hive的安装目录下并没有hive的日志,后来经过在网上谷歌发现: Hive中的日志分为两种 系统日志,记录了hive的运行情况,错误状 ...