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 相关文章推荐
判断一个对象是否为jquery对象的方法
Mar 12 Javascript
Bootstrap每天必学之下拉菜单
Nov 25 Javascript
在JavaScript中使用JSON数据
Feb 15 Javascript
原生JS封装ajax 传json,str,excel文件上传提交表单(推荐)
Jun 21 Javascript
AngularJS equal比较对象实例详解
Sep 14 Javascript
JS类的定义与使用方法深入探索
Nov 26 Javascript
JavaScript字符集编码与解码详谈
Feb 02 Javascript
基于jQuery实现文字打印动态效果
Apr 21 jQuery
Vue使用Canvas绘制图片、矩形、线条、文字,下载图片
Apr 26 Javascript
详解Vue底部导航栏组件
May 02 Javascript
Javascript原生ajax请求代码实例
Feb 20 Javascript
Vue项目页面跳转时浏览器窗口上方显示进度条功能
Mar 26 Javascript
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
如何使用PHP获取网络上文件
2006/10/09 PHP
php错误提示failed to open stream: HTTP request failed!的完美解决方法
2011/06/06 PHP
php图片处理函数获取类型及扩展名实例
2014/11/19 PHP
php实现只保留mysql中最新1000条记录
2015/06/18 PHP
PHP之预定义接口详解
2015/07/29 PHP
Yii2中cookie用法示例分析
2016/07/18 PHP
PHP控制反转(IOC)和依赖注入(DI)
2017/03/13 PHP
PHP Socket网络操作类定义与用法示例
2017/08/30 PHP
PHP使用两个栈实现队列功能的方法
2018/01/15 PHP
jquery动画4.升级版遮罩效果的图片走廊--带自动运行效果
2012/08/24 Javascript
javascript中全局对象的parseInt()方法使用介绍
2013/12/19 Javascript
让人蛋疼的JavaScript语法特性
2014/09/30 Javascript
JS+CSS实现精美的二级导航效果代码
2015/09/17 Javascript
超实用的JavaScript代码段 附使用方法
2016/05/22 Javascript
用JS实现图片轮播效果代码(一)
2016/06/26 Javascript
Vuejs第七篇之Vuejs过渡动画案例全面解析
2016/09/05 Javascript
angular-cli修改端口号【angular2】
2017/04/19 Javascript
vue环境搭建简单教程
2017/11/07 Javascript
nodejs 日志模块winston的使用方法
2018/05/02 NodeJs
vue中的provide/inject的学习使用
2018/05/09 Javascript
Vue中用props给data赋初始值遇到的问题解决
2018/11/27 Javascript
js实现ATM机存取款功能
2020/10/27 Javascript
vue实现购物车的监听
2020/04/20 Javascript
使用jquery实现轮播图效果
2021/01/02 jQuery
python 动态获取当前运行的类名和函数名的方法
2014/04/15 Python
Python日志模块logging简介
2015/04/13 Python
浅谈python中的实例方法、类方法和静态方法
2017/02/17 Python
python3判断url链接是否为404的方法
2018/08/10 Python
Flask框架web开发之零基础入门
2018/12/10 Python
Python持续监听文件变化代码实例
2020/07/22 Python
一篇文章教你用python画动态爱心表白
2020/11/22 Python
母亲节演讲稿范文
2014/01/02 职场文书
幼儿园门卫岗位职责范本
2014/07/02 职场文书
教师竞聘上岗演讲稿
2014/09/03 职场文书
阿凡达观后感
2015/06/10 职场文书
python编写五子棋游戏
2021/05/25 Python