数据类型转换
写一个函数,该函数用于得到三个数中的最小值。刚开始测验的时候没啥问题,然后我输入5,8,10之后,控制台输出的是10最小,才想到使没有把a,b,c转换为数字类型。需要使用强制类型转换。
function min(){
var a =+prompt('输入第一个数');
var b =+prompt('输入第二个数');
var c =+prompt('输入第三个数');
if(a<b && b<c){
console.log(a+'最小')
}else if(b<c && b<a){
console.log(b+'最小')
}else{
console.log(c+'最小')
}
}
min()
语法: var str = 数据.toString([进制数]);
任意数据类型的数据转换为string类型
let a = 123;
// 转换成string
let b = a.toString();
特殊情况,undefined 和 null 无法调用这个函数,所以使用的时候会报错
Uncaught TypeError: Cannot read property ‘toString’ of undefined
使用String()函数做强制类型转换时,对于Number和Boolean实际上就是调用的toString()方法,但是对于null和undefined,就不会调用toString()方法,而是将null直接转换为字符串"null",将undefined直接转换为字符串"undefined"
parseInt(数据[string][, radix]
将数据转换为number类型(整数)
radix底数,数据转换为radix基底的数,取值范围 2~36,根据基底数做计算的到一个数值,默认是10
parseInt(1010,2) // 2 表示被解析值是二进制数
parserFloat(数据)
- 碰到第一个非小数或数字字符,则停止转换
- 如果无法转换,转换的结果为NaN
parseFloat(3.14); //3.14
parseFloat('3.14'); //3.14
parseFloat('0.0314E+2'); //3.14
parseFloat('a') //NaN
parseFloat('') //NaN
Number(数据)
将一个数据解析为number类型,如果数据中包含非法数字,则返回NaN
-+ 强制转换为number类型
new Number(value);
var a = new Number('123'); // a === 123 is false
var b = Number('123'); // b === 123 is true
a instanceof Number; // is true
b instanceof Number; // is false
Boolean(数据)
- “” , ‘’ null undefined 0 NaN false除了这些以外其他都是真值
- 字符串里的任何数据都是true,除了空字符串是false
var x = "undefined";
var y = "false";
var z = "";
function assert(xVar){
if(xVar)
console.log(true);
else
console.log(false);
}
assert(x); //true
assert(y); //true
assert(z); //false