【js学习笔记-021】-- 显式类型转换

本文深入解析JavaScript中的类型转换机制,包括自动类型转换、显示类型转换、运算符隐式类型转换等核心概念。同时介绍了数字与字符串之间的转换方法,以及toFixed、toExponential、toPrecision等函数的具体应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

javascript可以做灵活的类型转换,因此其”==”相等运行算也随相等的含义灵活多变,例如下面的结果均为ture.

null == undefined

“0” == 0 //比较之前字符串转换为数字

0==false //比较之前布尔值转换为数字

“0” == false //比较之前字符串和布尔值都转换为数字

 

注意:一个值转换为另一个值,并不意味着两个值相等。比如,如果在期望使用布尔值的地方使用了undefined,它将转换为false,但这并不表明undefined==false。仅是在运行符和语句期望使用多样化的数据类型,并可以互相转换。If语句将undefined转换为false,但“==”从不试图将操作数转换为布尔!

 


js提供了自动类型转换,但有时仍需要要显示转换,或者为了使代码变得清晰易读(个人觉得这个比较重要)

使用String(),Number(),Boolean(),Object()

Number(“3”) //=>3

String(“false”) //=>”false”或使用false.toString()

Boolean([]) //=>true

Object(3) //=>new Number(3)

 

试图将null和 undefined转为对象会报TypeError,使用Object()函数不会报异常,它仅简单的返回一个新的空对象。

 

运算符隐式类型转换

x+”” //等价于String(x)

+x   //等价于Number(x)

!!x //等价于Boolean(x)

 

JS提供了数字到字符串字符串到数字的转换

Number类定义了toString方法可以接收表示转换基数的参数。如果不指定就是十进制。如:

var n=17;

binary_string= n.toString(2);

octal_string= n.toString(8);

hex_string= n.toString(16);

 

当做财务处理和科学计算时可以使用:

toFixed() //小数点后的指定位数来将数字转换为字符串,从不使用科学记数法

toExponential() //指数记数法将数字转换为指数形式的字符串,其中小数点前只有一位

toPercision() //根据指定的有效数字位数将数字转换成字符串

注意:所有三种方法都会适当地进行四舍五入或填充0

例如:var n=123456.789;

n.toFixed(0)  //”123457”

n.toFixed(2)  //”123456.79”

n.toFixed(5)  //”123456.78900”;

 

n.toExponential(1)//1.2e+5

n.toExponential(3)//1.235e+5

 

n.toPercision(4)  //1.235e+5

n.toPercision(7)  //123456.8

n.toPercision(10)//123456.7890

 

如果通过Number()转换函数传入一个字符串,它会试图将其转换为一个整数或浮点数直接量,这个方法只能基于10进制转换。

 

parseInt()和parseFloat()更加灵活一些

可有在字串中使用前缀”0x”或”0X”

parseInt(“0xff”) //=>255

parseInt(“.1”) //=>NaN 不能以.开始

parseFloat(“$72.47”) //=>NaN不能以$开始

 

parseInt()可以接收两个参数,第二个参数合法取范围2~36如:

parseInt(“11”,2) //=>3

parseInt(“ff”,16) //=>255

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值