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特殊函数(Function()构造函数、函数直接量)区别介绍
May 19 Javascript
JQuery操作三大控件(下拉,单选,复选)的方法
Aug 06 Javascript
jquery操作复选框(checkbox)的12个小技巧总结
Feb 04 Javascript
JS实现灵巧的下拉导航效果代码
Aug 25 Javascript
jQuery+css实现的切换图片功能代码
Jan 27 Javascript
bootstrap timepicker在angular中取值并转化为时间戳
Jun 13 Javascript
详解微信小程序 template添加绑定事件
Jun 23 Javascript
jQuery实现可兼容IE6的遮罩功能详解
Sep 19 jQuery
通过vue-router懒加载解决首次加载时资源过多导致的速度缓慢问题
Apr 08 Javascript
微信小程序如何调用新闻接口实现列表循环
Jul 02 Javascript
webpack的 rquire.context用法实现工程自动化的方法
Feb 07 Javascript
vue 在单页面应用里使用二级套嵌路由
Dec 19 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
php mysql Errcode: 28 终极解决方法
2009/07/01 PHP
ThinkPHP3.0略缩图不能保存到子目录的解决方法
2012/09/30 PHP
php解析mht文件转换成html的实例
2017/03/13 PHP
PHP命名空间与自动加载机制的基础介绍
2019/08/25 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
2020/02/16 PHP
javascript下arguments,caller,callee,call,apply示例及理解
2009/12/24 Javascript
jqTransform form表单美化插件使用方法
2012/07/05 Javascript
给应用部分的js代码设定一个统一的入口
2014/06/15 Javascript
JavaScript实现在标题栏上显示当前日期的方法
2015/03/19 Javascript
JavaScript操作DOM元素的childNodes和children区别
2015/04/01 Javascript
avalonjs制作响应式瀑布流特效
2015/05/06 Javascript
简介JavaScript中toTimeString()方法的使用
2015/06/12 Javascript
jQuery根据name属性进行查找的用法分析
2016/06/23 Javascript
JavaScript实现窗口抖动效果
2016/10/19 Javascript
微信小程序 本地存储及登录页面处理实例详解
2017/01/11 Javascript
javaScript基础详解
2017/01/19 Javascript
Vue3.0中的monorepo管理模式的实现
2019/10/14 Javascript
Vue实现仿iPhone悬浮球的示例代码
2020/03/13 Javascript
Python基础语言学习笔记总结(精华)
2017/11/14 Python
VSCode下配置python调试运行环境的方法
2018/04/06 Python
Python生成器定义与简单用法实例分析
2018/04/30 Python
浅谈Pycharm调用同级目录下的py脚本bug
2018/12/03 Python
举例讲解Python常用模块
2019/03/08 Python
Python闭包和装饰器用法实例详解
2019/05/22 Python
Python识别快递条形码及Tesseract-OCR使用详解
2019/07/15 Python
Django中自定义模型管理器(Manager)及方法
2019/09/23 Python
django inspectdb 操作已有数据库数据的使用步骤
2021/02/07 Python
CSS3实现超酷的黑猫警长首页
2016/04/26 HTML / CSS
HTML5 FormData 方法介绍以及实现文件上传示例
2017/09/12 HTML / CSS
解锁canvas导出图片跨域的N种姿势小结
2019/01/24 HTML / CSS
以特惠价提供在线奢侈品购物:FRMODA.com
2018/01/25 全球购物
美国购买当代和现代家具网站:MODTEMPO
2018/07/20 全球购物
《悯农》教学反思
2014/04/28 职场文书
上海世博会志愿者口号
2014/06/17 职场文书
学会用Python实现滑雪小游戏,再也不用去北海道啦
2021/05/20 Python
MySQL开启事务的方式
2021/06/26 MySQL