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调用父页面的方法
Oct 30 Javascript
JQuery实现展开关闭层的方法
Feb 17 Javascript
JavaScript与jQuery实现的闪烁输入效果
Feb 18 Javascript
javascript实现标签切换代码示例
May 22 Javascript
如何提高Dom访问速度
Jan 05 Javascript
微信小程序实现下拉菜单切换效果
Mar 30 Javascript
详解vue-router导航守卫
Jan 19 Javascript
微信小程序结合Storage实现搜索历史效果
May 18 Javascript
JS画布动态实现黑客帝国背景效果
Nov 08 Javascript
vue从后台渲染文章列表以及根据id跳转文章详情详解
Dec 14 Vue.js
教你一步步实现一个简易promise
Nov 02 Javascript
TypeScript 使用 Tuple Union 声明函数重载
Apr 07 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
Cappuccino 卡布其诺咖啡之制作
2021/03/03 冲泡冲煮
火车头采集器3.0采集图文教程
2007/03/17 PHP
PHP插入排序实现代码
2013/04/04 PHP
PHP正则匹配到2个字符串之间的内容方法
2018/12/24 PHP
laravel框架上传图片实现实时预览功能
2019/10/14 PHP
js innerHTML 的一些问题的解决方法
2008/06/22 Javascript
Jquery知识点二 jquery下对数组的操作
2011/01/15 Javascript
jquery中focus()函数实现当对象获得焦点后自动把光标移到内容最后
2013/09/29 Javascript
JavaScript类属性的访问方式详解
2014/02/11 Javascript
a标签的href与onclick事件的区别详解
2014/11/12 Javascript
jQuery插件imgPreviewQs实现上传图片预览
2016/01/15 Javascript
javascript原生ajax写法分享
2016/04/10 Javascript
JS在onclientclick里如何控制onclick的执行
2016/05/30 Javascript
JavaScript实现横线提示输入验证码随输入验证码输入消失的方法
2016/09/24 Javascript
Canvas实现放射线动画效果
2017/02/15 Javascript
使用vue.js编写蓝色拼图小游戏
2017/03/17 Javascript
JS使用插件cryptojs进行加密解密数据实例
2017/05/11 Javascript
微信小程序实现页面跳转传值的方法
2017/10/12 Javascript
Element UI框架中巧用树选择器的实现
2018/12/12 Javascript
详解jQuery如何实现模糊搜索
2019/05/10 jQuery
node.js中事件触发器events的使用方法实例分析
2019/11/23 Javascript
vue中使用elementUI组件手动上传图片功能
2019/12/13 Javascript
[49:35]KG vs SECRET 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
python编写爬虫小程序
2015/05/14 Python
学习python之编写简单乘法口诀表实现代码
2016/02/27 Python
Python实现获取nginx服务器ip及流量统计信息功能示例
2018/05/18 Python
Django admin model 汉化显示文字的实现方法
2019/08/12 Python
如何使用python进行pdf文件分割
2019/11/11 Python
python实现在多维数组中挑选符合条件的全部元素
2019/11/26 Python
python输入中文的实例方法
2020/09/14 Python
英国女士家居服网站:hush
2017/08/09 全球购物
英国性能汽车零件和发动机配件在线:Maxpeedingrods
2019/11/05 全球购物
管理信息系学生的自我评价
2014/01/11 职场文书
装饰公司活动策划方案
2014/08/23 职场文书
高中生学习计划书
2014/09/15 职场文书
写给医院的感谢信
2015/01/22 职场文书