JS的类型转换,强制转换和隐式转换

JS的类型转换

1.强制转换

通过String(),Number(),Boolean()函数强制转换

var str=123;
   var str1='123';
   console.log(typeof str);
   console.log(typeof str1);
   console.log(typeof String(str));
   console.log(typeof Number(str1));

输出

 number
 string
 string
 number
  • 1
  • 2
  • 3
  • 4

2.隐式转换

JavaScript的数据类型分为六种,分别为null,undefined,boolean,string,number,object。object是引用类型,其它的五种是基本类型或者是原始类型。我们可以用typeof方法打印来某个是属于哪个类型的。不同类型的变量比较要先转类型,叫做类型转换,类型转换也叫隐式转换。隐式转换通常发生在运算符加减乘除,等于,还有小于,大于等。。

console.log(typeof '11')//输出string
console.log(typeog 11) //输出number
console.log('11' < 4 ) //输出fals

 

1.字符串加数字,数字就会转成字符串。

2.数字减字符串,字符串转成数字。如果字符串不是纯数字就会转成NaN。字符串减数字也一样。两个字符串相减也先转成数字。

3.乘,除,大于,小于跟减的转换也是一样。

隐式转换的其他例子

console.log(10+'20') //2010

console.log(10-'20')//-10 number
console.log(10-'one') //NaN not a number
console.log(10-'101a') //NaN
console.log(10*'20') //200 number
console.log('10'*'20') //200 number
console.log(20/'10') //2 number
console.log('20'/'10') //2 number
console.log('20'/'one') //NaN

关于==

1.undefined等于null

2.字符串和数字比较时,字符串转数字

3.数字为布尔比较时,布尔转数字

4.字符串和布尔比较时,两者转数字

console.log(undefined==null) //true
console.log('0'==0) //true 字符串转数字
console.log(0==false) //true 布尔转数字
console.log('0'==false) //2个都转成数字
console.log(null==false) //false
console.log(undefined==false)//false
posted @ 2018-02-24 12:20  前端极客  阅读(13897)  评论(3编辑  收藏  举报