▓▓▓▓▓▓ 大致介绍

  ECMAScript中有5中简单的数据类型(也称为基本数据类型):Undefined、Null、Boolean、Number、String。

  

▓▓▓▓▓▓ Undefined

  Undefined时全局变量的一个属性,它只有一个值即:undefined。当使用var声明变量但未对其初始化时,这个变量的值就是undefined。

        var test;
console.log(test); //undefined

  对于未声明过的变量只能进行一种操作,即typeof检测其数据类型

        //var a
console.log(typeof a); //undefined

  undefined通常出现的场景:

    1、已经声明但未赋值的变量

    2、typeof检测未声明的变量的数据类型

    3、没有返回值的函数的执行结果

    4、函数没有传入参数

    5、void(expression)

        //1、
var test;
console.log(test); //undefined //2、
//var a
console.log(typeof a); //undefined //3、
function f(){}
console.log(f()); //undefined //4、
function f(x){
return x;
}
console.log(f()); //undefined //5、
console.log(void(0)); //undefined

  严格相等和undefined

  可以使用严格相等和不相等来检测一个变量是否拥有值

         var x ;

        if(x === undefined){
console.log(1);
}else{
console.log(2);
}

  注意:这里要用严格相等,因为 null == undefined

  void操作符和undefined

  可以用void操作符来代替undefined

         var x ;

        if(x === void(0)){
console.log(1);
}else{
console.log(2);
}

▓▓▓▓▓▓ Null

  Null类型是第二个只有一个值的数据类型,这个特殊的值是null。从逻辑的角度看,null值表示一个空对象的指针。null常被放在期望一个对象,但不引用任何对象的参数位置。

        console.log(document.getElementById('ol')); //null

 

 注意:

        console.log(typeof null); //object

  产生这样的原因就如前面所说,null值表示一个空对象的指针,用typeof检测数据类型,肯定就是object

  从最底层讲不同的对象在底层都表示为二进制,在javascript中二进制前三位都为0会被判断为object类型,null的二进制表示是全0,所以执行typeof时返回'object'

 

  null和undefined

  null和undefined时不同的,但是他们都表示空值,null表示“空值”,undefined表示“未定义”。

        typeof null        // object
typeof undefined // undefined
null === undefined // false
null == undefined // true
null === null // true
null == null // true
!null //true
isNaN(1 + null) // false
isNaN(1 + undefined) // true

▓▓▓▓▓▓ Boolean

  Boolean类型是ECMAScript中使用最多的一种类型,该类型只有两个字面值:true和false

  注意:Boolean类型的字面值true和false是区分大小写的

  虽然Boolean类型的字面值只有两个,但是ECMAScript中所有的类型的值都有与这两个Boolean值等价的值。要将一个值转换为对应的Boolean值,可以调用转型函数Boolean()

        var message = 'hello world';
var messageBoolean = Boolean(message);
console.log(messageBoolean); //true

  转换表:

字符串 数字 布尔值
undefined "undefined" NaN false
null  “null”  0  false
true  “true”  1  
false  “false”  0  
""空字符串    0  
"1.2" 非空,数字    1.2  
"o" 非空,非数字      
 0  "0"    false
 -0 "0"    false 
 NaN  "NaN"   false 
 infinity  "infinity"   true 
-infinity   "infinity"   true 

参考资料:

  https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Null

  http://www.cnblogs.com/xiaohuochai/p/5665637.html

  JavaScript高级程序设计(第3版)第三章

JavaScript 基本类型值-Undefined、Null、Boolean的更多相关文章

  1. JavaScript基本类型值与引用类型值

    前言 JS变量可以用来保存两种类型的值:基本类型值和引用类型值.基本类型的值源自一下5种基本数据类型:Underfined.Null.Boolean.Number和String. 基本类型值和引用类型 ...

  2. javascript中的undefined,null,"",0和false的云集

    在各种各样的数据类型中,我们都会为其定义一个"空值"或"假值",比如对象类型的空值null,.NET Framework中数据库字段的空值DBNull,bool ...

  3. JavaScript 基本类型值-Number类型

    ▓▓▓▓▓▓ 大致介绍 在JavaScript的内部采用IEEE754格式来表示数字,所以不区分整数和浮点数,都是用64位浮点数的形式储存.就是说,在JavaScript内部,就根本没有小数.但是有些 ...

  4. JavaScript 基本类型值-String类型

    ▓▓▓▓▓▓ 大致介绍 String类型用于表示由零或多个16位Unicode字符组成的字符序列,即字符串.在JavaScript中没有单个的字符型,都是字符串.字符型就相当于只包含一个字符的字符串. ...

  5. JavaScript中的Undefined / Null 类型相关说明

    1,综述: ※Undefined 和 Null是JavaScript中的两种数据类型(其他的类型还有:Boolean, String, Number, Object). ※Undefined类型只有一 ...

  6. 第一百零七篇:基本数据类型(undefined,null,boolean类型)

    好家伙, 本篇内容为<JS高级程序设计>第三章学习笔记 1.数据类型 ECMAScript有6种简单数据类型(称为原始类型): Undefined, Null, Boolean, Numb ...

  7. javascript检测基本类型值或引用类型值的类型方法

    首先javascript的数据类型分为两种数据类型:基本数据数据类型和引用数据类型 基本数据类型:Number,String,Boolean,Undefined,Null.原始值,是简单的数据段,可按 ...

  8. 悟透Javascript undefined,null,"",0这四个值转换为逻辑值时就是false &this关键字

    话题一:undefined,null,"",0这四个值转换为逻辑值时就是false 也就是在if判断时会把上面的五个作为false来判断.但是它们的类型确是不尽相同的,如下所示. ...

  9. JavaScript 中的undefined and null 学习

    JavaScript 中的undefined and null learn record from the definitive guide to html5 JavaScript 中有两个特殊值:u ...

随机推荐

  1. 用74HC165读8个按键状态(转)

    源:用74HC165读8个按键状态 //-------------------------------------------------------------------------- //来源: ...

  2. 关于浏览器和HTTP协议

    关于浏览器 浏览器的主要功能就是向服务器发出请求,在浏览器窗口中展示想要访问的网络资源.这里资源一般是指 HTML 文档,图片等其他的类型.资源的位置由用户使用 URL(统一资源标示符)指定. 而浏览 ...

  3. 内网服务器启动报错UNEXPECTED INCONSISTENCY解决方法

    一开始进入系统显示reboot and select proper boot device or insert boot media in selected boot device and press ...

  4. Php连接及读取和写入mysql数据库的常用代码

    在这里我总结了常用的PHP连接MySQL数据库以及读取写入数据库的方法,希望能够帮到你,当然也是作为我自己的一个回顾总结. 1.为了更好地设置数据连接,一般会将数据连接所涉及的值定义成变量. $mys ...

  5. iOS 之 内存管理

    凡是alloc copy mutablecopy init 声明的变量,都需要通过手动的方式进行释放,realse. 如果 copy一个对象,则拥有了拷贝的对象,要负责释放. 如果 保持(retain ...

  6. js模块化开发——require.js的实战写法1

    关于在Require.js使用一个JS插件的问题 我需要在项目中引用一个js控件,这个控件依赖于a.js,b.js,c.js,.....n.js N多个js以及jquery及jquery-ui,各js ...

  7. 国产数据库-KingbaseES在linux下的安装

    将KingbaseES软件从windows中传至Linux中并解压 [root@localhost ~]# ls anaconda-ks.cfg  install.log.syslog Desktop ...

  8. 介绍一个开源的在线管理SQLServer的小工具--SQLEntMan

    近来有许多人问起SQL在线管理的问题,遂将以前用过的一个开源SQL 在线管理工具修改了一下,并分享. 看下效果图: 原项目的地址:http://sourceforge.net/projects/asp ...

  9. JSP page指令

    JSP page指令: JSP文件: <%@ page language="java"%> <%@ page import="java.util.*&q ...

  10. 使用Flex4容器若干技巧

    本文适用于正在寻找使用Flex 4容器和布局的快速参考指南的开发人员. 尽管这不一定是一个复杂问题,但这似乎是许多开发人员的挫折的来源,特别是对于那些Flex刚刚入门的开发人员. 当开发人员不知道如何 ...