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 ...
随机推荐
- IOS开发-UI学习-UITabBarController的使用
UITabBarController具体实例如下图 我们最常见的就是微信最下面的四个按钮,通过这四个按钮可以导航到不同的界面. UITabBarController是一个容器,以下的例程中给UITab ...
- Java编译时出现No enclosing instance of type XXX is accessible.
今天在编译Java程序的时候出现以下错误: No enclosing instance of type Main is accessible. Must qualify the allocation ...
- MongoDB升级教程
1.排序 sort()方法:其中 1 为升序排列,而-1是用于降序排列. db.col.find({},{"title":1,_id:0}).sort({"likes&q ...
- 2016——3——16 kmp 7题
1.传送门:http://begin.lydsy.com/JudgeOnline/problem.php?id=2725 题目大意:找一个串在另一个串中出现的次数 题解:kmp(纯裸题) #inclu ...
- JAVA 遍历文件夹下的所有文件(递归调用和非递归调用)
JAVA 遍历文件夹下的所有文件(递归调用和非递归调用) 1.不使用递归的方法调用. public void traverseFolder1(String path) { int fileNum = ...
- spark 中的RDD编程 -以下基于Java api
1.RDD介绍: RDD,弹性分布式数据集,即分布式的元素集合.在spark中,对所有数据的操作不外乎是创建RDD.转化已有的RDD以及调用RDD操作进行求值.在这一切的背后,Spark会自动 ...
- iOS 之 获取View所在控制器
1. UIResponder UIViewController *uvc; UIResponder* nextResponder = [self.superview.superview.supervi ...
- 怎样看paper 最有效率
thinking more after reading. Don't just read the papers.in addition, at begining, you'd better focus ...
- iOS特性
iOS的特性是指附加的 readonly , nonmatic等设置
- 常见JS挂马方法及如何防止网站被黑客挂马?
最近有朋友说自己的网站平时并未作弊,文章也都是原创的,更新很稳定.可不知道为什么网站突然就被各大搜索引擎降权了,一直找不到原因.最后发现是网站被挂马了,导致网站被连累了.在此,借助马海祥博客的平台,给 ...