JavaScript基本类型值-Undefined、Null、Boolean


Posted in Javascript onFebruary 23, 2017

大致介绍

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 

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
JS中Iframe之间传值的方法
Mar 11 Javascript
写得不错的jquery table鼠标经过变色代码
Sep 27 Javascript
js对象转json数组的简单实现案例
Feb 28 Javascript
node.js中的emitter.emit方法使用说明
Dec 10 Javascript
实例讲解jQuery中对事件的命名空间的运用
May 24 Javascript
AngularJS  双向数据绑定详解简单实例
Oct 20 Javascript
详解使用vue脚手架工具搭建vue-webpack项目
May 10 Javascript
webpack 2.x配置reactjs基本开发环境详解
Aug 08 Javascript
Angular5中提取公共组件之radio list的实例代码
Jul 10 Javascript
详解Vue 换肤方案验证
Aug 28 Javascript
Node.js中文件系统fs模块的使用及常用接口
Mar 06 Javascript
vue中利用three.js实现全景图的完整示例
Dec 07 Vue.js
Javascript 链式作用域详细介绍
Feb 23 #Javascript
jQuery的三种bind/One/Live/On事件绑定使用方法
Feb 23 #Javascript
bootstrap weebox 支持ajax的模态弹出框
Feb 23 #Javascript
COM组件中调用JavaScript函数详解及实例
Feb 23 #Javascript
Bootstrap3 多个模态对话框无法显示的解决方案
Feb 23 #Javascript
Bootstrap modal 多弹窗之叠加显示不出弹窗问题的解决方案
Feb 23 #Javascript
JS实现的五级联动菜单效果完整实例
Feb 23 #Javascript
You might like
实用函数2
2007/11/08 PHP
php异常处理技术,顶级异常处理器
2012/06/13 PHP
CI操作cookie的方法分析(基于helper类库)
2016/03/28 PHP
微信企业转账之入口类分装php代码
2018/10/01 PHP
如何在一个页面显示多个百度地图
2013/04/07 Javascript
javascript抽象工厂模式详细说明
2014/12/16 Javascript
微信小程序实现导航栏选项卡效果
2020/06/19 Javascript
垃圾回收器的相关知识点总结
2018/05/13 Javascript
js中Generator函数的深入讲解
2019/04/07 Javascript
vue实现权限控制路由(vue-router 动态添加路由)
2019/11/04 Javascript
PHP 502bad gateway原因及解决方案
2020/11/13 Javascript
[03:18]【TI9纪实】社区大触GL与木木
2019/08/25 DOTA
[45:16]完美世界DOTA2联赛PWL S3 Magma vs Phoenix 第一场 12.12
2020/12/16 DOTA
pymongo为mongodb数据库添加索引的方法
2015/05/11 Python
python文件操作之目录遍历实例分析
2015/05/20 Python
Django接受前端数据的几种方法总结
2016/11/04 Python
WINDOWS 同时安装 python2 python3 后 pip 错误的解决方法
2017/03/16 Python
Python数据可视化编程通过Matplotlib创建散点图代码示例
2017/12/09 Python
对python以16进制打印字节数组的方法详解
2019/01/24 Python
python数组循环处理方法
2019/08/26 Python
使用Python的turtle模块画国旗
2019/09/24 Python
手把手教你进行Python虚拟环境配置教程
2020/02/03 Python
Jupyter Notebook折叠输出的内容实例
2020/04/22 Python
Python之变量类型和if判断方式
2020/05/05 Python
详解Python中第三方库Faker
2020/09/25 Python
使用HTML和CSS3绘制基本卡通图案的示例分享
2015/11/06 HTML / CSS
法定代表人授权委托书范本
2014/10/07 职场文书
见习报告怎么写
2014/10/31 职场文书
2014年检验员工作总结
2014/11/19 职场文书
团员个人总结
2015/02/26 职场文书
银行催款通知书
2015/04/17 职场文书
女方家长婚礼致辞
2015/07/27 职场文书
JavaScript中关于预编译、作用域链和闭包的理解
2021/03/31 Javascript
Nginx代理同域名前后端分离项目的完整步骤
2021/03/31 Servers
python读取pdf格式文档的实现代码
2021/04/01 Python
mysql查找连续出现n次以上的数字
2022/05/11 MySQL