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类型

Nullundefined一样,也是只有一个值的数据类型,null

console.log( null == undefined );//true

undefinednull派生而来。在==情况下他们是返回true的。但是他们的用途完全不一样。

let obj = null;
console.log(typeof obj);//Object

声明变量后赋值为null,在检查类型中,返回的是Object

两个原因:

  • 这是因为在逻辑上来说,null值表示的是一个空对象。这也是它返回Object的原因。

  • 还有一个是早期JavaScript语法上的错误。一直没有修改。

两个都可以说是没有问题的。

undefined有所不同,未初始化的值不必要赋值为undefined,因为会自动获取到。

null就不一样,你只要知道你声明的变量是要用来保存对象的,但是但是你又没有那个变量,你i就可以先保存为null。这也是相对应的null为空对象。

Boolean类型

Boolean类型有两个字面量:truefalse

Boolean类型可以说是ES(ECMAScript)里面最用的类型之一。

console.log(true == 1);//true
console.log(false == 0);//true
console.log(true == 10);//false
console.log(false == 10);//false

truefalse这两个字面量不同于数值,所以true不等于1false不等于0

至于他们两个都会返回true,是因为1可以转化为true0可以转化为false。这两个数值对于Boolean类型 是有点特殊的。其他数值返回的都是false

什么数据类型都可以转换为Boolean类型,而且始终返回一个布尔值。至于返回的是true还是false,就要看具体的数据类型和值。只要运用Boolean()方法就可以转换布尔值了。

类型 true false
Boolean true false
Undefined \ undefined
String 非空字符串 空字符串
Number 非零数值 0NaN
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数据类型相关推荐

  1. 布尔型Boolean+undefined+null(JS)

    布尔型Boolean+undefined+null(JS) <!DOCTYPE html> <html lang="en"><head>< ...

  2. 2022-JavaScript-过滤数组中的undefined,null,空串,NaN

    2022-JavaScript-过滤数组中的undefined,null,空串,NaN let arr = [1,'',2,null,3,NaN,4,unfined,5,'',6] let arr1 ...

  3. YDOOK:Java: 获取 boolean Boolean 数据类型的默认值

    YDOOK:Java: 获取 boolean Boolean 数据类型的默认值 © YDOOK JY Lin 文章目录 YDOOK:Java: 获取 boolean Boolean 数据类型的默认值 ...

  4. Boolean数据类型

    Boolean数据类型 Boolean 变量存储为 16 位(2 个字节)的数值形式,但只能是 True 或是 False.Boolean 变量的值显示为 True 或 False(在使用 Print ...

  5. JavaScript的数据类型、null 和undefined、原始数据类型和引用数据类型等JavaScript基础知识总结

    一.JavaScript里有哪些数据类型,解释清楚null 和undefined,解释清楚原始数据类型和引用数据类型.比如讲一下1 和Number(1)的区别 数据类型: undefined,没有定义 ...

  6. Javascript 中的非空判断 undefined,null, NaN的区别

    JS 数据类型 在介绍这三个之间的差别之前, 先来看一下JS  的数据类型. 在 Java ,C这样的语言中, 使用一个变量之前,需要先定义这个变量并指定它的数据类型,是整型,字符串型,.... 但是 ...

  7. javascript中的undefined,null,,0和false的云集

    在各种各样的数据类型中,我们都会为其定义一个"空值"或"假值",比如对象类型的空值null,.NET Framework中数据库字段的空值DBNull,bool ...

  8. 区分JavaScript中的undefined,null和NaN

    区分underfined,null和NaN 先看看下面语句的运行结果: 1: var a; 2: alert(a); //显示"undefined" 3: alert(typeof ...

  9. sql 优化之关于null 和数据类型

    避免使用不兼容的数据类型: 例如float和INt.char和varchar.bINary和varbINary是不兼容的.数据类型的不兼容可能使优化器无法执行一些本来可以进行的优化操作.例如: SEL ...

最新文章

  1. a*算法的时间复杂度_算法基础——时间复杂度amp;空间复杂度
  2. 关于startActivityForResult
  3. 实战SSM_O2O商铺_26【商品类别】批量新增商品类别从Dao到View层的开发
  4. 研究 Dubbo 网卡地址注册时的一点思考
  5. Liferay –简单主题开发
  6. python redis模块connectionerror_ConnectionError:Error 2连接到Python/Django Redis中的unix套接字...
  7. Python SQLite教程
  8. P2046 [NOI2010]海拔
  9. SQL语句基本增删改查操作总结
  10. android 跳转公众号,app直接跳转公众号
  11. 计算机网络和现场总线的区别,现场总线系统的特点和组成
  12. 最全面贴片电阻知识,封装、尺寸、最大承受功率及选型统统包括-电子技术方案|电路图讲解
  13. Windows 11 (updated Dec 2021) 简体中文版、英文版(64-bit、ARM64)下载(2022 年 1 月发布)
  14. 给 Android 开发者的 Gradle 入门指南
  15. springboot-mybatis集成 使用逆向工程
  16. 中兴手机可以刷鸿蒙系统吗,中兴:今年无计划使用华为鸿蒙系统
  17. uniapp引用外部js_Uniapp怎么引入外部js
  18. 《推荐算法工程师培养计划》
  19. 一文读懂CRNN+CTC文字识别
  20. 证件照片如何换背景底色,3个免费制作证件照的方法,简单易学

热门文章

  1. 【牛顿迭代逼近】求根号2的快速方法
  2. 【烈日炎炎战后端】 数据结构(0.7万字)
  3. 厉害了!99行代码实现《冰雪奇缘》
  4. 【MySQL】黑马教程MySQL数据库 MySQL基础(一)
  5. 探花交友06-即时通信
  6. 发布两款超1级能效空调 再次腰斩行业价 苏宁小Biu点燃空调市场
  7. 弘辽科技:拼多多店铺账号忘了怎么找回?
  8. 微信支付签名失败(几种解决方案)
  9. Oracle Java Cloud系列(02)——创建Java云的应用服务器实例 及 数据库云实例
  10. 如何用分词来简化状语从句