一些关于javascript的数据类型之间的转换:
下面方上了javascript各个数据类型之间的转换,的例子。
<script>
var str = "abc" //nan
var str = "12"; //12
var n = Number(str); //强制转换为数值型,字符串必须是纯数值组成才可以转换否则为NaN
console.log(n); // NaN 非数值 数值类型
var str = "abc";
var str = "3a"; // 转换时从第一位到非数值为止转换
var n = parseInt(str); //整形,转换为整形
/* 进制转换 */
var str = "ff";
var str = "100";
var n = parseInt(str, 8); //整形,转换为整形,将字符进制转换为整形10进制数
//第二个参数不填,默认10进制,如果填写只能2到36作为进制转换。
var str = "100.25";
var n = parseFloat(str); //浮点型,就是带小数点的数值,没有第二个参数不担任进制转换。
//Number() parseInt() parseFloat()
/*数值转布尔 */
var str = "100";
false
var str = "1";
true
var n = Boolean(str); //除了0和NaN以外的任何数值转为布尔值都是true
console.log(Boolean(str));
/* 数值转对象 */
var a = 34;
var b = Object(a);
console.log(Object(a)); //对象是方到堆中的,而其他数据类型是放到栈中,此操作相当于把a放到堆中。
/*布尔值转换字符串*/
var a = false;
var b = true;
var n = String(a); //true
var n = toString(2);
console.log(n);
/*布尔值转换成数值*/
var a = true;
var b = Number(a);
var c = false;
var b = Number(c);
//ture转为1,false转为0;
/* undefined转换为null */
console.log(Number(undefined)); //NaN
console.log(Number(null)); //0
/* undefined 转换为 null */
console.log(Number(undefined)); //NaN
console.log(Number(null)); //0
console.log(String(undefined)); //undefined
console.log(String(null)); //null
console.log(Boolean(undefined)); //false
comnsole.log(Boolean(null)); //false
console.log(Object(undefined)); //空对象
console.log(Object(null)); //空对象
/* 对象转数值,对象转字符,对象转布尔值 */
空对象转为数值 NaN 字符串[Object Object] 转为布尔值都是true
var o = {
a: 1
}
// console.log(Number(o));//NaN
//console.log(String(o)); //[Object Object]
// console.log(Boolean(o));//true
</script>