当前位置: 首页 > news >正文

TS-类型转换(显式)

1.将其他类型转换为布尔类型

要将其他类型转换为布尔类型,只需要将待转换的值传入Boolean()函数

var msg: string = "ok";
var msgToBollean: boolean = Boolean(msg); //得到true

Boolean()函数会判断传入的值是空值还是非空值。

若表示非空值,则返回true

若表示空值,则返回false

在TypeScipt中,以下5种值在一定程度上都有空值的含义,转换后会返回false,而对于其他值都会返回true

1.undefined(无初始值)

2.null(无值)

3.NaN(非正确数字)

4.0

5.""(空字符串)

console.log(Boolean(undefined)); //输出false
console.log(Boolean(null));      //输出false
console.log(Boolean(0));         //输出false
console.log(Boolean(""));        //输出false
console.log(Boolean(NaN));       //输出false
console.log(Boolean(-1));        //输出true
console.log(Boolean("false"));   //输出true

2.将其他类型转换为数值类型

将其他类型转换为数值类型的函数有以下3个

1.parseInt():将字符串类型的值转换为整型数值

2.parseFloat():将字符串类型的值转换为浮点类型数值

3.Number():将任意类型的值转换为数值类型的值

2.1parseInt()

parseInt()函数可以将传给它的代表数字的字符串转换成整数

let scoreString: string = "100";
let score: number = parseInt(scoreString); //100

在转换时,需要注意以下几点

1.该函数在转换时会忽略掉前面的空格,会从第一个非空字符串开始解析,如果解析过程中遇到非数字字符,会从这里开始忽略掉它及它以后的所有字符串,示例代码如下。

console.log(parseInt("     100")); //输出100
console.log(parseInt("100y01"));   //输出100

2.如果待转换的字符串的首个非空格字符串不是数字或正负号,则返回NaN

console.log(parseInt("y100"));  //输出NaN

3.在转换时会忽略小数点后的数值 

console.log(parseInt("100.1")); //输出100

2.2parseFloat

parseFloat()和parseInt()函数类似,但该函数将传给它的代表数字的字符串转换成浮点数。

let scoreString: string = "99.9";
let score: number = parseFloat(scoreString); //99.9

在转换时需要注意以下几点:

1.parseInt()函数类似,parseFloat()函数也会忽略字符串开头的空格,解析过程中如果遇到非浮点数字符(除正负号,小数点,0—9或科学记数法的指数e或E字符),会从这里开始忽略它及它以后的所有字符串。

console.log(parseFloat("     -99.9")); //输出-99.9
console.log(parseFloat("99.9y01"));    //输出99.9

2. 字符串中的第二个小数点无效。

console.log(parseFloat("99.9.88"));    //输出99.9

3.如果没有小数点,或小数点后面的数字为0,转换出的数值实际上为整数。

 

console.log(parseFloat("99.9.88"));    //输出99.9

2.3Number()

Number()函数可以将传给它的任意类型的值转换成数值类型。对于不同的待转换类型,其转换规则略有不同。

1)将布尔类型转换为数值类型
当将布尔类型转换为数值类型时,true会转换为1,false会转换为0。

console.log(Number(true));  //输出1
console.log(Number(false)); //输出0

 2)将undefined、null、""(空字符串)等空值转换为数值类型
null和""将会被转换为0,而undefined将会被转换为NaN。

console.log(Number(undefined)); //输出NaN
console.log(Number(null));      //输出0
console.log(Number(""));        //输出0

3)将字符串类型转换为数值类型
当进行这种转换时,其规则和使用parseFloat()函数进行转换类似,区别在于Number()函数要求字符串的非空字符必须是严格的数字形式,否则会直接返回NaN。

console.log(Number("99.9    "));   //输出99.9
console.log(Number("     -99.9")); //输出-99.9
console.log(Number("99.9y01"));    //输出NaN
console.log(Number("99.9.88"));    //输出NaN

3.将其他类型转换为长整型

BigInt()函数可以将传给它的数值类型和字符串类型的值转换为长整型。

let bigint1: bigint = BigInt("124573945793");
let bigint12: bigint = BigInt(1232434531);

 BigInt()函数要求字符串的非空字符必须是严格的整数形式,否则会在运行时报错。

4.将其他类型转换为字符串类型

使用以下两种方式可以将其他类型的值转换为字符串类型。 

1.通过String()构造函数产生新的字符串

2.通过调用其他类型的toString()方法来进行转换

4.1调用String()

几乎所有类型都可以通过String()产生新的字符串

let string1: string = String(99.9);      //得到"99.9"
let string2: string = String(true);      //得到"true"
let string3: string = String(null);      //得到"null"
let string4: string = String(NaN);       //得到"NaN"
let string5: string = String(undefined); //得到"undefined"

4.2调用toString()

调用其他类型的toString()方法来进行转换

let number1: number = 99.9;
let boolean1: boolean = true;
let bigint1: bigint = 666n;
let nanNumber: number = NaN;
console.log(number1.toString());   //输出"99.9"
console.log(boolean1.toString());  //输出"true"
console.log(bigint1.toString());   //输出"666"
console.log(nanNumber.toString()); //输出"NaN"

 注意,null和undefined两种表示无值的类型不具备该方法。

相关文章:

TS-类型转换(显式)

1.将其他类型转换为布尔类型 要将其他类型转换为布尔类型,只需要将待转换的值传入Boolean()函数 var msg: string "ok"; var msgToBollean: boolean Boolean(msg); //得到trueBoolean()函数会判断传入的值是空值还是非空值。 若表示非空值&#xff0…...

protobufjs 配置踩坑记录

本文主要是小程序使用PB协议,以下时博主遇到的问题以及解决办法。 1、安装protobufjs npm install --save protobufjs 注意:我之前也使用过 npm install -g protobufjs去安装,但是出现以下的问题,关键是我使用sudo 清除相关文件…...

freeswitch官方仓库

概述 在使用源代码编译安装freeswitch的过程中,我们经常需要一些依赖库,其中freeswitch官方的yum源仓库是最齐全最方便的。 但是,freeswitch仓库的配置和使用需要先在signalwire网站注册账号并获取PAT(personal access token&am…...

element ui el-calendar日历组件完整代码

el-calendar日历组件完整代码 1. 说在前面2. 日历整体代码3. 编辑与新增 1. 说在前面 最近一直忙于上班,没咋看博客,发现很多小伙伴都要日历组件的代码,于是今天抽空给大家整理一下,为爱发电!日历组件的原文在这里&am…...

初识java——javaSE(8)异常

文章目录 一 异常的概念与体系结构1.1 什么是异常?1.2 异常的体系结构!1.3 编译时异常与运行时异常与Error编译时异常:异常声明:throws关键字 运行时异常:什么是Error? 二 处理异常2.1 异常的抛出:throw(注…...

C语言面试题11至20题

探索编程面试题:深度解析11至20题 在编程面试中,经常会遇到一些需要深入理解计算机科学基础和编程原理的问题。以下是对一些常见面试题的详细解答,涵盖递归、循环控制、内存管理等关键概念。 11. 递归函数定义没有问题,递归深层…...

视频汇聚EasyCVR综合安防平台对接GA/T1400公安视图库及应用方案

随着科技的不断进步,视频监控系统在公共安全领域发挥着越来越重要的作用。GA/T1400公安视图库作为公安视频图像信息应用系统的标准,为视频监控系统的对接提供了统一的规范和技术要求。 GA/T1400标准的应用范围广泛,涵盖了公安系统的视频图像信…...

在Github找自己想要的的项目

点击进入github 1.首先进入到github的首页;搜索框搜(先关键字搜索)in:name 你的找的项目 比如: in:name Sping Boot2.进一步检索(点赞数高的) in:name Sping Boot star:>1000 3.如何要找最新的&…...

第16篇:JTAG UART IP应用<三>

Q:如何通过HAL API函数库访问JTAG UART? A:Quartus硬件工程以及Platform Designer系统也和第一个Nios II工程--Hello_World的Quartus硬件工程一样。 Nios II软件工程对应的C程序调用HAL API函数,如open用于打开和创建文件&#…...

Python——Selenium快速上手+方法(一站式解决问题)

目录 前言 一、Selenium是什么 二、Python安装Selenium 1、安装Selenium第三方库 2、下载浏览器驱动 3、使用Python来打开浏览器 三、Selenium的初始化 四、Selenium获取网页元素 4.1、获取元素的实用方法 1、模糊匹配获取元素 & 联合多个样式 2、使用拉姆达表达式 3、加上…...

2024最新群智能优化算法:大甘蔗鼠算法(Greater Cane Rat Algorithm,GCRA)求解23个函数,提供MATLAB代码

一、大甘蔗鼠算法 大甘蔗鼠算法(Greater Cane Rat Algorithm,GCRA)由Jeffrey O. Agushaka等人于2024年提出,该算法模拟大甘蔗鼠的智能觅食行为。 参考文献 [1]Agushaka J O, Ezugwu A E, Saha A K, et al. Greater Cane Rat Alg…...

苍穹外卖数据可视化

文章目录 1、用户统计2、订单统计3、销量排名Top10 1、用户统计 所谓用户统计,实际上统计的是用户的数量。通过折线图来展示,上面这根蓝色线代表的是用户总量,下边这根绿色线代表的是新增用户数量,是具体到每一天。所以说用户统计…...

AWS需要实名吗?

AWS作为全球领先的云计算服务提供商,对于实名认证有着严格的要求。实名认证是指用户在使用AWS服务时需要提供真实有效的个人身份信息,以便AWS能够对用户的身份进行验证和管理。对于AWS而言,实名认证是确保用户安全和服务质量的重要环节&#…...

Android下HWC以及drm_hwcomposer普法(下)

Android下HWC以及drm_hwcomposer普法(下) 引言 不容易啊,写到这里。经过前面的普法(上),我相信童鞋们对HWC和drm_hwcomposer已经有了一定的认知了。谷歌出品,必须精品。我们前面的篇章见分析到啥来了,对了分析到了HwcDisplay::in…...

【评价类模型】熵权法

1.客观赋权法: 熵权法是一种客观求权重的方法,所有客观求权重的模型中都要有以下几步: 1.正向化处理: 极小型指标:取值越小越好的指标,例如错误率、缺陷率等。 中间项指标:取值在某个范围内较…...

PG 窗口函数

一,简介 窗口函数也叫分析函数,也叫OLAP函数,通过partition by分组,这里的窗口表示范围,,可以不指定PARATITION BY,会将这个表当成一个大窗口。 二,应用场景 (1)用于分…...

冯喜运:5.31晚间黄金原油行情分析及尾盘操作策略

【黄金消息面分析】:周五(5月31日),最新发布的数据显示,美国4月核心PCE物价指数月率录得0.2%,低于预期(0.3%),经济学家认为,核心指数比整体指数更能反映通胀。除此之外,美…...

Vue 框选区域放大(纯JavaScript实现)

需求:长按鼠标左键框选区域,松开后放大该区域,继续框选继续放大,反向框选恢复原始状态 实现思路:根据鼠标的落点,放大要显示的内容(内层盒子),然后利用水平偏移和垂直偏…...

C#加密与java 互通

文章目录 前言对方接口签名要求我方对接思路1.RSA 加密2.AES256加密 完整的加密帮助类 前言 提示:这里可以添加本文要记录的大概内容: 在我们对接其他公司接口的时候,时常会出现对方使用的开发语言和我方使用的开发语言不同的情况&#xff…...

C#【进阶】特殊语法

特殊语法、值和引用类型 特殊语法 文章目录 特殊语法1、var隐式类型2、设置对象初始值3、设置集合初始值4、匿名类型5、可空类型6、空合并操作符7、内插字符串8、单句逻辑简略写法 值和引用类型1、判断值和引用类型2、语句块3、变量的生命周期4、结构体中的值和引用5、类中的值…...

挑战杯推荐项目

“人工智能”创意赛 - 智能艺术创作助手:借助大模型技术,开发能根据用户输入的主题、风格等要求,生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用,帮助艺术家和创意爱好者激发创意、提高创作效率。 ​ - 个性化梦境…...

java 实现excel文件转pdf | 无水印 | 无限制

文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

无法与IP建立连接,未能下载VSCode服务器

如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...

C++ 基础特性深度解析

目录 引言 一、命名空间(namespace) C 中的命名空间​ 与 C 语言的对比​ 二、缺省参数​ C 中的缺省参数​ 与 C 语言的对比​ 三、引用(reference)​ C 中的引用​ 与 C 语言的对比​ 四、inline(内联函数…...

Unit 1 深度强化学习简介

Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...

3403. 从盒子中找出字典序最大的字符串 I

3403. 从盒子中找出字典序最大的字符串 I 题目链接:3403. 从盒子中找出字典序最大的字符串 I 代码如下: class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?

Redis 的发布订阅(Pub/Sub)模式与专业的 MQ(Message Queue)如 Kafka、RabbitMQ 进行比较,核心的权衡点在于:简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...

佰力博科技与您探讨热释电测量的几种方法

热释电的测量主要涉及热释电系数的测定,这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中,积分电荷法最为常用,其原理是通过测量在电容器上积累的热释电电荷,从而确定热释电系数…...

Java + Spring Boot + Mybatis 实现批量插入

在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法&#xff1a;使用 MyBatis 的 <foreach> 标签和批处理模式&#xff08;ExecutorType.BATCH&#xff09;。 方法一&#xff1a;使用 XML 的 <foreach> 标签&#xff…...

基于 TAPD 进行项目管理

起因 自己写了个小工具&#xff0c;仓库用的Github。之前在用markdown进行需求管理&#xff0c;现在随着功能的增加&#xff0c;感觉有点难以管理了&#xff0c;所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD&#xff0c;需要提供一个企业名新建一个项目&#…...