2.js变量类型转换、自动转换、手动转换、请问parseInt(),parseFloat(),Number()的区别?
1)隐式(自动)转换,不同的数据类型参与表达式运算过程时将会转换为同一类型进行运算
字符串与数值类型运算的隐式转换规则:
1.字符串加数字,数字就会转成字符串。
2.数字减字符串,字符串转成数字。如果字符串不是纯数字就会转成NaN。字符串减数字也一样。两
个字符串相减也先转成数字。
3.乘,除,大于,小于跟减的转换也是一样。
2)显示(手动)转换
字符串转数值:
parseInt()、parseFloat()、Number()
数值转字符串:
toString()
注:NaN表示不是数字,但是仍是数值类型, not a number,NaN是Number类型。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
</html>
<script type="text/javascript">
//js的数据类型转换: 当发生不同数据类型之间的运算时,就需要先进行数据类型转换,然后再运算。
//1、自动转换
//1)、 +
/*
var str="年龄是:"+ 20;//先把20转成字符串类型,然后进行拼接
alert(str);
*/
//2)、-
//var str="25" - 20;//先把"25"转成数字类型,然后进行减法;
//var str="ab"-20; //先把"ab"转成数字类型,然后进行减法;由于"ab"不能转换成数字,那就成了NaN(not a number)
//alert(str);
//3)、乘,除,大于,小于跟减的转换也是一样。
//2、手动转换
//1)、字符串转成数字
// parseInt();//把字符串转成整型
// parseFloat();//把字符串转成浮点型(小数)
// number();//把字符串转成数字
//parseInt():
//转换规则:从字符串的第一个字符开始,
//如果第一个字符就是非数字,那么结果就是NaN;
// 如果第一个字符就是数字,那就继续朝后找,直到碰到第一个非数字或者结尾为止。把前面的所有的内容转成数字。
/*
//var str="250";//250
//var str="250.61.8";//250
//var str="250.612a.8";//250
//var str="a250.612a.8";//NaN
var num = parseInt(str);//把str转成整型;
alert(typeof num);
alert(num);
*/
//parseFloat():
//转换规则:跟parseInt比较接近;
//从字符串的第一个字符开始,
//如果第一个字符就是非数字,那么结果就是NaN;
// 如果第一个字符就是数字,那就继续朝后找,
// 碰到第一个小数点,那就正常转换,
// 碰到第二个小数点或者其它非数字或者结尾为止。把前面的所有的内容转成数字。
//var str="250.6";//250.6
//var str="250.61.8";//250.61
//var str="250.612a.8";//250.612
//var str="a250.612a.8";//NaN
/*
var num = parseFloat(str);
alert(typeof num);
alert(num);
*/
//Number():
//Number()的转换规则:
//Number()看的是整体,只要字符串里的内容不是合法的数字,那就NaN;
//var str="250.6";
//var str="250";
//var str="250.61.8";//NaN
//var str="250.612a.8";//NaN
//var str="a250.612a.8";//NaN
/*
var num = Number(str);
alert(typeof num);
alert(num);
*/
//2)、toString()
var age = 12;
var str = age.toString();
alert(typeof str);
/*-----------------------------------面试题--------------------------------------------*/
/*
//面试题:请问parseInt(),parseFloat(),Number()的区别?
//答:
1、parseInt()字符串转换成整型,parseFloat()字符串转换成浮点型,Number()字符串转换成数字型;
2、
Number():看的是整体,只要字符串内的内容不是合法的数字,则结果为NaN;否则,就会正常转换为数字类型(整型或者浮点型)。
parseInt()和parseFloat()的转换规则比较接近(类似);
从前朝后,如果第一个字符是非数字,那么,结果为NaN;如果第一个字符是数字(继续朝后看):
1)、parseInt():如果遇到小数点或者其它非数字字符或结尾,那么就把前面的内容正常转换为数字
2)、parseFloat():如果遇到第二个小数点或者其它非数字字符或结尾,那么就把前面的内容正常转换为数字
*/
</script>