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 |
参考资料:
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Null
http://www.cnblogs.com/xiaohuochai/p/5665637.html
JavaScript高级程序设计(第3版)第三章
JavaScript 基本类型值-Undefined、Null、Boolean的更多相关文章
- JavaScript基本类型值与引用类型值
前言 JS变量可以用来保存两种类型的值:基本类型值和引用类型值.基本类型的值源自一下5种基本数据类型:Underfined.Null.Boolean.Number和String. 基本类型值和引用类型 ...
- javascript中的undefined,null,"",0和false的云集
在各种各样的数据类型中,我们都会为其定义一个"空值"或"假值",比如对象类型的空值null,.NET Framework中数据库字段的空值DBNull,bool ...
- JavaScript 基本类型值-Number类型
▓▓▓▓▓▓ 大致介绍 在JavaScript的内部采用IEEE754格式来表示数字,所以不区分整数和浮点数,都是用64位浮点数的形式储存.就是说,在JavaScript内部,就根本没有小数.但是有些 ...
- JavaScript 基本类型值-String类型
▓▓▓▓▓▓ 大致介绍 String类型用于表示由零或多个16位Unicode字符组成的字符序列,即字符串.在JavaScript中没有单个的字符型,都是字符串.字符型就相当于只包含一个字符的字符串. ...
- JavaScript中的Undefined / Null 类型相关说明
1,综述: ※Undefined 和 Null是JavaScript中的两种数据类型(其他的类型还有:Boolean, String, Number, Object). ※Undefined类型只有一 ...
- 第一百零七篇:基本数据类型(undefined,null,boolean类型)
好家伙, 本篇内容为<JS高级程序设计>第三章学习笔记 1.数据类型 ECMAScript有6种简单数据类型(称为原始类型): Undefined, Null, Boolean, Numb ...
- javascript检测基本类型值或引用类型值的类型方法
首先javascript的数据类型分为两种数据类型:基本数据数据类型和引用数据类型 基本数据类型:Number,String,Boolean,Undefined,Null.原始值,是简单的数据段,可按 ...
- 悟透Javascript undefined,null,"",0这四个值转换为逻辑值时就是false &this关键字
话题一:undefined,null,"",0这四个值转换为逻辑值时就是false 也就是在if判断时会把上面的五个作为false来判断.但是它们的类型确是不尽相同的,如下所示. ...
- JavaScript 中的undefined and null 学习
JavaScript 中的undefined and null learn record from the definitive guide to html5 JavaScript 中有两个特殊值:u ...
随机推荐
- onethink权限管理 RBAC
查看了官网的视频,写的不错. 大致熟悉了流程.这里打算自己动手写一个权限的控制
- StackExchange.Redis 官方文档(二) Configuration
配置 有多种方式可以配置redis,StackExchange.Redis提供了一个丰富的配置模型,在执行Connect (or ConnectAsync) 时被调用: var conn = Conn ...
- python 模块添加
python包含子目录中的模块方法比较简单,关键是能够在sys.path里面找到通向模块文件的路径.下面将具体介绍几种常用情况: (1)主程序与模块程序在同一目录下: 如下面程序结构:`-- src ...
- 闭包用法,延迟tab
var changeTab =( function () { var timeId = 0; return function (tabId) { if (timeId) { clearTimeout( ...
- Samba匿名用戶仅仅唯读访问
NAS(Network Attached Storage),网络附加存储需要支持NFS(Network File System)和CIFS(Common Internet File Sysem)一 ...
- ipyparallel 中的 pi的求法
1.PI的求法的数学依据 如图,可以看见在边长为1的正方形里面,有一个1/4圆,我们随机在正方形中取点,点在圆内的概率和点在正方形内的概率之比正好为两者的面积之比.这样就有在圆内的点的数目比所有点的数 ...
- Spring 之 配置(Java之负基础实战)
1.程序加入Spring <?xml version="1.0" encoding="utf-8"?> <web-app xmlns=&quo ...
- HBuilder mui引导页制作
http://www.bcty365.com/content-146-2582-1.html
- Angular - - $http请求服务
$http $http是Angular的一个核心服务,它有利于浏览器通过XMLHttpRequest 对象或者 JSONP和远程HTTP服务器交互. $HTTP API 是基于 $q服务暴露的defe ...
- java实现算术表达式求值
需要根据配置的表达式(例如:5+12*(3+5)/7.0)计算出相应的结果,因此使用java中的栈利用后缀表达式的方式实现该工具类. 后缀表达式就是将操作符放在操作数的后面展示的方式,例如:3+2 后 ...