Undefined/Null/Boolean数据类型
Typeof
操作符
检查数据类型的操作符
类型 | 表示 |
---|---|
Undefined
|
表示的值未定义; |
Null
|
表示的值为空 |
Boolean
|
表示的值为布尔值; |
String
|
表示的值为字符串; |
Number
|
表示的值为数值; |
Object
|
表示的值为对象或null; |
Function
|
表示的值为函数; |
Symbol
|
表示的值为符号。 |
typeof
操作符经常返回一些令人迷惑但在技术上又是正确的值。
console.log(typeof null);//Object
后面会有说这个原因。
let a = "Hello";
console.log(typeof a);//string 字符串类型
console.log(typeof (a));//string 字符串类型
这个括号可有可无,不影响输出的结果。
Undefined
类型
Undefined
类型只有一个值undefined
,var/let
声明变量后没有赋值,获得的就是undefined
。
var und;
console.log(typeof und);//undefined
但是没有声明的变量检查数据类型也是undefined
,但是只能进行这一项操作。进行其他操作就会报错(对它使用delete
也是不会报错的,但是没有实际用途)。
und
console.log(typeof und);//undefined
console.log(und);//报错
没有初始化的变量和没有声明的变量有着本质上的区别,但是实际上不管是那种变量都不可能进行真正的操作。
虽然未初始化的变量会自动获取到undefined
值,但是初始化变量对于我们来说依旧是最好的选择。这样在开发过程中就能更好的分辨那个是未初始化的变量和未声明的变量了。
Null
类型
Null
和undefined
一样,也是只有一个值的数据类型,null
。
console.log( null == undefined );//true
undefined
由null
派生而来。在==
情况下他们是返回true
的。但是他们的用途完全不一样。
let obj = null;
console.log(typeof obj);//Object
声明变量后赋值为null
,在检查类型中,返回的是Object
。
两个原因:
这是因为在逻辑上来说,
null
值表示的是一个空对象。这也是它返回Object
的原因。还有一个是早期
JavaScript
语法上的错误。一直没有修改。
两个都可以说是没有问题的。
undefined
有所不同,未初始化的值不必要赋值为undefined
,因为会自动获取到。
而null
就不一样,你只要知道你声明的变量是要用来保存对象的,但是但是你又没有那个变量,你i就可以先保存为null
。这也是相对应的null
为空对象。
Boolean
类型
Boolean
类型有两个字面量:true
和false
。
Boolean
类型可以说是ES(ECMAScript
)里面最用的类型之一。
console.log(true == 1);//true
console.log(false == 0);//true
console.log(true == 10);//false
console.log(false == 10);//false
true
和false
这两个字面量不同于数值,所以true
不等于1
,false
不等于0
。
至于他们两个都会返回true
,是因为1
可以转化为true
,0
可以转化为false
。这两个数值对于Boolean
类型 是有点特殊的。其他数值返回的都是false
。
什么数据类型都可以转换为Boolean
类型,而且始终返回一个布尔值。至于返回的是true
还是false
,就要看具体的数据类型和值。只要运用Boolean()
方法就可以转换布尔值了。
类型 |
true
|
false
|
---|---|---|
Boolean
|
true
|
false
|
Undefined
|
\ |
undefined
|
String
|
非空字符串 | 空字符串 |
Number
|
非零数值 |
0 ,NaN
|
Object
|
对象 |
null
|
console.log(Boolean(1));//true
console.log(Boolean(0));//false
这是手动转换的,还有一种是自动转换的。就是流程控制语句会自动转换为布尔值。
let str = "helllo";
if(str) console.log("Hello!");
上面的代码会输出“Hello!
”。因为str
引擎自动转换为布尔值true
,再进行判断。
个人见解和查找资料所写的笔记。
Undefined/Null/Boolean数据类型相关推荐
- 布尔型Boolean+undefined+null(JS)
布尔型Boolean+undefined+null(JS) <!DOCTYPE html> <html lang="en"><head>< ...
- 2022-JavaScript-过滤数组中的undefined,null,空串,NaN
2022-JavaScript-过滤数组中的undefined,null,空串,NaN let arr = [1,'',2,null,3,NaN,4,unfined,5,'',6] let arr1 ...
- YDOOK:Java: 获取 boolean Boolean 数据类型的默认值
YDOOK:Java: 获取 boolean Boolean 数据类型的默认值 © YDOOK JY Lin 文章目录 YDOOK:Java: 获取 boolean Boolean 数据类型的默认值 ...
- Boolean数据类型
Boolean数据类型 Boolean 变量存储为 16 位(2 个字节)的数值形式,但只能是 True 或是 False.Boolean 变量的值显示为 True 或 False(在使用 Print ...
- JavaScript的数据类型、null 和undefined、原始数据类型和引用数据类型等JavaScript基础知识总结
一.JavaScript里有哪些数据类型,解释清楚null 和undefined,解释清楚原始数据类型和引用数据类型.比如讲一下1 和Number(1)的区别 数据类型: undefined,没有定义 ...
- Javascript 中的非空判断 undefined,null, NaN的区别
JS 数据类型 在介绍这三个之间的差别之前, 先来看一下JS 的数据类型. 在 Java ,C这样的语言中, 使用一个变量之前,需要先定义这个变量并指定它的数据类型,是整型,字符串型,.... 但是 ...
- javascript中的undefined,null,,0和false的云集
在各种各样的数据类型中,我们都会为其定义一个"空值"或"假值",比如对象类型的空值null,.NET Framework中数据库字段的空值DBNull,bool ...
- 区分JavaScript中的undefined,null和NaN
区分underfined,null和NaN 先看看下面语句的运行结果: 1: var a; 2: alert(a); //显示"undefined" 3: alert(typeof ...
- sql 优化之关于null 和数据类型
避免使用不兼容的数据类型: 例如float和INt.char和varchar.bINary和varbINary是不兼容的.数据类型的不兼容可能使优化器无法执行一些本来可以进行的优化操作.例如: SEL ...
最新文章
- a*算法的时间复杂度_算法基础——时间复杂度amp;空间复杂度
- 关于startActivityForResult
- 实战SSM_O2O商铺_26【商品类别】批量新增商品类别从Dao到View层的开发
- 研究 Dubbo 网卡地址注册时的一点思考
- Liferay –简单主题开发
- python redis模块connectionerror_ConnectionError:Error 2连接到Python/Django Redis中的unix套接字...
- Python SQLite教程
- P2046 [NOI2010]海拔
- SQL语句基本增删改查操作总结
- android 跳转公众号,app直接跳转公众号
- 计算机网络和现场总线的区别,现场总线系统的特点和组成
- 最全面贴片电阻知识,封装、尺寸、最大承受功率及选型统统包括-电子技术方案|电路图讲解
- Windows 11 (updated Dec 2021) 简体中文版、英文版(64-bit、ARM64)下载(2022 年 1 月发布)
- 给 Android 开发者的 Gradle 入门指南
- springboot-mybatis集成 使用逆向工程
- 中兴手机可以刷鸿蒙系统吗,中兴:今年无计划使用华为鸿蒙系统
- uniapp引用外部js_Uniapp怎么引入外部js
- 《推荐算法工程师培养计划》
- 一文读懂CRNN+CTC文字识别
- 证件照片如何换背景底色,3个免费制作证件照的方法,简单易学