数据和类型转换

文章目录

  • 数据类型
    • 数字类型
      • 数字操作
      • NaN
      • JavaScript算术运算符的执行顺序
    • 字符串类型(string)
      • 字符串拼接
      • 模板字符串
    • 未定义类型(undefined)
    • 布尔类型(boolean)
    • null(空类型)
  • 类型转换
    • 显式转换
    • 隐式转换

数据类型

数字类型

数字操作

比如,乘法 * 、除法 / 、加法 + 、减法 - 等等,所以经常和算术运算符一起。

  • +:求和
  • -:求差
  • *:求积
  • /:求商
  • %:取模(取余数)
    • 开发中经常作为某个数字是否被整除

NaN

NaN表示 not a number,中文解释是“非数字的特殊值”,它的数据类型是 number。
NaN 是粘性的。任何对 NaN 的操作都会返回 NaN

    console.log('你好' - NaN)console.log(NaN - '你好')

在这里插入图片描述

JavaScript算术运算符的执行顺序

JavaScript中 优先级越高越先被执行,优先级相同时以书从左向右执行。
总结一句话,先乘除后加减,有括号先算括号里面的。

字符串类型(string)

  • 通过单引号( ‘’) 、双引号( “”)或反引号( ` ) 包裹的数据都叫字符串,单引号和双引号没有本质上的区别,推荐使用单引号。
  • 注意事项:
    • 无论单引号或是双引号必须成对使用
    • 单引号/双引号可以互相嵌套,但是不以自已嵌套自已(口诀:外双内单,或者外单内双)
    • 必要时可以使用转义符 \,输出单引号或双引号

字符串拼接

场景: + 运算符 可以实现字符串的拼接。
口诀:数字相加,字符相连

模板字符串

模板字符串

  • 使用场景
    • 拼接字符串和变量(在没有它之前,要拼接变量比较麻烦)
  • 语法
    • `` (反引号) 在英文输入模式下按键盘的tab键上方那个键(1左边那个键)内容拼接变量时,用 ${ } 包住变量
<body><script>let a = '李白', b = 1document.write(`你好,${a}`)document.write('<br></br>')document.write(`你好,${a + b}`)</script>
</body>

在这里插入图片描述

未定义类型(undefined)

  • 什么情况出现未定义类型?
    • 只声明变量,不赋值的情况下,变量的默认值为 undefined,一般很少【直接】为某个变量赋值为 undefined。
  • 工作中的使用场景:
    • 开发中经常声明一个变量,等待传送过来的数据。如果我们不知道这个数据是否传递过来,此时我们可以通过检测这个变量是不是undefined,就判断用户是否有数据传递过来

布尔类型(boolean)

它有两个固定的值 true 和 false,表示肯定的数据用 true(真),表示否定的数据用 false(假)

null(空类型)

  • JavaScript 中的 null 仅仅是一个代表“无”、“空”或“值未知”的特殊值
    *null 和 undefined 区别:
    * undefined 表示没有赋值
    * null 表示赋值了,但是内容为空
    • null 开发中的使用场景:
      官方解释:把 null 作为尚未创建的对象
      大白话: 将来有个变量里面存放的是一个对象,但是对象还没创建好,可以先给个null

类型转换

显式转换

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

  • 转换为Number(数据)
    • 如果字符串内容里有非数字,转换失败时结果为 NaN(Not a Number)即不是一个数字
      • NaN也是number类型的数据,代表非数字
    let str = '123'console.log(Number(str))console.log(Number('吉良吉影'))

在这里插入图片描述

* parseInt(数据) 只保留整数
* parseFloat(数据) 可以保留小数
    console.log(parseInt('12ab'))console.log(parseInt('ab12'))console.log(parseInt('12px'))console.log(parseInt('12.123px'))console.log(parseFloat('12.123ab'))console.log(parseFloat('ab12.123'))

在这里插入图片描述

  • 转换为string型
    • String(数据)
    • 变量.toString(进制)
      *在 JavaScript 中,你可以使用 .toString(进制) 方法将一个变量转换为指定进制的字符串表示形式。这个方法接受一个参数,即要转换成的进制数,通常是 2、8、10 或 16。
      例如,如果你有一个整数变量 num,你可以使用 num.toString(2) 将其转换为二进制字符串,num.toString(8) 将其转换为八进制字符串,num.toString(16) 将其转换为十六进制字符串。
      这个方法通常用于数值的进制转换,例如将数字以不同进制的形式进行显示或处理。
  <script>let sum = 55console.log(typeof String(sum))console.log(sum.toString(2))</script>

在这里插入图片描述

隐式转换

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

  • 规则:
    • +号两边只要有一个是字符串,都会把另外一个转成字符串
    • 但是单用的时候就是作为转换符,可以把字符串转换为数字
  <script>console.log(typeof +"1")console.log(typeof -"1")</script>

在这里插入图片描述

  • 除了+以外的算术运算符 比如-*/等都会把数据转成数字类型
   console.log(2 - "1")console.log(2 + "1")console.log("1" - 2)

在这里插入图片描述

  • 缺点:
    • 转换类型不明确,靠经验才能总结
  • 小技巧:
    • +号作为正号解析可以转换成数字型
console.log(+"1")//1
* 任何数据和字符串相加结果都是字符串

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

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

相关文章

【DL经典回顾】激活函数大汇总(十三)(Sinc SwiGLU附代码和详细公式)

激活函数大汇总&#xff08;十三&#xff09;&#xff08;Sinc & SwiGLU附代码和详细公式&#xff09; 更多激活函数见激活函数大汇总列表 一、引言 欢迎来到我们深入探索神经网络核心组成部分——激活函数的系列博客。在人工智能的世界里&#xff0c;激活函数扮演着不可…

ARM 寄存器学习:(一)arm多种模式下得寄存器

一.ARM7种状态以及每种状态的寄存器&#xff1a; ARM 处理器共有 7 种不同的处理器模式&#xff0c;在每一种处理器模式中可见的寄存器包括 15 个通用寄存器( R0~R14)、一个或两个(User和Sys不是异常模式&#xff0c;没有spsr寄存器)状态寄存器&#xff08;cpsr和spsr&…

Unity开发一个FPS游戏之二

在之前的文章中,我介绍了如何开发一个FPS游戏,添加一个第一人称的主角,并设置武器。现在我将继续完善这个游戏,打算添加敌人,实现其智能寻找玩家并进行对抗。完成的效果如下: fps_enemy_demo 下载资源 首先是设计敌人,我们可以在网上找到一些好的免费素材,例如在Unity…

KKView远程控制: todesk内网穿透

Todesk内网穿透&#xff1a;实现远程访问的新途径 在数字化时代&#xff0c;远程访问已成为许多企业和个人的基本需求。Todesk作为一款远程桌面控制软件&#xff0c;其内网穿透功能为用户提供了便捷、安全的远程访问体验。本文将介绍Todesk内网穿透的原理、应用场景及其优势&a…

【C++ 】list 类

1. 标准库中的list类 list 类 的介绍&#xff1a; 1. list是可以在常数范围内在任意位置进行插入和删除的序列式容器&#xff0c;并且该容器可以前后双向迭代 2. list与forward_list非常相似&#xff1a;最主要的不同在于forward_list是单链表 3. 与其他的序列式容器相比(a…

爆肝总结,Python接口自动化测试-接口关联实例,一文打通...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 参数关联&#xf…

Python解释器安装

下载Python解释器 如果您从未安装过Python解释器&#xff0c;那么在编写Python代码前需要安装该解释器。什么是Python解释器呢&#xff1f; “Python解释器”就像是一个能够理解和执行Python编程语言的“翻译官”。你写的Python代码&#xff08;一系列指令&#xff09;需要有一…

Redis:持久化、线程模型、大 key

Redis持久化方式有什么方式&#xff1f; Redis 的读写操作都是在内存中&#xff0c;所以 Redis 性能才会高&#xff0c;但是当 Redis 重启后&#xff0c;内存中的数据就会丢失&#xff0c;那为了保证内存中的数据不会丢失&#xff0c;Redis 实现了数据持久化的机制&#xff0c…

宠物食品药品小程序有哪些功能

现在很多人都喜欢养宠物&#xff0c;这带动了宠物相关产业链&#xff0c;例如宠物医院、宠物清理、宠物食品、宠物玩具、宠物药品等。那么今天就介绍宠物食品药品小程序有哪些功能&#xff0c;以帮助您更好地为宠物行业的客户提供服务。 1. **商品展示**&#xff1a;宠物食品小…

二分查找注意事项

目录 1解题思路:首先二分查找分为左闭右闭和左闭右开两种情况&#xff0c;二种情况在细节处理上有所不同 2左闭右闭情况 3左闭右开 4总结&#xff1a; 1解题思路:首先二分查找分为左闭右闭和左闭右开两种情况&#xff0c;二种情况在细…

算法打卡day13|二叉树篇02|Leetcode 102.二叉树的层序遍历、226.翻转二叉树、101. 对称二叉树

在做题之前说明 Deque和Queue 在Java中&#xff0c;Deque和Queue是两种不同的数据结构接口&#xff0c;它们都继承自Collection接口&#xff1b;Deque是Queue的超集&#xff0c;提供了更多的操作和灵活性&#xff0c;以下它们之间存在一些关键的区别&#xff1a; 操作范围&…

【研发日记】Matlab/Simulink技能解锁(一)——在Simulink编辑窗口Debug

文章目录 前言 时间阈值断点 信号阈值断点 周期步进 Signal Value Lable Data Inspector 分析和应用 总结 前言 近期在一些研发项目中使用Matlab/Simulink时&#xff0c;遇到了挺多费时费力的事情。所以利用晚上和周末时间&#xff0c;在这些方面深入研究了一下&#x…

GPT实战系列-LangChain的OutPutParser解析器

GPT实战系列-LangChain的OutPutParser解析器 LangChain GPT实战系列-LangChain如何构建基通义千问的多工具链 GPT实战系列-构建多参数的自定义LangChain工具 GPT实战系列-通过Basetool构建自定义LangChain工具方法 GPT实战系列-一种构建LangChain自定义Tool工具的简单方法…

leetcode 3.11

leetcode hot 100 二分查找1.寻找旋转排序数组中的最小值 矩阵1.搜索二维矩阵 II知识点&#xff1a;upper_bound, lower_bound知识点&#xff1a;二分查找 2.搜索二维矩阵 链表1.合并两个有序链表2.两数相加3. 删除链表的倒数第 N 个结点 二分查找 1.寻找旋转排序数组中的最小…

复习C语言基础中的基础:C语言发展、C89 C99有何区别、C语言特点

参考《C程序设计&#xff08;第五版&#xff09;》&#xff08;谭浩强&#xff09;一书&#xff1a; 1. 发展、C89 C99 2. 特点 记得时不时回顾一下背景特点&#xff0c;加深对C语言的理解。

git的实际运用

1. SSH配置和Github仓库克隆 注意博主在这里演示的SSH密钥生成方式&#xff0c;下面追加的五行不成功时可手动到.ssh下的config文件中添加即可 $ tail -5 config Host github.comHostName github.comPreferredAuthentications publickeyIdentityFile ~/.ssh/test 演示 2. 关联…

数据完整性

Oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 数据完整性 数据完整性是关系数据库的一个重要特征&#xff0c;一般包含实体完整性、参照完整性和用户自定义完整性 3 种 实体完整性 实体完整性&#xff1a;规定表中的每…

QML| QML 组件

# | QML 组件 | 组件是可重用的、封装好的QML类型,并提供了定义好的接口。组件一般使用一个.qml文件定义。前面讲到的使用QML文档定义对象类型,其实就是创建了一个组件。这种使用独立QML文件创建组件的方法这里不再讨论。除了使用单独的QML文件,还可以使用Component类型在一…

如何规范员工上网行为(规范员工上网行为的有效方法)

有很多企业会有员工管理问题&#xff0c;比如以下几位老板的担忧&#xff1a; 可见&#xff0c;很多企业都想要对员工上网行为进行管理。 我想企业要对员工上网行为进行规范管理&#xff0c;肯定也是出于多方面的考量。这些考量可能涵盖了工作效率、信息安全、网络带宽利用以及…

2024 ICDE | 时间序列(Time Series)论文总结

第40届IEEE数据工程国际会议&#xff08;ICDE2024 &#xff09;于5月13日到17日在荷兰乌德勒支召开。 本届ICDE Research共接收论文375篇&#xff0c;Industry and Application接受论文21篇。本文总结了ICDE 2024上有关时间序列&#xff08;Time Series&#xff09;的工作&…