数据和类型转换

news2025/1/19 2:58:17

文章目录

  • 数据类型
    • 数字类型
      • 数字操作
      • 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 = 1
    document.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 = 55
    console.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.coloradmin.cn/o/1518682.html

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

相关文章

Ubuntu上搭建TFTP服务

Ubuntu上搭建TFTP服务 TFTP服务简介搭建TFTP服务安装TFTP服务修改配置文件 重启服务 TFTP服务简介 TFTP是一个基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议&#xff0c;适用于开销不大、不复杂的应用场合。TFTP协议专门为小文件传输而设计&#xff0c;只…

Java中 常见的开源树库介绍

阅读本文之前请参阅------Java中 树的基础知识介绍 在 Java 中&#xff0c;有几种流行的开源树库&#xff0c;它们提供了丰富的树算法和高级操作&#xff0c;可以帮助开发者更高效地处理树相关的问题。以下是几种常见的 Java 树库及其特点和区别&#xff1a; JTree 特点…

移动硬盘无法读取怎么修复?教你四招快速解决!

随着科技的发展&#xff0c;移动硬盘已经成为我们日常生活和工作中不可或缺的数据存储设备。然而&#xff0c;有时候我们可能会遇到移动硬盘无法读取的问题&#xff0c;这不仅会给我们带来数据丢失的风险&#xff0c;还可能影响我们的工作进度。下面给大家分享四种针对移动硬盘…

Qt教程 — 3.1 深入了解Qt 控件:Buttons按钮

目录 1 Buttons按钮简介 1.1 Buttons按钮简介 1.2 Buttons按钮如何选择 2 如何使用Buttons按钮 2.1 QPushButton使用-如何自定义皮肤 2.2 QToolButton使用-如何设置帮助文档 2.3 QRadioButton使用-如何设置开关效果 2.4 QRadioButton使用-如何设置三态选择框 2.5 QCom…

【C++初阶】C++入门(上)

C的认识 ①什么是C&#xff1f; ​ C语言是结构化和模块化的语言&#xff0c;适合处理较小规模的程序。对于复杂的问题&#xff0c;规模较大的程序&#xff0c;需要高度的抽象和建模时&#xff0c;C语言则不合适。 ​ 于是1982年&#xff0c;Bjarne Stroustrup&#xff08;本…

虚拟游戏理财 - 华为OD统一考试(C卷)

OD统一考试&#xff08;C卷&#xff09; 分值&#xff1a; 100分 题解&#xff1a; Java / Python / C 题目描述 在一款虚拟游戏中生活&#xff0c;你必须进行投资以增强在虚拟游戏中的资产以免被淘汰出局。 现有一家Bank&#xff0c;它提供有若干理财产品m&#xff0c;风险及…

AIGC笔记--关节点6D位姿按比例融合

1--核心代码 6D位姿一般指平移向量和旋转向量&#xff0c;Maya软件中关节点的6D位姿指的是相对平移向量和欧拉旋转向量&#xff1b; 为了按比例融合两个Pose&#xff0c;首先需要将欧拉旋转向量转换为旋转矩阵&#xff0c;在将旋转矩阵转换为四元数&#xff0c;利用球面线性插值…

vcomp120.dll无法继续执行代码怎么解决

如何解决“缺失vcomp120.dll”错误&#xff1f;vcomp120.dll下载去哪下呢&#xff1f;当您尝试启动一个应用程序或游戏时&#xff0c;您可能会看到一个错误消息&#xff0c;显示“缺失vcomp120.dll”。这通常是因为vcomp120.dll未正确安装或文件已丢失或损坏。这篇文章将向您介…

C语言深入理解指针(2)

1.数组名的理解 #include <stdio.h> int main() {int arr[10] { 1,2,3,4,5,6,7,8,9,10 };int* p &arr[0];//&arr[0]将数组首元素的地址放在p这个指针变量}int main() {int arr[10] {0};int* p1 &arr[0];int* p2 arr;//数组名是数组首元素的地址return …

为何虎茅掌柜 短短6个月会员近百万 月销售额破亿!

大家好 我是吴军 一家软件开发公司的产品经理 今天我们来分析一下&#xff0c;一个卖酒的模式 为什么这家平台短短6个月&#xff0c;发展百万名用户&#xff0c;月销售额破亿! 虎茅掌柜&#xff0c;切记这个虎茅和茅台的那个没有任何关系 虎茅掌柜 虎茅掌柜实质上是一种…

vue生命周期函数原理解析,vue阻止事件冒泡方法实现

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

如何实现固定公网地址远程SSH连接Linux Deepin系统

文章目录 前言1. 开启SSH服务2. Deppin安装Cpolar3. 配置ssh公网地址4. 公网远程SSH连接5. 固定连接SSH公网地址6. SSH固定地址连接测试 前言 Deepin操作系统是一个基于Debian的Linux操作系统&#xff0c;专注于使用者对日常办公、学习、生活和娱乐的操作体验的极致&#xff0…

网络通信与IO多路复用

网络通信与IO多路复用 一、网络通信1.缓存1.1 网卡缓存1.2 内核缓存1.3 用户缓存 2.发送过程3.接收过程 二、IO通信模型1.阻塞IO2.非阻塞IO3.IO多路复用4.信号驱动IO5.异步IO 三、IO多路复用1.select机制1.1 底层原理1.2 底层机制1.3 优点1.4 缺点 2.poll机制2.1 底层原理2.2 底…

如何评估产品说明书的质量和有效性

评估产品说明书的有效性和质量涉及多个关键方面&#xff0c;这些方面共同决定了说明书是否能够满足用户的需求&#xff0c;提供准确、清晰且有价值的信息。以下是一些建议的评估步骤和标准&#xff1a; 1、完整性检查&#xff1a; 确保产品说明书涵盖了产品的所有关键功能和特…

Git如何清除账户凭证

场景&#xff1a;一般发生在Git用户变更的情况 1.git base 操作 Git会使用凭证助手 credential.helper来储存账户凭证&#xff0c;通过以下命令移除&#xff1a; git config --system --unset credential.helper 除了system系统级外&#xff0c;还有 global、local范围。 查…

引领短剧风尚,打造全新观影体验——短剧APP开发之旅

随着移动互联网的迅猛发展&#xff0c;短视频和短剧成为了大众休闲娱乐的新宠。为了满足用户对于高质量、快节奏内容的需求&#xff0c;我们决定开发一款全新的短剧APP&#xff0c;为用户带来前所未有的观影体验。 这款短剧APP将集合丰富多样的短剧资源&#xff0c;涵盖各种题…

运营干货 | TikTok店铺引流就看这几点

在 TikTok 上进行店铺引流可以是一种非常有效的营销策略&#xff0c;尤其是针对年轻用户群体。以下是一些在 TikTok 上进行店铺引流的技巧&#xff1a; 创作有趣的内容&#xff1a;在 TikTok 上&#xff0c;有趣和创意的内容往往更容易引起用户的注意。制作与你的品牌或产品相…

2024年Vue3 面试题小总结

Vue3 面试题小总结 1. OptionsAPI 与 CompositionAPI 的区别&#xff1f; OptionsAPI&#xff1a; 选项式API&#xff0c;通过定义data、computed、watch、method等属性与方法&#xff0c;共同处理页面逻辑&#xff1b;缺点&#xff1a; 当组件变得复杂的时候&#xff0c;导致…

基于安卓的移动视频监控系统的设计与实现

摘 要 随着网络通信技术和视频编解码技术的不断进步&#xff0c;视频监控系统也不断发展。目前&#xff0c;第三代视频监控技术即网络视频监控技术已经占据市场主流&#xff0c;人们对移动视频监控系统的市场需求也在日益扩大。与此同时&#xff0c;安卓智能手机市场飞速发展&…

CentOS7.9 Nginx + EMQX集群组建 MQTTS平台

前面我们有介绍过单机版EMQX的安装 CentOS7 安装 EMQX&#xff08;MQTT&#xff09;&#xff0c;今天我们来讲一下实际项目里用的到MQTTS平台。 一、EMQX单机配置 简单部署两个节点&#xff0c;修改对应配置文件 (/usr/local/emqx/etc/emqx.conf) 中的node内容&#xff1a; nam…