js中的数据隐式转化和强制转化

本文详细介绍了JavaScript中的数据类型转化,包括隐式转化和强制转化。在隐式转化中,涉及了运算符、比较运算符及在条件语句中的应用。在比较运算中,纯数字字符串会被转化为数值进行比较,而非数字字符串则按字符逐位比较。此外,还阐述了`==`和`===`的区别。在强制转化方面,提到了`parseInt()`, `parseFloat()`, `Math.round()`和`Number()`等方法。最后,强调了在`if`语句中非真值会被转化为`false`的规则。

js中的隐式转化和强制转化

js中数据之间存在着隐式转化和强制转化,下面简单介绍一下。

隐式转化:

1.使用运算符:+ - * / %

1.使用"+“号,当一个加号两边出现双引号的时候表示拼接成一个字符串(暗含就是将其转化为字符串)
2.使用”-"、“*”、"/"等运算符进行计算时会将纯数字的字符串转化为数值类型进行运算(其实理解对数值先进行了Number()处理再进行运算的)比如说是:console.log(“100”-1),这样是可以进行运算的或者(“10”*3)也是可以进行运算的。如果字符中包含了非数字符会出现计算出错NaN的样式。

2.比较运算符:>、<、>=、<=、== 、===

当用到比较运算符,如果是纯数字的字符串,会将其转化位数字类型然后进行比较。

			 var  str1 = "123";
			 var str2 = "1234";
			 //纯数字的进行比较,会进行隐式转化
			 console.log(str1 < str2);
			 //结果返回true

如果不是纯数字的会按照字符串逐位比较,直到有一个比较结果。

			 var  str1 = "Bbc";
			 var str2 = "Abc";
			 //非数字,按照逐位进行比较,如果第一位相等就换第二位
			 console.log(str1 < str2);
			 //结果返回false

==.若是比较字符类型

              var  str1 = "123";
			 var str2 = "123";
			//比较两个数是否相等会先将两个数进行隐式转化
			 console.log(str1 == str2);
			//结果为true
            var  str1 = 123;
			 var str2 = "123";
			//比较两个数是否相等会先将两个数进行隐式转化
			 console.log(str1 == str2);
			//结果为true

可见==存在隐式转化
===不存在隐式转化,会比较数据类型(两个相等,才叫相等)

             var  str1 = 123;
			 var str2 = "123";
			 console.log(str1 === str2);
			//结果为flase

3.在if中也存在隐式转化
0、“”、null、undefined、NaN在if中会转化为false。

强制类型转化
  1.字符转数值
  parseInt():从左向右依次转换,能转则转,不能转停止;如果第一位就不能转,直接NaN;不识别小数点。
 parseFloat():等同于parseInt,同时可以识别小数点
 Math.round():严格转换,不允许出现任何非数字的字符,否则NaN;取最接近的整数
 Number():严格转换,不允许出现任何非数字的字符,否则NaN;直接转换
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值