数据和类型转换

文章目录

  • 数据类型
    • 数字类型
      • 数字操作
      • 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.hqwc.cn/news/539996.html

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

相关文章

Yolo系列算法-理论部分-YOLOv3

0. 写在前面 YOLO系列博客&#xff0c;紧接上一篇Yolo系列算法-理论部分-YOLOv2-CSDN博客 1. YOLOv3-定型之作 2018年&#xff0c;Redmon团队推出YOLOv3的网络模型&#xff0c;将骨干网络&#xff08;backbone&#xff09;由darknet-19替换成darknet-53网络&#xff0c;加入特…

精品基于Uniapp+ssm模拟考试系统小程序考试试题试卷

《[含文档PPT源码等]精品微信小程序基于Uniappssm模拟考试系统小程序》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功&#xff01; 软件开发环境及开发工具&#xff1a; 开发语言&#xff1a;Java 后台框架&#xff1a;ssm 安卓框架&a…

守护健康,从营养开始 —— 帕金森患者的饮食秘籍

亲爱的读者朋友们&#xff0c;您是否知道&#xff0c;在对抗帕金森病的道路上&#xff0c;正确的饮食和营养补充可以成为我们的有力盟友&#xff1f;今天&#xff0c;就让我们一起探索那些能够帮助帕金森患者改善症状、提高生活质量的营养素&#xff0c;开启健康生活的新篇章。…

《父母的觉醒》父母不是在培养一个“迷你版”的自己

简介 作者为美国哥伦比亚大学心理学博士沙法丽萨巴瑞。作者也写了《家庭的觉醒》。 作者的核心观点&#xff1a; 我们必须认识到&#xff0c;我们不是在培养一个“迷你版”的自己&#xff0c;而是在塑造一个具有独立特征的灵魂。正因为如此&#xff0c;我们必须铆足精神&#…

ETH共识升级之路

简介 根据我们之前的介绍&#xff0c;了解到ETH网络的共识方式&#xff0c;已经从 PoW 切换到了 PoS&#xff0c;今天我们就回顾下升级之路&#xff0c;以及升级带来的影响 最早的共识机制 PoW 以太坊创建之初采用了类似比特币的工作量证明机制&#xff0c;即矿工通过计算哈希函…

JAVA实战开源项目:计算机机房作业管理系统(Vue+SpringBoot)

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 登录注册模块2.2 课程管理模块2.3 课时管理模块2.4 学生作业模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 课程表3.2.2 课时表3.2.3 学生作业表 四、系统展示五、核心代码5.1 查询课程数据5.2 新增课时5.3 提交作…

【消息队列开发】 实现消息删除逻辑

文章目录 &#x1f343;前言&#x1f332;实现步骤&#x1f6a9;检验参数的合法性&#x1f6a9;读取Message数据&#x1f6a9;二进制转为message&#x1f6a9;isValid 设置为无效&#x1f6a9;写入文件&#x1f6a9;更新统计文件&#x1f6a9;特别注意&#x1f6a9;完整代码 ⭕…

运动想象 (MI) 迁移学习系列 (9) : 数据对齐(EA)

运动想象迁移学习系列:数据对齐&#xff08;EA&#xff09; 0. 引言1. 迁移学习算法流程2. 欧式对齐算法流程3. 与RA算法进行对比4. 实验结果对比5. 总结欢迎来稿 论文地址&#xff1a;https://ieeexplore.ieee.org/abstract/document/8701679 论文题目&#xff1a;Transfer Le…

【论文阅读】MoCoGAN: Decomposing Motion and Content for Video Generation

MoCoGAN: Decomposing Motion and Content for Video Generation 引用&#xff1a; Tulyakov S, Liu M Y, Yang X, et al. Mocogan: Decomposing motion and content for video generation[C]//Proceedings of the IEEE conference on computer vision and pattern recognitio…

vscode-server的搭建方法

一、配置服务器端口支持 1、开放端口&#xff1a; 2、关闭防火墙 systemctl stop firewalld.service systemctl disable firewalld.service二、配置code-server到服务器上** 1、下载code-server-4.22.0-linux-amd64.tar.gz到本地&#xff08;可下载最新的版本&#xff09;&a…

几何相互作用GNN预测3D-PLA

预测PLA是药物发现中的核心问题。最近的进展显示了将ML应用于PLA预测的巨大潜力。然而,它们大多忽略了复合物的3D结构和蛋白质与配体之间的物理相互作用,而这对于理解结合机制至关重要。作者提出了一种结合3D结构和物理相互作用的几何相互作用图神经网络GIGN,用于预测蛋白质…

CV论文--2024.3.15

1、FastMAC: Stochastic Spectral Sampling of Correspondence Graph 中文标题&#xff1a;FastMAC: 随机谱采样对应关系图 简介&#xff1a;在计算机视觉中&#xff0c;3D对应关系是指一对3D点&#xff0c;构成了基本概念。一组具有兼容边的3D对应关系形成了对应关系图&#…