隐式类型转换发生在赋值表达式和有返回值的函数调用表达式中。在赋值表达式中,如果赋值符左右两侧的操作数类型不同,则将赋值符右边操作数强制转换为赋值符左侧的类型数值后,赋值给赋值符左侧的变量。
强制类型转换:
字符转数值
parseInt();从左向右一次转换,能转则转,不能转停止;如果第一位就不能转,直接NaN;不识别小数点。
parseFloat();等同于parseInt,同时可以识别小数点
Math.round();严格转换,不允许出现任何非数字的字符,否则NaN;取最接近的整数
Number();严格转换,不允许出现任何非数字的字符,否则NaN;直接转换
varstr="123";
varstr="123abc";
varstr="123abc456";
varstr="a123";
varstr="adasd";
varstr="123.45";
varn=parseInt(str);
console.log(str);
console.log(typeofstr);
console.log(n);
console.log(typeofn);
varstr="a567.892";
varn=parseFloat(str);
console.log(str);
console.log(typeofstr);
console.log(n);
console.log(typeofn);
varstr="-456.789";
varn=Math.round(str);
console.log(str);
console.log(typeofstr);
console.log(n);
console.log(typeofn);
varstr="-456.789a";
varn=Number(str);
console.log(str);
console.log(typeofstr);
console.log(n);
console.log(typeofn);
数值转字符
toString();直接转换,相当于给要转换的数值,加引号
保留n为小数
toFixed();加引号的同时,四舍五入保留n位小数,不够,补零
varn=10.3543;
vars=n.toString();
console.log(n);
console.log(typeofn);
console.log(s);
console.log(typeofs);
varn=10;
vars=n.toFixed(2);
console.log(n);
console.log(typeofn);
console.log(s);
console.log(typeofs);
console.log(123.567000000)
数值转字符
varn=123;
vars=n+"";
console.log(s)
字符转数值
vars="123";
varn=s-0;
console.log(n)
==================================
其他转数值
true为1,false为0
console.log(1+true);//2
console.log(1+false);//1
console.log(1+undefined);//NaN
console.log(1+NaN);//NaN
console.log(1+null);//1
C++中强制类型转换函数有4个:const_cast(用于去除const属性),static_cast(用于基本类型的强制转换),dynamic_cast(用于多态类型之间的类型转换),reinterpreter_cast(用于不同类型之间的指针之间的转换,最常用的就是不同类型之间函数指针的转换)。
¥59.00
¥39.00
¥99.00