话不多说直接进入主题:(如果有写的不对的地方欢迎指正)

我们先来看看他们的类型分别是什么:

typeof类型检测结果

结论:false是布尔类型对象,0是数字类型对象,null是object对象,undefined类型还是undefined,空字符串是字符串类型对象。

当你用==操作符将这个5个对象进行比较的时候,你会发现:

只有0、空字符串和false可以互相相等==,

而null和undefined和其他三个都不相等,

null和undefined是相等的。

结论:把0、空字符串和false归为一类,称为“假值”;把null和undefined归为一类,称为“空值”。假值还算一个有效的对象,因此可以对其使用toString等类型相关的方法,而空值则不行。下面的代码将会抛出异常:

虽然空值不能调用toString方法,但是却可以使用String构造函数进行构造。像decodeURI这样的函数,如果传入的是undefined或者null,返回的是“undefined”和“null”字符串。这点很容易用错。

在Javascript中,变量是通过var声明,=赋值符进行定义(初始化变量所指向的对象)。当然,如果声明一个全局变量(作为window属性)可以不使用var关键字。变量可以在声明的同时进行定义。其实,变量如果声明了但是没有初始化,那么Javascript引擎会将此变量自动指向undefined对象。

这里需要注意,我们在上面引用window.abcd时,弹出的是undefined;而直接引用abcd变量时,却抛出了一个异常。这是由于Javascript引擎对于没有显式指定对象链的变量,会尝试从最近的作用域开始查找变量,查找失败,则退到父级作用链进行查找。如果均查找失败,则抛出“变量未定义”的异常。

Javascript中那些你不知道的事之-- false、0、null、undefined和空字符串的更多相关文章

  1. 【转】Javascript 中的false,零值,null,undefined和空字符串对象

    js 开发中经常会碰到判断是否为空的情况,关于 null 和 undefined 的区别了解的不是很好,刚好看见这篇文章,转过来学习一下,以下是转载正文: 在Javascript中,我们经常会接触到题 ...

  2. Javascript 中的false,零值,null,undefined和空字符串对象

    在Javascript中,我们经常会接触到题目中提到的这5个比较特别的对象--false.0.空字符串.null和undefined.这几个对象很容易用错,因此在使用时必须得小心. 类型检测 我们下来 ...

  3. Js 中的false,零值,null,undefined和空字符串对象

    转自  http://www.imkevinyang.com/2009/07/javascript-中的false零值nullundefined和空字符串对象.html 在Javascript中,我们 ...

  4. 你所不知道的 JS: null , undefined, NaN, true==1=="1",false==0=="",null== undefined

    1 1 1 === 全相等(全部相等) ==  值相等(部分相等) demo: var x=0; undefined var y=false; undefined if(x===y){ console ...

  5. Javascript 中的false、0、null、undefined和空字符串对象

    在Javascript中,我们经常会接触到题目中提到的这5个比较特别的对象——false.0.空字符串.null和undefined.这几个对象很容易用错,因此在使用时必须得小心. 类型检测 我们下来 ...

  6. 0,null,undefined,[],{},'',false之间的关系

    0与一些虚值的比较: 0与false 0==false true 0与'': =='' true 0与[]: ==[] true 0与NaN: 0==NaN false 0与undefined 0== ...

  7. Oracle中的NULL、’’(空字符串)以及’_’(空格)

    本文首发于 http://youngzy.com/ 在Oracle中使用 null,''(空字符串),'_'(空格)时,有没有遇到问题?产生疑惑? null和’’(空字符串)是一个意思 注: 为了便于 ...

  8. JavaScript中如何理解如何理解Array.apply(null, {length:5})

    先来看一个问题: 如何理解Array.apply(null, {length:5})的{length:5}? 我测试过Array.apply(null, {length:5}) //返回[undefi ...

  9. ASP.NET Core WebApi 返回统一格式参数(Json 中 Null 替换为空字符串)

    相关博文:ASP.NET Core WebApi 返回统一格式参数 业务场景: 统一返回格式参数中,如果包含 Null 值,调用方会不太好处理,需要替换为空字符串,示例: { "respon ...

随机推荐

  1. 【JZOJ4861】【NOIP2016提高A组集训第7场11.4】推冰块

    题目描述 Dpstr最近迷上了推冰块.冰地是一个n行m列的网格区域,第i行第j列的格子记为(i,j),也就是左上角为(1,1),右下角为(n,m).每个格子可能是冰面.障碍物.减速带三者之一.其中,冰 ...

  2. nodeJs学习-11 multer中间件,解析post文件,上传文件

    const express=require('express'); const bodyParser=require('body-parser'); const multer=require('mul ...

  3. Chrome的使用技巧总结

    设置一>” 首先设置打开特定的网页 设置--> “下载位置” (Ctrl+H),快速查找自己浏览器访问网页的历史记录 (Ctrl+D),将目前认为比较好的网页保存. ctrl+t  新建标 ...

  4. Java练习 SDUT-2253_分数加减法

    分数加减法 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 编写一个C程序,实现两个分数的加减法 Input 输入包含多 ...

  5. 王坚十年前的坚持,才有了今天世界顶级大数据计算平台MaxCompute

    如果说十年前,王坚创立阿里云让云计算在国内得到了普及,那么王坚带领团队自主研发的大数据计算平台MaxCompute则推动大数据技术向前跨越了一大步. 数据是企业的核心资产,但十年前阿里巴巴的算力已经无 ...

  6. 瑞星推国内唯一Linux系统杀毒软件 国产操作系统还需国产安全软件保护

    近来在IT领域最爆炸的新闻莫过于5月20日中央国家机关政府採购中心下发通知.要求中央机关採购所有计算机类产品不同意安装Windows 8.而改用国产Linux操作系统. 此消息一出,立马引起各界关注. ...

  7. Firefox浏览器怎么安装adobe flash player插件

    https://jingyan.baidu.com/article/0a52e3f435d171bf62ed7237.html 有些朋友在使用Firefox火狐浏览器,但是火狐浏览器安装以后是没有fl ...

  8. oracle中的闪回

    项目中运用: 首先说明:闪回方法有一个前提,就是需要尽早的发现问题,果断的采取行动.若误操作的记录已经在UNDO表空间中被清除,则此方法就不可行了,需要另寻他法. 例如: SELECT * FROM ...

  9. saltStack_Pillar

    Pillar是Salt非常重要的一个组件,它用于给特定的minion定义任何你需要的数据,这些数据可以被Salt的其他组件使用.这里可以看出Pillar的一个特点,Pillar数据是与特定minion ...

  10. 中国剩余定理(SCAUOJ 1077)

    1077 韩信点兵 时间限制:500MS  内存限制:65536K提交次数:1103 通过次数:99 题型: 编程题   语言: 无限制 Description 相传汉高祖刘邦问大将军韩信统御兵士多少 ...