JS基础之【基本数据类型与类型间的隐式显示转换】

news2024/9/21 16:29:52

🚀 个人简介:某大型国企高级前端开发工程师,7年研发经验,信息系统项目管理师、CSDN优质创作者、阿里云专家博主,华为云云享专家,分享前端后端相关技术与工作常见问题~

💟 作    者:码喽的自我修养🥰
📝 专    栏:JavaScript基础 🎉

🌈 创作不易,如果能帮助到带大家,欢迎 收藏+关注  💕

🌈🌈文章目录

一、通过 typeof 关键字检测数据类型

二、数值类型

三、字符串类型

四、布尔类型

五、undefined

六、null空类型

null 和 undefined 区别:

null 开发中的使用场景:

七、类型转换

隐式转换

显式转换

1. 转换为数字型

2. 转换为字符型

一、通过 typeof 关键字检测数据类型

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>JavaScript 基础 - 数据类型</title>
</head>
<body>
  
  <script> 
    // 检测 1 是什么类型数据,结果为 number
    document.write(typeof 1)
  </script>
</body>
</html>

二、数值类型

即我们数学中学习到的数字,可以是整数、小数、正数、负数

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>JavaScript 基础 - 数据类型</title>
</head>
<body>
  
  <script> 
    let score = 100 // 正整数
    let price = 12.345 // 小数
    let temperature = -40 // 负数

    document.write(typeof score) // 结果为 number
    document.write(typeof price) // 结果为 number
    document.write(typeof temperature) // 结果为 number
  </script>
</body>
</html>

JavaScript 中的数值类型与数学中的数字是一样的,分为正数、负数、小数等。

三、字符串类型

通过单引号( ''双引号( ""或反引号包裹的数据都叫字符串,单引号和双引号没有本质上的区别,推荐使用单引号。

注意事项:

  1. 无论单引号或是双引号必须成对使用

  2. 单引号/双引号可以互相嵌套,但是不以自已嵌套自已

  3. 必要时可以使用转义符 \,输出单引号或双引号

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>JavaScript 基础 - 数据类型</title>
</head>
<body>
  
  <script> 
    let user_name = '小明' // 使用单引号
    let gender = "男" // 使用双引号
    let str = '123' // 看上去是数字,但是用引号包裹了就成了字符串了
    let str1 = '' // 这种情况叫空字符串
		
    documeent.write(typeof user_name) // 结果为 string
    documeent.write(typeof gender) // 结果为 string
    documeent.write(typeof str) // 结果为 string
  </script>
</body>
</html>

四、布尔类型

表示肯定或否定时在计算机中对应的是布尔类型数据,它有两个固定的值 true false,表示肯定的数据用 true,表示否定的数据用 false

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>JavaScript 基础 - 数据类型</title>
</head>
<body>
  
  <script> 
    //  码喽帅不帅?回答 是 或 否
    let isCool = true // 是的,帅死了!
    isCool = false // 不,套马杆的汉子!

    document.write(typeof isCool) // 结果为 boolean
  </script>
</body>
</html>

五、undefined

未定义是比较特殊的类型,只有一个值 undefined,只声明变量,不赋值的情况下,变量的默认值为 undefined,一般很少【直接】为某个变量赋值为 undefined。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>JavaScript 基础 - 数据类型</title>
</head>
<body>
  
  <script> 
    // 只声明了变量,并末赋值
    let tmp;
    document.write(typeof tmp) // 结果为 undefined
  </script>
</body>
</html>

注:JavaScript 中变量的值决定了变量的数据类型。

六、null空类型

JavaScript 中的 null 仅仅是一个代表“无”、“空”或“值未知”的特殊值

null 和 undefined 区别:

undefined 表示没有赋值
null 表示赋值了,但是内容为空

null 开发中的使用场景:

官方解释:把 null 作为尚未创建的对象
大白话: 将来有个变量里面存放的是一个对象,但是对象还没创建好,可以先给个null

七、类型转换

在 JavaScript 中数据被分成了不同的类型,如数值、字符串、布尔值、undefined,在实际编程的过程中,不同数据类型之间存在着转换的关系。

隐式转换

 某些运算符被执行时,系统内部自动将数据类型进行转换,这种转换称为 隐式转换

规则:
  • + 号两边只要有一个是字符串,都会把另外一个转成字符串
  • 除了+以外的算术运算符 比如 - * / 等都会把数据转成数字类型
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>JavaScript 基础 - 隐式转换</title>
</head>
<body>
  <script> 
    let num = 13 // 数值
    let num2 = '2' // 字符串

    // 结果为 132
    // 原因是将数值 num 转换成了字符串,相当于 '13'
    // 然后 + 将两个字符串拼接到了一起
    console.log(num + num2)

    // 结果为 11
    // 原因是将字符串 num2 转换成了数值,相当于 2
    // 然后数值 13 减去 数值 2
    console.log(num - num2)

    let a = prompt('请输入一个数字')
    let b = prompt('请再输入一个数字')

    alert(a + b);
  </script>
</body>
</html>

注:数据类型的隐式转换是 JavaScript 的特征,后面的文章中还会深入讲解,目前先需要理解什么是隐式转换。

显式转换

编写程序时过度依靠系统内部的隐式转换是不严禁的,因为隐式转换规律并不清晰,大多是靠经验总结的规律。为了避免因隐式转换带来的问题,通常根逻辑需要对数据进行显示转换

1. 转换为数字型
  • Number

通过 Number 显示转换成数值类型,当转换失败时结果为 NaN(Not a Number)即不是一个数字。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>JavaScript 基础 - 隐式转换</title>
</head>
<body>
  <script>
    let t = '12'
    let f = 8

    // 显式将字符串 12 转换成数值 12
    t = Number(t)

    // 检测转换后的类型
    // console.log(typeof t);
    console.log(t + f) // 结果为 20

    // 并不是所有的值都可以被转成数值类型
    let str = 'hello'
    // 将 hello 转成数值是不现实的,当无法转换成
    // 数值时,得到的结果为 NaN (Not a Number)
    console.log(Number(str))
  </script>
</body>
</html>
  • parseInt(数据)

只保留整数
  • parseFloat(数据)

可以保留小数
2. 转换为字符型
  • String(数据)

  • 变量.toString(进制)

好了,本文就到这里吧,点个关注 再走嘛~

 更多专栏订阅推荐:

🥕 JavaScript深入研究

👍 前端工程搭建
💕 vue从基础到起飞

✈️ HTML5与CSS3

⭐️ uniapp与微信小程序

📝 前端工作常见问题汇总

✍️ GIS地图与大数据可视化

📚 常用组件库与实用工具

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux】初步识操作系统

linux专栏&#xff1a;《Linux入门系列》 系列文章&#xff1a;gdb-调试器初入门&#xff08;简单版使用&#xff09; 编辑器vim入门&#xff08;概念模式转换技巧&#xff09; 目录 1. 概念 2. 设计操作系统的目的 3. 定位&#xff1a;操作系统负责管理 4. 如何理解管理 …

Linux 数据结构 链表

1.段错误调试方法&#xff1a; 1.按照网上的方法配置Ubuntu&#xff0c;允许生成core文件 2.重新编译代码并加入-g选项(允许进行GDB调试) 3.ulimit -c unlimited 不限制core文件的生成的大小 4.执行代码,复现段错误,产生包含出错信息的core文件(检查cor…

呼叫系统怎么使用提高安全性

呼叫中心提高使用的安全性是一个综合性的任务&#xff0c;涉及技术、管理、人员等多个方面。以下是一些关键措施&#xff0c;旨在提升呼叫中心的安全性&#xff1a; 一、加强技术防护 1.数据加密&#xff1a;采用先进的加密技术对通话内容和数据传输进行加密&#xff0c;如使用…

浙大联合港中深发布AI医疗最新报告,全面审视「虚拟现实+人工智能」

想象一下&#xff0c;医生在手术前&#xff0c;通过虚拟现实技术&#xff0c;能够身临其境地预演手术过程&#xff0c;精确到每一个细节&#xff1b;患者则可以在VR环境中进行心理治疗&#xff0c;减轻焦虑与恐惧。 这一切&#xff0c;都得益于AI与VR的强强联手。 医学视觉增强…

今日分享丨微服务架构下查询数据缓存策略

引言 随着企业业务规模的扩大和复杂度的提升&#xff0c;微服务架构因其高可用性、可扩展性和易于维护的特性&#xff0c;逐渐成为现代软件开发的首选架构模式。然而&#xff0c;微服务架构带来的分布式特性也增加了数据访问的复杂性和延迟。特别是业务查询领域&#xff0c;一…

HIS系统成品|HIS系统搭建|医院HIS系统开发

在医疗信息化的浪潮中&#xff0c;医院信息系统&#xff08;HIS&#xff09;的开发功能分析成为关键。本文将探讨如何通过功能分析构建一个高效、智能的HIS系统&#xff0c;以满足现代医院的需求&#xff0c;并提升医疗服务质量。 1、HIS系统功能分析的必要性 在医疗行业中&am…

基于java的进销存管理系统设计与实现

需求分析 进销存主要是帮助商业企业全面有效管理采购、销售和库存&#xff0c;软件适用于需要进行采购管理&#xff0c;销售管理以及库存管理的所有商业企业。 进销存系统的产生和发展情况 进销存软件是一款通用性极强的商业企业进销存管理系统&#xff0c;软件囊括了商业企业…

第六届机器人与智能制造技术国际会议 (ISRIMT 2024)

重要信息 大会官网&#xff1a;www.isrimt.org&#xff08;点击了解大会&#xff0c;参会&#xff0c;投稿等信息&#xff09; 大会时间&#xff1a;2024年9月20-22日 大会地点&#xff1a;中国-江苏常州 收录检索&#xff1a;IEEE Xplore, EI Compendex, Scopus 大会简介…

航空公司名字趣史:看看有趣又有意义的命名背后有什么玄机

上周“东海航空”事件引发了东方航空在社交媒体上的一系列被迫营业&#xff0c;因为媒体的乌龙报道误将“东海航空”简称为“东航”&#xff0c;甚至直接用错了图片。众号&#xff1a;标猿公司起名 给公司起个好名字 其实除了大部分以地域、国家命名的航空公司&#xff0c;还…

Java 8 Optional用法【总结记录】

一、前言 这里引用书中描述来介绍Optional类&#xff1a; Optional是为核心类库设计的一个数据类型&#xff0c;用来替换null值。人们对原有的null值有很多抱怨&#xff0c;甚至连发明这一概念的Tony Hoare也是如此&#xff0c;他曾说这是自己的一个“价值连城的错误”。作为一…

cad导出图片格式怎么导出?5个软件帮助你快速转换文件格式

cad导出图片格式怎么导出&#xff1f;5个软件帮助你快速转换文件格式 将CAD文件导出为图片格式可以帮助你更方便地展示、分享或打印设计图纸。CAD&#xff08;Computer-Aided Design&#xff09;文件通常以DWG或DXF格式保存&#xff0c;而要将它们转换为常见的图片格式&#x…

NodeJS “次元高校”社团管理系统 ---附源码94897

摘要 计算机科学技术的飞速发展也更好地促进了高校信息化建设。为了适应新形势下更好地培养人才&#xff0c;高校在发展的过程中开始推进信息系统的建设。随着我国教育模式的不断改革和发展&#xff0c;越来越多的高校正在开展校园信息工程建设&#xff0c;以更好地提高高校的各…

C / C++内存管理

内存分布 1. 栈又叫堆栈--非静态局部变量/函数参数/返回值等等&#xff0c;栈是向下增长的。 2. 内存映射段是高效的I/O映射方式&#xff0c;用于装载一个共享的动态内存库。用户可使用系统接口创建共享共 享内存&#xff0c;做进程间通信&#xff0c;子进程堆区的开辟。 3. …

文心快码帮你解大厂面试题:TCP关闭连接的过程,为什么要4次挥手,为什么最大等待时间是2*MSL?

&#x1f50d;【大厂面试真题】系列&#xff0c;带你攻克大厂面试真题&#xff0c;秒变offer收割机&#xff01; ❓今日问题&#xff1a;在8g内存的机器&#xff0c;能否启动一个7G堆大小的java进程&#xff1f; ❤️一起看看文心快码Baidu Comate给出的答案吧&#xff01;如…

Oracle RAC 修改系统时区避坑指南(深挖篇)

大家好&#xff0c;这里是 Lucifer三思而后行&#xff0c;专注于提升数据库运维效率。 目录 前言环境安装问题重现时区检查修改时区问题分析问题解决 深究根源问题一问题二问题三 写在最后往期精彩文章推荐 前言 昨天遇到一个问题&#xff0c;Oracle RAC 安装完之后&#xff0…

bitsandbytes使用错误:CUDA Setup failed despite GPU being available

参考:https://huggingface.co/docs/bitsandbytes/main/en/installation 报错信息 ======================

【JavaEE精炼宝库】网络原理基础——网络层 | IP协议

文章目录 一、IP 协议的格式二、IP 地址的数量限制三、私有 IP 地址和公网 IP 地址3.1 私有 IP 地址和公网 IP 地址的基本知识&#xff1a;3.2 内网 IP 设备访问外网 IP 设备的过程&#xff08;NAT 机制&#xff09;&#xff1a; 四、地址管理4.1 网段划分&#xff1a;4.1.1 网…

npm、cnpm、pnpm、yarn包管理工具别傻傻分不清楚了

干啥的&#xff1a; nodejs的包管理工具。 用于自动化处理包的安装、更新、配置和管理。它们之间的主要区别在于它们各自的实现方式、性能优化、以及一些特有的功能。 怎么用&#xff1a; 1、npm 1.1、描述 Node Package Manager默认包管理器从 npm 公共仓库中安装、共享…

.net framework 4.8 开发windows系统服务

ps:旧技术了&#xff0c;有一点局限性&#xff0c;但好像网上记录并不多&#xff0c;或是很零散&#xff0c;比较坑人。故自己记录一下。 项目环境&#xff1a; win 10、.Net framework 4.8&#xff0c;Visual Studio 2019&#xff0c;oracle 12G&#xff0c;ORM是SqlSugar5.…

uniapp video标签无法播放视频

当video标签路径含有中文以及特殊字符视频就会无法播放 解决方法使用encodeURIComponent对路径进行加密处理 videoSrc data.coursewareFile? ${appConfig.apiUrl encodeURIComponent(data.coursewareFile)}: "";最后效果