一、奇怪点

有点奇怪的是,JavaScript语言居然有两个表示"无"的值:undefined和null。这是为什么?

二、历史原因

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

但是,JavaScript的设计者,觉得这样做还不够,主要有以下两个原因。

  1. null像在Java里一样,被当成一个对象。但是,JavaScript的数据类型分成原始类型(primitive)和合成类型(complex)两大类,作者觉得表示"无"的值最好不是对象。

  2. JavaScript的最初版本没有包括错误处理机制,发生数据类型不匹配时,往往是自动转换类型或者默默地失败。作者觉得,如果null自动转为0,很不容易发现错误。

因此,作者又设计了一个undefined。这里注意:先有null后有undefined,出来undefined是为了填补之前的坑。

三、具体区别

JavaScript的最初版本是这样区分的:null是一个表示"无"的对象(空对象指针),转为数值时为0;undefined是一个表示"无"的原始值,转为数值时为NaN。

js的重要性

js可以说是前端的核心了。不管是node,还是各种前端框架vue、react,还是js的超级typescript,都是以js为核心延展的。任何框架都会过时,但js不会。想想曾经的霸主jQuery,现在前端招聘要求中已经快没有它的身影了。但闭包、作用域链、原型链,还是前端面试的必问点。

静下心来去学习吧,除了知识的广度,知识的深度更重要。在如今的市场上,什么都只是了解皮毛的人,远远没有那个对某个技术特别精通的人吃香。就好比慕容复和乔峰:慕容复什么武功都了解一点,但永远也打不赢只会降龙十八掌的乔峰。

世间万物都是相同的,能把一件事做到极致的人,再做其它事也是举重若轻的。同理:我们能把js学透,再去学其它框架都是轻而易举的事了

js 对象去除undefined_undefined和null区别相关推荐

  1. JSON与JS对象的区别

    和一些同学一样:总是感觉json对象(其实json不是对象)和js对象的字面量表示法相同,最近学习json,真心搞不懂,js对象和json有什么区别?就是感觉json的key要用" &quo ...

  2. JS基础之undefined与null的区别

    在JavaScript开发中,被人问到:null与undefined到底有啥区别? 一时间不好回答,特别是undefined,因为这涉及到undefined的实现原理.于是,细想之后,写下本文,请各位 ...

  3. js 对象.key和对象[key]区别

    js对象,key和对象[key]区别 var obj = {abc:"ss",nn:90}; var v1 = obj.abc;//使用点的方式 var v2 = obj[&quo ...

  4. JQuery对象和JS对象区别与转换|| 事件绑定 入口函数 样式控制

    JQuery对象和JS对象区别与转换   1. JQuery对象在操作时,更加方便.     2. JQuery对象和js对象方法不通用的.     3. 两者相互转换         * jq -- ...

  5. JS对象与Dom对象与jQuery对象之间的区别

    前言 通过问题看本质: 举例: js的写法:document.getElementById('save').disabled=true; 在jquery中我是这样写的 $("#save&qu ...

  6. java与jquery的选择器区别_java day44【JQuery 基础:概念,快速入门,JQuery对象和JS对象区别与转换,选择器,DOM操作,案例】...

    第一章JQuery 基础 1. 概念: 一个JavaScript框架.简化JS开发 * jQuery是一个快速.简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScrip ...

  7. java day44【JQuery 基础:概念,快速入门,JQuery对象和JS对象区别与转换,选择器,DOM操作,案例】...

    第一章  JQuery 基础 1. 概念: 一个JavaScript框架.简化JS开发 * jQuery是一个快速.简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScr ...

  8. 【JQuery框架】JQuery对象和JS对象的区别和转换

    目录 jQuery的概念 jQuery快速入门 1.下载jQuery 2.导入JQuery的js文件 3.jQuery的使用 jQuery对象和JS对象区别与转换 jQuery转为js js转为jQu ...

  9. day43 JavaWen阶段——JQuery 基础(JQuery相关开发文档,JQuery对象和JS对象区别与转换,JQuery选择器,JQuery中DOM操作,案列【QQ表情选择】【左右移动】)

    今日内容 1. JQuery 基础: 概念 快速入门 JQuery对象和JS对象区别与转换 选择器 DOM操作 案例 今日源码: 链接:https://pan.baidu.com/s/1KiG0c_V ...

最新文章

  1. 值得推荐的好书——评《亮剑.NET.图解C#开发实战》
  2. JAVA继承心得体会及建议_Java继承总结
  3. redis 命令 释放连接_redis scan命令导致redis连接耗尽,线程上锁的解决
  4. 【深度学习】揭秘2021抖音和快手APP图像修复背后的核心技术,毫无ps痕迹
  5. Nacos配置中心-多配置文件加载
  6. 成功使用Windows Live Writer 2010发布日志
  7. 深入玩转K8S之智能化的业务弹性伸缩和滚动更新操作
  8. java基础之----java常见异常及代码示例
  9. 【计算机网络安全基础(第五版)袁津生 课后习题答案】
  10. Python — — turtle 常用代码
  11. 美团监控系统mysql_美团MySQL数据库巡检系统的设计与应用
  12. 阿里云API调用 OCR python
  13. android fsck_msdos 分析(二)
  14. Markdown 语法手册 (完整整理版)转抄
  15. 小白也学得会!Python编程超简单方法算圆周率
  16. Android 中文API合集 最终版,androi中文api合集.doc
  17. html中怎样写css路径,CSS 书写位置
  18. Poi 导出excel单个sheet的内容
  19. Android studio右侧Gradle窗口显示 nothing to show
  20. FoxitReader3.0注册码和foxit pdf creator key

热门文章

  1. Archive object standard check
  2. How is SAP CRM employee responsible being determined
  3. 关于完善Github repo里文档的规范做法
  4. HTML CSS里display:block的原理和用法
  5. Hybris UI的Route(路由)实现
  6. python队列是线程安全的吗_python – 为什么我的多进程队列看起来不是线程安全的?...
  7. 传递对象_看懂Xlua实现原理——从宏观到微观(1)传递c#对象到Lua
  8. QToolButton设置图标位置
  9. 线程打印_线程知识回顾
  10. oracle10g密钥,Oracle10G透明数据加密技术如何使用呢?