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 相关文章推荐
javascript innerText和innerHtml应用
Jan 28 Javascript
jquery URL参数判断,确定菜单样式
May 31 Javascript
js中复制行和删除行的操作实例
Jun 25 Javascript
javascript中数组的concat()方法使用介绍
Dec 18 Javascript
js获取日期:昨天今天和明天、后天
Jun 11 Javascript
jQuery实现拖拽页面元素并将其保存到cookie的方法
Jun 12 Javascript
node网页分段渲染详解
Sep 05 Javascript
整理一下常见的IE错误
Nov 18 Javascript
详解照片瀑布流效果(js,jquery分别实现与知识点总结)
Jan 01 Javascript
jquery validation验证表单插件
Jan 07 Javascript
vue项目使用微信公众号支付总结及遇到的坑
Oct 23 Javascript
Vue中的基础过渡动画及实现原理解析
Dec 04 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检测数组长度函数sizeof与count用法
2014/11/17 PHP
php字符串替换函数substr_replace()用法实例
2015/03/17 PHP
php实现每天自动变换随机问候语的方法
2015/05/12 PHP
php使用CURL模拟GET与POST向微信接口提交及获取数据的方法
2016/09/23 PHP
iOS+PHP注册登录系统 PHP部分(上)
2016/12/26 PHP
Thinkphp事务操作实例(推荐)
2017/04/01 PHP
javascript异步编程的4种方法
2014/02/19 Javascript
jQuery的cookie插件实现保存用户登陆信息
2014/04/15 Javascript
全面了解addEventListener和on的区别
2016/07/14 Javascript
你不知道的 javascript【推荐】
2017/01/08 Javascript
详解支持Angular 2的表格控件
2017/01/19 Javascript
elementui的默认样式修改方法
2018/02/23 Javascript
Mac下安装vue
2018/04/11 Javascript
JavaScript生成指定范围随机数和随机序列的方法
2018/05/05 Javascript
vue 2.8.2版本配置刚进入时候的默认页面方法
2018/09/21 Javascript
javascript设计模式 ? 职责链模式原理与用法实例分析
2020/04/16 Javascript
解决vue init webpack 下载依赖卡住不动的问题
2020/11/09 Javascript
python基于queue和threading实现多线程下载实例
2014/10/08 Python
Python实现批量读取图片并存入mongodb数据库的方法示例
2018/04/02 Python
在Django的View中使用asyncio的方法
2019/07/12 Python
Python的形参和实参使用方式
2019/12/24 Python
Pycharm及python安装详细教程(图解)
2020/07/31 Python
python获取整个网页源码的方法
2020/08/03 Python
阿玛尼美妆加拿大官方商城:Giorgio Armani Beauty加拿大
2017/10/24 全球购物
伯克斯奥特莱斯:Burkes Outlet
2019/03/30 全球购物
游戏商店:Eneba
2020/04/25 全球购物
工厂总经理岗位职责
2014/02/07 职场文书
授权委托书范本
2014/04/03 职场文书
新品发布会策划方案
2014/06/08 职场文书
四风查摆问题及整改措施
2014/10/10 职场文书
个人贷款收入证明
2014/10/26 职场文书
初中优秀学生评语
2014/12/29 职场文书
离婚协议书范本
2015/01/26 职场文书
python爬虫请求库httpx和parsel解析库的使用测评
2021/05/10 Python
element多个表单校验的实现
2021/05/27 Javascript