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

 更新时间:2017年02月23日 14:24:29   作者:老板丶鱼丸粗面  
本文主要介绍了JavaScript基本类型值-Undefined、Null、Boolean的相关知识,具有很好的参考价值,下面跟着小编一起来看下吧

大致介绍

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 

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

相关文章

  • JS深度拷贝Object Array实例分析

    JS深度拷贝Object Array实例分析

    这篇文章主要介绍了JS深度拷贝Object Array,结合实例形式分析了JavaScript深度拷贝的原理,需要的朋友可以参考下
    2016-03-03
  • JS验证IP,子网掩码,网关和MAC的方法

    JS验证IP,子网掩码,网关和MAC的方法

    这篇文章主要介绍了JS验证IP,子网掩码,网关和MAC的方法,涉及javascript正则表达式的相关使用技巧,需要的朋友可以参考下
    2015-07-07
  • 微信小程序如何获取openid及用户信息

    微信小程序如何获取openid及用户信息

    这篇文章主要介绍了微信小程序如何获取openid及用户信息,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • javascript实现简单的省市区三级联动

    javascript实现简单的省市区三级联动

    本文给大家反映的是javascript实现的简单的省市区三级联动特效,不需要访问后台服务器端,不使用Ajax,无刷新,纯JS实现的省市区三级联动。当省市区数据变动是只需调正js即可。
    2015-05-05
  • js实现简单秒表走动的时钟特效

    js实现简单秒表走动的时钟特效

    这篇文章主要为大家详细介绍了js实现简单秒表走动的时钟特效,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2015-08-08
  • 关于JS数据类型检测的多种方式总结

    关于JS数据类型检测的多种方式总结

    Javascript中检查数据类型一直是老生常谈的问题,类型判断在web开发中也有着非常广泛的应用,所以下面这篇文章主要给大家介绍了关于JS数据类型检测的那些事,需要的朋友可以参考下
    2021-09-09
  • JS的反射问题

    JS的反射问题

    两个等号直接比较值,但是类型不能相互转换的时候报错
    2010-04-04
  • input获取焦点时底部菜单被顶上来问题的解决办法

    input获取焦点时底部菜单被顶上来问题的解决办法

    这篇文章主要介绍了解决input获取焦点时底部菜单被顶上来问题的方法,非常不错,具有参考借鉴价值,需要的的朋友参考下
    2017-01-01
  • 8个鲜为人知但很实用的Web API用法总结

    8个鲜为人知但很实用的Web API用法总结

    在 Web API 中,有非常有用的对象、属性和函数可用于执行小到访问 DOM 这样的小任务,大到处理音频、视频这样的复杂任务。下面就带大家一起来看看一些不常见但很实用的Web API的用法
    2022-08-08
  • 一文看懂如何简单实现节流函数和防抖函数

    一文看懂如何简单实现节流函数和防抖函数

    这篇文章主要给大家介绍了如何通过一文看懂简单实现节流函数和防抖函数的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09

最新评论