最近在复习JavaScript的基础知识,和第一次学确实有了很不一样的感受,第一次学的比较浅,但是回头再进行学习的时候,发现有很多遗漏的东西,所以今天想分享一下新学到的知识,后面会一点一点补充更新

JavaScript的数据结构有8个,分别是number string boolean object undefined null 还有es6新增的symbol和bigint,今天主要分享一下null undefined number,其他的等复习完会及时更新的

null:

null是一个独立的数据类型,表示一个空值或者是一个对象没有值

null有几个特殊的用法,操作如下:

1.当使用Number方法来识别null的时候,输出为0

 console.log(Number(null))  //0

2.对null实现一些运算符操作(可以将null当做0来进行计算)

 console.log(2 + null) //2console.log(2 * null) //0

undefined:

undefined比较特殊,表示未定义,比如你在生命一个变量,但是没给他赋值的时候,然后检测该变量的类型,输出就是undefined

 let aconsole.log(a) //undefined

 1.当使用Number方法来识别undefined的时候,输出为NaN

console.log(Number(undefined)) //NaN

2.对undefined实现一些运算符操作(可以将undefined当做没有值来进行计算)

 console.log(undefined + 2) //NaNconsole.log(undefined * 2) //NaN

 3.当使用undefined和null来进行比较的时候,非严格模式下,两者是相等的

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

number:

number是用来表示整数和浮点数已经NaN的数据类型,JavaScript的底层没有整数

1.所有的数字都是使用64位浮点数来进行存储

console.log(1 === 1.0) //true

2.当小数在进行相加的时候,具有误差

console.log((0.3 - 0.2) === 0.1) //false

3.当一个计算的数大于2的53次方,计算就不准确了

console.log(Math.pow(2, 53) === Math.pow(2, 53) + 1) //true

4.当一个数大于2的1024次方,就会溢出,如果小于2的-1075次方,会溢出为0

console.log(Math.pow(2, 1024)) //Infinity
console.log(Math.pow(2, -1075) ) //0

5.+0和-0

在很多情况下+0和-0是一样的,但是只有当他们表示分母的时候,会有不一样的结果

console.log(+0 === -0) //true
console.log(1 / +0 === 1 / -0) //false

6.NaN表示number类型,当对NaN进行幂运算的时候,输出为1,其他情况下都为NaN

console.log(NaN ** 0) //1

7.进制

十进制表示没有前导0的数值,二进制前缀(0b/0B),八进制前缀(0o/0O),十六进制前缀(0x/0X),

特殊情况:

 有前导0的数值会被视为八进制,但是如果前导0后面有数字8和9,则该数值被视为十进制。

console.log(099) //99
console.log(088) //88
console.log(077) //63

 8.infinity运算

1. 范围:Infinity大于一切数值(除了NaN),-Infinity小于一切数值(除了NaN)。

console.log(Infinity > -100) //true
console.log(-Infinity < -100) //false
console.log(Infinity > NaN) //false
console.log(-Infinity < NaN) //false

2. Infinity与undefined计算,返回的都是NaN。

console.log(Infinity + undefined) //NaN
console.log(Infinity - undefined) //NaN
console.log(Infinity * undefined) //NaN
console.log(Infinity / undefined) //NaN

3. Infinity减去或除以Infinity,得到NaN。

console.log(Infinity - Infinity) //NaN
console.log(Infinity / Infinity) //NaN

4.0乘以Infinity,返回NaN;0除以Infinity,返回0;Infinity除以0,返回Infinity。

console.log(0 * Infinity) //NaN
console.log(0 / Infinity) //0
console.log(Infinity / 0) //Infinity

5.Infinity与null计算时,null会转成0,等同于与0的计算。只用相乘的时候,返回NaN

console.log(Infinity + null) //Infinity
console.log(Infinity - null) //Infinity
console.log(Infinity * null) //NaN
console.log(Infinity / null) //Infinity

更新中......

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/85486.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/85486.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/85486.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c++面试题(14)------顺时针打印矩阵

操作系统&#xff1a;ubuntu22.04 IDE:Visual Studio Code 编程语言&#xff1a;C11 题目描述 输入一个矩阵&#xff0c;按照从外向里以顺时针的顺序依次打印出每一个元素。 例如&#xff1a; 输入矩阵&#xff1a; [[ 1, 2, 3 ],[ 4, 5, 6 ],[ 7, 8, 9 ] ]输出&…

《Go语言圣经》defer

《Go语言圣经》defer 核心概念&#xff1a;defer语句的执行时机 defer是Go语言的一个关键字&#xff0c;它的作用是&#xff1a;延迟执行一个函数调用&#xff0c;该调用会在包围它的函数返回前一刻执行。 关键点&#xff1a; defer语句会在函数即将返回时执行&#xff0c;…

WEB3 的 WebSocket Provider连接方式

1. 什么是 WebSocket Provider? WebSocket Provider 是 web3.js 中用于通过 WebSocket 协议 与以太坊节点(如 Infura、Geth、Parity)建立持久化连接的通信方式。它允许双向实时数据传输,适用于需要实时监听区块链事件的场景。 核心特点 双向通信:客户端和服务器可以主动…

三国大模型:智能重构下的乱世文明图谱

引言&#xff1a;当赤壁烽烟遇见深度学习 一件动态的《全本三国演义》正通过全息投影技术演绎群雄逐鹿的史诗。这个虚实交融的场景&#xff0c;恰似三国大模型技术的隐喻——以人工智能为纽带&#xff0c;连接起汉末三国的烽火狼烟与数字时代的文明重构。作为人工智能与历史学…

AWS数据库迁移实战:本地MySQL零停机上云方案

一、迁移场景 本地环境&#xff1a;自建MySQL 5.7&#xff08;数据量500GB&#xff09;&#xff0c;业务要求迁移停机时间<5分钟 目标架构&#xff1a; 二、迁移四步法 步骤1&#xff1a;环境准备&#xff08;耗时30分钟&#xff09; 1.1 创建Aurora MySQL # AWS CLI创…

uni-app 安卓 iOS 离线打包参考

App 离线打包 原生工程配置 安卓&#xff1a;【uniapp】uniapp 离线打包安卓应用或者云打包发布 app 步骤&问题记录 iOS&#xff1a;uni-app实现XCode苹果本地离线打包APP

mysql History List Length增长

HLL 持续增长导致问题 History List Length&#xff08;HLL&#xff09;是InnoDB存储引擎中用于衡量未清理的undo日志记录数量的指标。当HLL持续增长时&#xff0c;可能对数据库性能和业务产生以下影响&#xff1a; 事务处理延迟增加 高HLL值意味着大量未清理的undo日志&…

VMware替代 | 南京地铁采用ZStack ZSphere虚拟化承载核心业务

南京地铁作为中国主要城市轨道交通系统之一&#xff0c;运营规模庞大&#xff0c;地铁线路覆盖全市主要区域。其核心业务系统&#xff08;包括列车调度、信号控制、乘客信息系统等&#xff09;原部署在VMware平台上。然而&#xff0c;随着VMware产品全面转向订阅制&#xff0c;…

Electron自动更新详解—包教会版

★ 本人在公司项目中实现的Electron更新功能。 ★ 将实现更新过程的每一步都总结了出来&#xff0c;以及过程中我遇到了哪些问题&#xff0c;如何去解决的问题&#xff0c;有哪些注意事项。 ★ 使用贴合实际应用的HTTP服务器做为载体实现更新&#xff0c;而非github。 开始&…

Apache RocketMQ 消息过滤的实现原理与腾讯云的使用实践

导语 本文将系统阐述 Apache RocketMQ 消息过滤机制的技术架构与实践要点。首先从业务应用场景切入&#xff0c;解析消息过滤的核心价值&#xff1b;接着介绍 Apache RocketMQ 支持的两种消息过滤实现方式&#xff0c;帮助读者建立基础认知框架&#xff1b;随后深入剖析 SQL 语…

安卓JetPack篇——LifeCycle原理

LifeCycle 一、什么是Lifecycle 具备宿主生命周期感知能力的组件。它能持有组件&#xff08;如Activity或Fragment&#xff09;生命周期状态的信息&#xff0c;并且允许其他观察者监听宿主的状态。 二、基本原理 1、安卓10以下版本 隐形的Fragment注入在LifecycleOwner&am…

CSS 圆角边框属性(`border-radius`)笔记

一、作用&#xff1a; 用于设置元素四个角的圆角效果&#xff0c;让元素不再死板&#xff0c;更加柔和。 二、基本语法&#xff1a; border-radius: 圆角大小; 单位&#xff1a;px&#xff08;像素&#xff09;或 %&#xff08;百分比&#xff09; 示例&#xff1a; div {  …

python自助棋牌室管理系统

目录 技术栈介绍具体实现截图系统设计研究方法&#xff1a;设计步骤设计流程核心代码部分展示研究方法详细视频演示试验方案论文大纲源码获取/详细视频演示 技术栈介绍 Django-SpringBoot-php-Node.js-flask 本课题的研究方法和研究步骤基本合理&#xff0c;难度适中&#xf…

计算机——硬盘分区和格式化

硬盘驱动器 硬盘驱动器&#xff08;HDD&#xff09;是一种成熟、经济的大容量存储解决方案。它的核心优势在于每GB成本低和超大容量。然而&#xff0c;其机械结构带来的速度瓶颈、噪音、功耗和对物理冲击的敏感性是其主要的缺点。随着 SSD 价格的持续下降和性能的绝对领先&…

从IEC到UL:技术主权竞争下的断路器合规性战略

1 国际标准体系割裂的现状 在全球低压电器领域&#xff0c;国际标准体系呈现出日益明显的割裂态势。当前主要存在四大标准体系&#xff1a;国际通用的​​IEC标准体系​​、欧洲采用的​​EN标准体系​​、北美实施的​​UL与CSA标准体系​​&#xff0c;以及具有地域特色的​…

第十六届蓝桥杯_省赛B组(D).产值调整

题目如下 这道题看似很简单&#xff0c;其实还是得观察一下&#xff0c;要不然就会… 话不多说回到题目&#xff0c;这个题的坑就在于当A,B,C三个产值相同的时候&#xff0c;再怎么变还是之前的产值&#xff0c;或者也可以通过另外一种方法理解&#xff1a; 通过一个案例来举…

设计模式 | 单例模式——饿汉模式 懒汉模式

单例模式 文章目录 单例模式一、饿汉模式&#xff08;Eager Initialization&#xff09;1. 定义2. 特点3. 饿汉单例模式&#xff08;定义时-类外初始化&#xff09;4. 实现细节 二、懒汉模式&#xff08;Lazy Initialization&#xff09;1. 定义2. 特点3. 懒汉单例模式&#xf…

dify本地部署及添加ollama模型(ubuntu24.04)

说明&#xff1a;ubuntu是虚拟机的&#xff0c;用的桥接模式&#xff0c;与本地同局域网不同ip地址。 参考VM虚拟机网络配置&#xff08;ubuntu24桥接模式&#xff09;&#xff1a;配置静态IP前提&#xff1a;需要有docker及docker-compose环境 参考ubuntu24安装docker及docker…

Python爬虫实战:研究multiprocessing相关技术

一、引言 1.1 研究背景与意义 随着互联网信息的爆炸式增长,网络爬虫已成为获取海量数据的重要工具。传统的单线程爬虫在面对大规模数据采集任务时效率低下,无法充分利用现代计算机多核 CPU 的优势。多线程爬虫虽然在一定程度上提高了效率,但受限于 Python 的全局解释器锁(…

6.18 redis面试题 日志 缓存淘汰过期删除 集群

Redis有哪2种持久化方式&#xff1f;分别的优缺点是什么&#xff1f; Redis 的重写 AOF 过程是由后台子进程 bgrewriteaof 来完成的。 过期删除策略和内存淘汰策略有什么区别&#xff1f; 内存淘汰策略是在内存满了的时候&#xff0c;redis 会触发内存淘汰策略&#xff0c;来淘…