【JavaScript 漫游】【002】JS 的数据类型总览

技术宅的理想房间
文章简介

本文为【JavaScript 漫游】专栏的第 002 篇文章,主要记录了笔者学习 JS 数据类型中所了解的基本知识点。

  1. ES5 的数据类型有哪些
  2. 如何区分 ES5 的数据类型
  3. nullundefined 的相同点和不同点
  4. 布尔值的转换规则
  5. parseIntparseFloat 的基本用法

作为 JS 的复杂数据类型,对象、函数和数组的重要知识点众多,因此笔者计划将它们的知识点记录到随后的文章当中。

ES5 的数据类型有哪些

ES5 有六种数据类型。

  • 数值 number:与 C++、Java 等不同,JS 的 number 类型包含小数和浮点数。
  • 字符串 string:JS 只有 string 类型,没有 char 类型来表示单字符。
  • 布尔值 boolean
  • undefined:JS 的特有数据类型,表示未定义或不存在。
  • null
  • 对象 object

其中,number、string、boolean 合称为原始类型。object 称为合成类型,是多个原始类型的值的合成。undefined 和 null 一般看作是两个特殊值。

对象是最复杂的数据类型,它可以分成三个子类型。

  • 狭义的对象 object
  • 函数 function:可以被执行的对象。
  • 数组 array:特殊的对象,特殊点在于它的键名都是数字。

在日常开发工作当中,以及往后的学习生活当中,“对象”都特指狭义的对象。

如何区分 ES5 的数据类型

ES5 有三种方法可以区分一个值到底是什么类型。

  • typeof 运算符
  • instanceof 运算符
  • Object.prototype.toString 方法

instanceof 运算符笔者在学习到【面向对象】章节的时候,会详细介绍。而 Object.prototype.toString 方法,笔者在记录【标准库】章节的时候,会进行说明记录。

这里先了解 typeof 运算符。它可以返回一个值的数据类型。

  • 数值返回 number
  • 字符串返回 string
  • 布尔值返回 boolean
  • undefined 返回 undefined
  • null 返回 object
  • array 返回 object
  • object 返回 object
  • function 返回 function

null 和 undefined 的相同点和不同点

null 和 undefined 都表示“没有”,在转布尔值时都会被自动转为 false。它们的区别在于,null 表示一个空的对象,它在转为数值时为 0,而 undefined 表示“此处未定义”的原始值,转为数值时为 NaN

布尔值的转换规则

除了下面六个被转为 false,其他值都视为 true

  • undefined
  • null
  • false
  • 0
  • NaN
  • 空字符串

parseInt 和 parseFloat 的基本用法

parseInt 用于将字符串转为整数。

parseInt('123');  // 123

它有几个注意点。

  1. 如果字符串头部有空格,空格会被自动去除。
  2. 如果参数不是字符串,会先转字符串再转换。
  3. 字符串转整数的时候,是一个个字符依次转换,如果遇到不能转为数字的字符,就不再进行下去,返回已经转好的部分。
  4. 如果第一个字符就不能转整数,返回 NaN。
parseInt('  123');  // 123
parseInt(1.23);  // 1
parseInt('123hello');  // 123
parseInt('hello123');  // NaN

parseFloat 用于将字符串转为浮点数。

parseFloat('1.23');  // 1.23

它同样有几个注意点。

  1. 如果字符串头部有空格,空格会被自动去除。
  2. 如果参数不是字符串,返回 NaN。
  3. 字符串转浮点数的时候,是一个个字符依次转换,如果遇到不能转为数字的字符,就不再进行下去,返回已经转好的部分。
  4. 如果第一个字符就不能转整数,同样返回 NaN。
parseFloat('\t\v\r12.34\n '); // 12.34
parseFloat([]); // NaN
parseFloat('3.14more non-digit characters') // 3.14
parseFloat('FF2') // NaN

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

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

相关文章

使用plotly dash 画3d圆柱(Python)

plotly3D (3d charts in Python)可以画3维图形 在做圆柱的3D装箱项目,需要装箱的可视化,但是Mesh (3d mesh plots in Python)只能画三角形,所以需要用多个三角形拼成一个圆柱(想做立…

网站小程序分类目录网源码系统+会员注册登录功能 附带完整的搭建教程

随着互联网的发展,小程序分类目录网站已经成为了人们获取各类信息的重要渠道。而在这个领域中,罗峰给大家分享一款网站小程序分类目录网源码系统以其强大的功能和易用性,脱颖而出。本系统集成了会员注册登录功能,让用户能够更加便…

【git】git update-index --assume-unchanged(不改动.gitignore实现忽略文件)

文章目录 原因分析:添加忽略文件(取消跟踪)的命令:取消忽略文件(恢复跟踪)的命令:查看已经添加了忽略文件(取消跟踪)的命令: 原因分析: 已经维护的项目,文件已经被追踪,gitignore文件不方便修…

Layui + Echarts 5.0

Layui 怎么整合最新版本的 Echarts 5.0,Echarts 4 升级到 5后,有了很大改变,新的配置项4是无法兼容的,所以想要使用新的功能,都需要升级! 新建一个echarts.js文件 layui.define(function (exports) {// 这…

Optional lab: Linear Regression using Scikit-LearnⅠ

scikit-learn是一个开源的、可用于商业的机器学习工具包,此工具包包含本课程中需要使用的许多算法的实现 Goals In this lab you will utilize scikit-learn to implement linear regression using Gradient Descent Tools You will utilize functions from sci…

微服务技术总结

微服务! SrpingClound 微服务主要解决项目拆分后所产生的一系列问题。SpringClound主要解决服务的治理问题 单体VS分布式 单体:部署简单、成本低 缺点:服务耦合度高 2兼容1 服务拆分注意事项 远程调用分析 提供者:服务的提供方…

QT 使用XML保存操作记录

文章目录 1 实现程序保存操作记录的思路2 XML文档基本结构3 QDomDocument实现XML读写3.1 QDomDocument实现生成XML文件3.2 QDomDocument实现读取XML文件 4 QXmlStreamWriter实现读写4.1 QXmlStreamWriter实现生成XML4.2 QXmlStreamWriter实现读取XML 1 实现程序保存操作记录的思…

【大数据】Flink 架构(三):事件时间处理

《Flink 架构》系列(已完结),共包含以下 6 篇文章: Flink 架构(一):系统架构Flink 架构(二):数据传输Flink 架构(三):事件…

04.对象树

一、引入 1.QT实现输出"hello world" 使用QT编写"hello world"程序,有两种实现方式: (1)直接在生成的ui文件中,拖入一个label控件,双击控件编辑内容即可实现 (2&#xff0…

【CSS】flex布局用法解析,快速上手flex布局,flex:1是什么意思?肯定看的懂好吧?

一、flex布局 flex 是 flexible box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。 任何一个容器都可以指定为 flex 布局。 采用 flex 布局的元素,称为 flex 容器(flex container),…

计算机视觉:高级图像处理,满足您的所有需求。

一、说明 特征提取是机器学习管道中的关键步骤,可增强模型在不同数据集上的泛化和良好表现能力。特征提取方法的选择取决于数据的特征和机器学习任务的具体要求。本文揭示图像处理的数学原理,实现增强的计算机视觉 二、关于计算机视觉的普遍问题 在计算机…

CSS基础细节学习

目录 一.CSS--网页的美容师 二.语法规范及选择器的介绍 一.CSS--网页的美容师 CSS是层叠样式表( Cascading Style Sheets )的简称,有时我们也会称之为CSS样式表或级联样式表。 CSS是也是一种标记语言,CSS主要用于设置HTML页面中的文本内容(字体、大小…

Linux:共享内存VS消息队列VS信号量

文章目录 共享内存的通信速度消息队列msggetmsgsndmsgrcvmsgctl 信号量semgetsemctl 内核看待ipc资源单独设计的模块ipc资源的维护 本篇主要是基于共享内存,延伸出对于消息队列和信号量,再从内核的角度去看这三个模块实现进程间通信 共享内存的通信速度…

2024 新年HTML5+Canvas制作3D烟花特效(附源码)

个人名片: 🐼作者简介:一名大三在校生,喜欢AI编程🎋 🐻‍❄️个人主页🥇:落798. 🐼个人WeChat:hmmwx53 🕊️系列专栏:🖼️…

RK3568 Android 13 系统裁剪

android 13 系统裁剪是个大工程,裁剪也是需要大量的测试,才能保证系统的稳定性,以下是RK官方给出的裁剪方案,有兴趣的可以去看一下,对裁剪不是要求过高的可以根据官方的建议,对系统进行裁剪: Rockchip And…

专科拿到季军:微茫星火,奋起直追!

Datawhale干货 作者:“不啻微茫”团队,季军方案 前 言 大家好,我们是 飞桨星河社区 X 智海Mo平台 AI 大模型创意应用大赛 获奖团队——"不啻微茫",很荣幸能有机会与大家分享这次比赛经验,我们从零开始的过程…

【CanvasKeyFrames - HTML5 Canvas 图片序列帧播放工具】

前言 一、CanvasKeyFrames 是什么&#xff1f; 用来做canvas动画的工具。 二、使用步骤 效果如图&#xff1a;上下波动的线条 1.引入库 代码如下&#xff08;示例&#xff09;&#xff1a; 在html中引入&#xff1a; <script src"canvas-keyframes.js"><…

【linux】运维-磁盘空间不足-用到的命令(简洁)

【linux】运维-磁盘空间不足-用到的命令 常用&#xff1a; 注&#xff1a;du -s 和 -d 不能同时都用, -s | -d n 注&#xff1a;df -H 和 -h 区别 -H 1K1000 -h 1K1024 #-T 显示文件系统类型 -h 高可读性显示 df -Th #-c显示总和 ;sort -r 倒序显示 ;2>/dev/nul…

LiveGBS流媒体平台GB/T28181常见问题-如何快速查看推流上来的摄像头并停止摄像头推流?

LiveGBS流媒体平台GB/T28181常见问题-如何快速查看推流上来的摄像头并停止摄像头推流&#xff1f; 1、负载信息2、负载信息说明3、会话列表查看3.1、会话列表 4、停止会话5、搭建GB28181视频直播平台 1、负载信息 实时展示直播、回放、播放、录像、H265、级联等使用数目 2、负…

蓝桥杯AT24C02问题记录

问题1&#xff1a;从这个图片上可以看出这两个在IIC的.c文件里延时时间不一样&#xff0c;第一张图使用了15个_nop_(); 12M晶振机器周期是 1/12M*121uS&#xff1b;nop()要延时1个指令周期。延时时间不对会对时序产生影响&#xff0c;时序不对&#xff0c;则AT24C02有没被使用…