web前端学习中null和undefined的区别

1099 篇文章 1 订阅
1038 篇文章 2 订阅

在web前端工作项目中经常遇到null和undefined,虽然知道它们俩都表示“空”,但是具体的区别还是挺模糊的,大多数计算机语言,有且仅有一个表示"无"的值,比如,C语言的NULL,Java语言的null,Python语言的None,Ruby语言的nil。JavaScript语言居然有两个表示"无"的值:undefined和null。web前端学习中null和undefined的区别

null 1995年JavaScript诞生之初,像Java一样,只设置了null表示“什么都没有”,因此和Java一样,(1) null被当成一个对象;(2) null可以自动转化为0;是一个表示“无”的对象, 转为数值时为O; undefined 是一个表示“元”的原始千直, 转为主丈千直时为NaN 。当声明的变量还未初始化时,变量的默认值为undefined ,null 用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象。代表“空值”,代表一个空对象指针,会用typeof运算得到 “object” ,所以,可以认为null为一个特殊的对象。

undefined 表示“缺少值”,后来JS的设计者Brendan Eich认为“无”的值最好不是对象,且由于null自动转化为0,因此造成错误不易被发现。因此,Brendan Eich又设计了一个undefined,表示“缺少值”,即此处应有一个值,但还没有定义;转为数值时为NaN(非数字值的特殊值) 即此处应该有一个值,但是还没有定义,典型用法是如下。

如果变量声明了,但没有赋值,它就等于undefined 。当调用函数时,如果没有提供应该提供的参数,该参数就等于undefined 。如果对象没有赋值,该属性的值为undefined 。

当函数没有返回值时, 默认返回undefined 。null 表示“ 没有对象” , 即此处不应该有值,典型用法是作为函数的参数, 表示该函数的参数不是对象。作为对象原型链的终点。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一些可能会出现在Web前端开发级考试的理论题以及对应的答案: 1. 请简要解释一下什么是 MVC 架构? MVC 架构是一种软件设计模式,它将一个应用程序分为三个部分:模型(Model)、视图(View)和控制器(Controller)。模型负责处理数据和业务逻辑,视图负责将数据呈现给用户,控制器负责协调模型和视图之间的交互。 2. 请简单介绍一下HTML5新特性。 HTML5是HTML的最新版本,它引入了很多新的特性,例如:语义化标签、视频和音频支持、地理定位、Web存储、Web Workers等。 3. 请列举一些CSS3新增的特性。 CSS3引入了很多新的特性,例如:圆角、阴影、渐变、动画、多列布局、媒体查询等。 4. 请简要说明JavaScript的几种数据类型。 JavaScript的数据类型包括:基本类型和引用类型。基本类型包括:字符串、数字、布尔值、undefinednull。引用类型包括:对象、数组、函数等。 5. 请简述 Ajax 的工作原理。 Ajax的工作原理是通过XMLHttpRequest对象向服务器异步发送请求,获取服务器返回的数据,然后通过JavaScript动态更新页面内容,从而实现局部刷新,提高用户体验。 6. 请简单介绍一下 HTTP 协议的几个常见方法。 HTTP协议定义了很多请求方法,其常见的有:GET、POST、PUT、DELETE、HEAD等。GET用于获取资源,POST用于提交数据,PUT用于更新资源,DELETE用于删除资源,HEAD用于获取资源的元数据。 7. 请简述一下浏览器缓存的工作原理。 浏览器缓存是指浏览器将已经获取的资源存储在本地,下次访问同一资源时直接从本地获取,从而提高访问速度和用户体验。浏览器缓存的工作原理是通过HTTP协议的响应头来控制缓存行为,例如:Cache-Control、Expires、Last-Modified、ETag等。 8. 请简单介绍一下 Web 安全相关的知识。 Web安全涉及到很多方面,包括:XSS攻击、CSRF攻击、SQL注入、文件上传漏洞、密码安全等。开发者需要采取一系列措施来保障Web应用的安全,例如:输入验证、输出转义、密码加密、HTTPS协议等。 9. 请简述一下前端性能优化的几个方面。 前端性能优化可以从多个方面入手,例如:减少HTTP请求、压缩和合并JavaScript和CSS文件、优化图片、使用CDN、减少DOM操作、使用缓存等。 10. 请简述一下现代前端框架的特点和优势。 现代前端框架的特点和优势包括:提供了一整套解决方案,可以快速构建Web应用;采用组件化的开发方式,可以提高代码的可重用性和可维护性;提供了丰富的工具和插件,可以提高开发效率和代码质量;支持自动化构建和测试,可以提高开发效率和代码质量。常见的现代前端框架包括:React、Vue、Angular等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值