js中的类型转换

news2025/2/26 21:22:57

JavaScript 中有两种类型转换:隐式类型转换(强制类型转换)和显式类型转换。类型转换是将一个数据类型的值转换为另一个数据类型的值的过程。

隐式类型转换(强制类型转换):

隐式类型转换是 JavaScript 自动进行的类型转换,通常发生在操作符运算或比较时,以确保操作的值具有相同的数据类型。以下是一些常见的隐式类型转换的情况:

  • 字符串拼接:当使用 + 运算符将字符串与其他数据类型相加时,其他数据类型会隐式转换为字符串。
var num = 42;
var str = "The answer is: " + num; // 隐式将 num 转换为字符串
  • 数学运算:在数学运算中,JavaScript 会将其他数据类型转换为数字。
var str = "42";
var num = 10;
var result = str - num; // 隐式将 str 转换为数字
  • 比较操作符:在使用比较操作符(例如 =====)时,JavaScript 会进行类型转换以便比较两个值。
var num = 42;
var str = "42";
if (num == str) {
  // 隐式将 str 转换为数字,然后比较
  console.log("相等");
}

显式类型转换:

显式类型转换是通过编写代码来明确告诉 JavaScript 进行类型转换的过程。以下是一些常见的显式类型转换的方法:

  • parseInt() 和 parseFloat():用于将字符串转换为整数或浮点数。
var str = "42";
var num = parseInt(str); // 显式将字符串转换为整数
  • String():将其他数据类型转换为字符串。
var num = 42;
var str = String(num); // 显式将数字转换为字符串
  • Number():将其他数据类型转换为数字。
var str = "42";
var num = Number(str); // 显式将字符串转换为数字
  • Boolean():将其他数据类型转换为布尔值。
var num = 42;
var isTrue = Boolean(num); // 显式将数字转换为布尔值
  • 其他类型转换函数:JavaScript 还提供了其他类型转换函数,如 parseFloat()String.fromCharCode() 等,用于不同的数据类型转换需求。

对于undefined ,null, 0 ,''在各种类型转换中会出什么结果

  1. undefined

    • 隐式类型转换:当将 undefined 与其他数据类型进行隐式类型转换时,它会被转换为 undefinedNaN(如果是数学运算)。
    • 显式类型转换:可以使用 String(undefined) 转换为字符串,或者使用 Number(undefined) 转换为数字,结果都是 NaN
      在这里插入图片描述
  2. null

    • 隐式类型转换:与 undefined 类似,当将 null 与其他数据类型进行隐式类型转换时,它会被转换为 null0(如果是数学运算)。
    • 显式类型转换:可以使用 String(null) 转换为字符串,结果是 "null";使用 Number(null) 转换为数字,结果是 0
      在这里插入图片描述
  3. 0

    • 隐式类型转换:0 在隐式类型转换中通常被视为假值(false),但在数学运算中会保持为 0
    • 显式类型转换:String(0) 转换为字符串 "0"Boolean(0) 转换为 falseNumber(0) 保持为 0
      在这里插入图片描述
  4. 空字符串 ''

    • 隐式类型转换:空字符串在隐式类型转换中通常被视为假值(false),但在某些情况下也可能保持为空字符串。
    • 显式类型转换:String('') 转换为空字符串 ""Boolean('') 转换为 falseNumber('') 转换为 0
      在这里插入图片描述

需要注意的是,在 JavaScript 中,布尔上下文中的假值包括 undefinednull0、空字符串 ''NaNfalse。在条件语句(如 ifwhile)中,它们会被视为假值,其他所有值都被视为真值。这是 JavaScript 中的类型转换规则的一部分。

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

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

相关文章

【解决】Unity3D中无法在MQTT事件中执行Animator

问题原因: 解决方法: 解决过程 1、在 Unity 中创建一个名为 MainThreadDispatcher 的脚本,用于处理主线程操作。 using System.Collections.Generic; using UnityEngine;public class MainThreadDispatcher : MonoBehaviour {private stati…

基于springboot+vue的华山旅游网(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

【java】【SpringBoot】【四】原理篇 bean、starter、核心原理

目录 一、自动配置 1、bean加载方式(复习) 1.1 加载方式-xml方式生命bean 1.2 加载方式-xml注解方式声明bean 1.3 注解方式声明配置类 1.4 FactoryBean 1.5 proxyBeanMethod属性 1.6 使用Import注解导入 1.7 使用上下文对象在容器初始化完毕后注…

(第三百篇BLOG记录)写于博士毕业与入职之初-20230924

启 由于若干原因(包括但不限于紧锣密鼓的完成博士毕业的一系列实验和论文撰写、学习各种百花齐放的有意思的领域、完成人生身份的重大转变),导致卡在299篇博客已经很久了,不过算了一下还是在一个较长时间维度上可以基本保持每周一…

CompletableFuture-FutureTask

2. CompletableFuture 语雀 2.1 Future接口理论知识复习 Future接口(FutureTask实现类)定义了操作异步任务执行一些方法,如获取异步任务的执行结果、取消异步任务的执行、判断任务是否被取消、判断任务执行是否完毕等。 举例:…

github pages 部署单页面

github pages介绍 GitHub Pages是一个免费的托管服务,可以直接从GitHub存储库中创建和托管网站。可以使用GitHub Pages来构建自己的网站或为项目生成网站。每个GitHub帐户和组织都可以拥有一个站点,以及无限的项目站点。 主站点的地址就是用户名.githu…

基于springboot+vue的云南旅游网(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

Linux离线安装elasticsearch|header|kibna插件最详细

1.准备软件安装包 [hadoophost152 elasticsearch]$ ll -rw-r--r--. 1 hadoop hadoop 515807354 9月 23 23:40 elasticsearch-8.1.1-linux-x86_64.tar.gz -rw-r--r--. 1 hadoop hadoop 1295593 9月 23 23:48 elasticsearch-head-master.tar.gz -rw-r--r--. 1 hadoop hadoop…

Android修行手册 - Android Studio去掉方法参数提示、变量类型提示、方法引用Usage提示

点击跳转>Unity3D特效百例点击跳转>案例项目实战源码点击跳转>游戏脚本-辅助自动化点击跳转>Android控件全解手册点击跳转>Scratch编程案例点击跳转>软考全系列 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分享&…

Hudi第一章:编译安装

系列文章目录 Hudi第一章:编译安装 文章目录 系列文章目录前言一、环境准备1.JDK2.Maven1.上传并解压。2.修改源3.添加环境变量 二、hudi编译1.上传解压2.修改pom1.添加仓库2.修改依赖的组件版本 2.修改源码兼容hadoop33.手动安装Kafka依赖1.上传jar包2.install到m…

Linux使用一个脚本启用、停用springboot项目(本文带脚本)

前言 如果仅需要脚本的小伙伴可以下拉至后面&#xff0c;我这里一步一步交大家发布项目 学习之前我们要先会搭建一个项目 可以去看这篇文章&#xff1a;搭建一个SpringBoot项目 一、首先我们配置多环境 0、resources文件如下 1、配置pom.xml文件 <build><!--打包…

uniapp webview实现双向通信

需求&#xff1a;uniapp webview嵌套一个h5 实现双向通信 uniapp 代码 <template><view><web-view src"http://192.168.3.150:9003/" message"onMessage"></web-view></view> </template><script>export defau…

精品基于Python房源爬虫实现数据可视化分析

《[含文档PPT源码等]精品基于Python实现的爬虫实现数据可视化分析》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程等 软件开发环境及开发工具&#xff1a; 开发语言&#xff1a;python 使用框架&#xff1a;Django 前端技术&#xff1a;JavaScript…

JavaScript中的解构赋值

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 对象解构赋值⭐ 数组解构赋值⭐ 默认值和剩余元素⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感兴趣、刚…

【面试经典150 | 滑动窗口】长度最小的子数组

文章目录 写在前面Tag题目来源题目解读解题思路方法一&#xff1a;暴力枚举方法二&#xff1a;滑动窗口 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法&#xff0c;两到三天更新一篇文章&#xff0c;欢迎催更…… 专栏内容以分析题目为主&#xff0c;并附带一些…

stable diffusion模型评价框架

GhostReview:全球第一套AI绘画ckpt评测框架代码 - 知乎大家好&#xff0c;我是_GhostInShell_&#xff0c;是全球AI绘画模型网站Civitai的All Time Highest Rated (全球历史最高评价) 第二名的GhostMix的作者。在上一篇文章&#xff0c;我主要探讨自己关于ckpt的发展方向的观点…

如何模拟自然界生态系统中的食物链

本人最近在研究一款针对青少年儿童的教育游戏&#xff0c;希望从培养孩子各方面的综合素质出发&#xff0c;引导孩子掌握多方面的软知识&#xff0c;软技能。其中有一个比较新颖的游戏玩法------打猎。该玩法创新点在于&#xff0c;引入了食物链的概念。过去一般的游戏里&#…

【C++】STL之list深度剖析及模拟实现

目录 前言 一、list 的使用 1、构造函数 2、迭代器 3、增删查改 4、其他函数使用 二、list 的模拟实现 1、节点的创建 2、push_back 和 push_front 3、普通迭代器 4、const 迭代器 5、增删查改(insert、erase、pop_back、pop_front) 6、构造函数和析构函数 6.1、默认构造…

BGP-IBGP(第九课)

BGP-IBGP(第九课) 0 IBGP 水平分割的概念 1 BGP 反射器 2 IBGP 互联不了的原因 3 BGP 通告原则 4 IBGP 互通 方案一 静态路由 5 IBGP 互通 方案二 OSPF 中引入BGP 6 IBGP 互通 方案三 全网互通 7 IBGP 互通 方案四 反射器 0 IBGP 水平分割的概念 通过IBGP获得的最优路由不会发…

网页文本编辑器

<!DOCTYPE html> <html><head><meta charset"utf-8"><title>文本编辑器</title><style>.box {height: 500px;width: 1000px;margin: auto;background-color: navajowhite;}.box_h {/* font-weight: normal; */text-al…