首页 > 其他分享 >TS-类型转换(显式)

TS-类型转换(显式)

时间:2024-06-01 23:33:49浏览次数:13  
标签:类型转换 输出 console log TS let 99.9 显式 字符串

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两种表示无值的类型不具备该方法。

标签:类型转换,输出,console,log,TS,let,99.9,显式,字符串
From: https://blog.csdn.net/weixin_45636198/article/details/139362181

相关文章

  • free batches of packets in tcp_prune_ofo_queue()
      之前在做waf并发压力测试的时候,遇到一个问题,仪器测试正常,但是真实环境测试超时丢包的验证的时候,并发cps都很低。查看cat/proc/net/netstat发现OfoPruned对应值很大,看内核代码才发现,内存不够或rmem超过sk_rcvbuf,就会私房ofo队列,还是全部释放。当时将全部释放改为释放最高的5......
  • CF1961E Turtle and Intersected Segments 题解
    题目链接点击打开链接题目解法不是,我这咋不会做/fn边数很多的最小生成树有一个方法是\(boruvka\),但这个处理完全图的比较方便另一个方法是用到一个\(trick\):连出的图中的环,可以删去最长边扫描线是容易想到的,主要是如何把连的边数缩减到合理的范围内考虑扫描线到当前时刻......
  • ts 装饰器测试
    interfacemycbdInterface{alert(name:string):void,one?:string}//函数装饰器constmyconsole:MethodDecorator=(...rest)=>{console.log(rest,"rest")}//类装饰器constmylog2:ClassDecorator=(target)=>{console.log(target,......
  • ref和reaction的区别(以及TS中ref,computed函数会自动推断定义其泛型(一般不用自己动手))
    其次就是了解ref,reactive的区别。ref通过对象名.value来访问对象里的值,若对象里还有属性则访问其需要:对象名.value.属性名reactive则通过:对象名.属性名,来直接访问属性值其次,两者都是响应式对象。但如果对直接对reactive对象进行赋值,那么其会丢失响应性。代码示例如下:<scri......
  • 儿童节变身小小音乐家,用ModelArts制作一张AIGC音乐专辑
    本文分享自华为云社区《儿童节变身小小音乐家,用ModelArts制作一张AIGC音乐专辑》,作者:华为云社区精选。儿童节,如何给小朋友准备一份特别的礼物?这份AIGC音乐专辑制作攻略一定要收下一段文字灵感就能编织出一曲悠扬悦耳的旋律童话、梦幻、探险……任何关键词都可以成为音乐......
  • css42 CSS Units
    https://www.w3schools.com/css/css_units.asp CSSUnitsCSShasseveraldifferentunitsforexpressingalength.ManyCSSpropertiestake"length"values,suchaswidth,margin,padding,font-size,etc.Lengthisanumberfollowedbyalengthun......
  • macOS下使用bits/stdc++.h万能头文件
     macOS下使用bits/stdc++.h万能头文件1.终端中输入echo|g++-v-xc++-E-#include<...>searchstartshere:/usr/local/include/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/Library/Developer/CommandLineTools/usr/lib/clang/12.......
  • ArkTS的入门到入土 (3)
    三.基础布局1.设计资源-图标库1.1下载图标HarmonyOS图标库IconFont图标库1.2使用图标使用Image组件显示图标,添加fillColor()属性修改图标颜色   Image($r('app.media.ic_public_car'))   .width(50)   .fillColor(Color.Red)2.布......
  • ArkTs入门到入土
    一.ArkTS-语法基础1.开发环境DevEcoStudio支持Windows系统和macOS系统,在开发应用/服务前,需要配置应用/服务的开发环境。环境配置流程:下载软件→安装软件并配置→创建工程并运行。2.基础入门ArkTs:是一门用于开发鸿蒙应用的编程语言编程语言:用来控制计算机工作的,可以......
  • LeetCode 1305. All Elements in Two Binary Search Trees
    原题链接在这里:https://leetcode.com/problems/all-elements-in-two-binary-search-trees/description/题目:Giventwobinarysearchtrees root1 and root2,return alistcontainingalltheintegersfrombothtreessortedin ascending order.Example1:Input:......