当前位置: 首页 > news >正文

typeof运算符 +unll和undefined的区别

typeof运算符     

JavaScript 有三种方法,可以确定一个值到底是什么类型。而我们 现在需要接触到的就是typeof

数值返回number

1  typeof 123 // "number"

字符串返回string

1  typeof '123' // "string"

布尔值返回boolean

1  typeof false // "boolean"

对象返回object

1  typeof {} // "object"

unllundefined的区别

概述

null与undefined都可以表示没有,含义非常相似。将一个变量赋  值为undefinednull,老实说,语法效果几乎没区别。

既然含义与 用法都差不多,为什么要同时设置两个这样的值,这不是无端增加  复杂度,令初学者困扰吗?这与历史原因有关

历史原因:

1995年JavaScript诞生时,最初像Java一样,只设置了null作为表示"无"的值。根据C语言的传统,null被设计成可以自动转为0

但是,JavaScript的设计者Brendan Eich,觉得这样做还不够,有两个原因。首先,null像在Java里一样,被当成一个对象。但是,JavaScript的值分成原始类型和合成类型两大类,Brendan Eich觉得表示"无"的值最好不是对象。其次,JavaScript的最初版本没有包括错误处理机制,发生数据类型不匹配时,往往是自动转换类型或者默默地失败。Brendan Eich觉得,如果null自动转为0,很不容易发现错误。

因此,Brendan Eich又设计了一个undefined。他是这样区分的:null是一个表示"无"的对象,转为数值时为0undefined是一个表示"无"的原始值,转为数值时为NaN

Number(undefined) // NaN
5 + undefined // NaN

null的特殊之处在于,JavaScript把它包含在对象类型(object)之中

查询null的类型,JavaScript返回object(对象):

typeof null // "object"

这并不是说null的数据类型就是对象,而是JavaScript早期部署中的一个约定俗成,其实不完全正确,后来再想改已经太晚了,会破坏现存代码,所以一直保留至今。

注意:JavaScript的标识名区分大小写,所以undefinednull不同于UndefinedNull(或者其他仅仅大小写不同的词形),后者只是普通的变量名。

相关文章:

  • 树状数组学习笔记
  • 人工智能学习07-函数
  • MATLAB遍历生成20到1000个节点的无线通信网络拓扑推理数据
  • 动态模块加载的响应式架构:从零到一的企业级实战指南
  • 量化面试绿皮书:7. 100的阶乘中有多少个尾随零
  • 《PyTorch深度学习入门》
  • 05.查询表
  • 探索双曲函数:从定义到MATLAB可视化
  • 【CATIA的二次开发23】抽象对象Document涉及文档激活控制的方法
  • 深入​剖析网络IO复用
  • 一文掌握 Tombola 抽象基类的自动化子类测试策略
  • 工作邮箱收到钓鱼邮件,点了链接进去无法访问,会有什么问题吗?
  • github开源协议选择
  • ESP32 在Arduino开发环境中,如果程序运行报错如何定位程序报错是哪行代码
  • Python爬虫实战:研究demiurge框架相关技术
  • 机器学习模型选择指南:从问题到解决方案
  • cpp自学 day26(智能指针)
  • Linux中《进程控制》详细介绍
  • Java并发编程-理论基础
  • 算法题(165):汉诺塔问题
  • 彩票网站建设平台/推广文章的推广渠道
  • 小程序制作流程微信/河北百度竞价优化
  • 怎么什么软件可以吧做网站/天津网站策划
  • 优化外贸网站/白云百度seo公司
  • 农业网站建设/线上销售渠道有哪些
  • 北京网站建设报价/企业查询系统