原文链接:周大侠啊 进击的 JavaScript(一) 之 类型转换
说起 js 类型转换,都是头疼吧,晕晕的,但是不行啊,这东西很重要滴! 基础知识JavaScript的数据类型分为六种,分别为null, undefined, boolean, string, number, object。
object是引用类型,包含数组,其它的五种是基本类型或者是原始类型(原始值)。
我们可以用typeof方法打印来某个是属于哪个类型的。不同类型的变量比较或者运算,要先转类型,叫做类型转换。
注意,typeof null 返回 "object",它是一个特殊的对象值,含义是“非对象”。实际上,我们通常认为null是自有类型的唯一成员。
parseInt()和parseFloat() 字符串转数字
js提供了parseInt()和parseFloat()两个转换函数。前者把值转换成整数,后者把值转换成浮点数。只有对String类型调用这些方法,这两个函数才能正确运行;对其他类型返回的都是NaN(Not a Number)。
parseInt():
parseInt("1234blue"); //1234 parseInt("0xA"); //10 parseInt("22.5"); //22 parseInt("blue"); //NaNparseInt()方法还有第二个参数,可以把二进制、八进制、十六进制或其他任何进制的字符串转换成整数。所以要解析十六进制的值,需如下调用parseInt()方法:
parseInt("AF", 16); //175当然,对二进制、八进制,甚至十进制(默认模式),都可以这样调用parseInt()方法:
parseInt("10", 2); //2 parseInt("66", 8); //54 parseInt("10", 10); //10parseFloat字符串转浮点数字,没有第二个参数。
下面是使用parseFloat()方法的示例:
toFixed() 数字转成字符串
根据参数保留小数点后几位 会四舍五入,如果无参,默认为0;
例:
toExponenttial() 数字转成字符串
根据参数保留小数点后几位 指数形式 会四舍五入
这个我不就不举例了,感兴趣的,自己百度下把。
Number对象的 toString() 方法, 数字转字符串
根据2 8 16 (范围2 - 36)分别转为二进制 八进制 十六进制字符串,,
不带参,就默认为10, 转十进制。
例:
下面三个构造函数,当没有使用 new 时,表示类型转换函数,使用new 时,表示转对象(创建一个对应对象),即转换得到的值 创建一个对应的对象。
Boolean()
它会把 “真值” 转为 true , “假值” 转为 false。
Boolean()方法的示例:
Boolean(""); //false “假值” Boolean("zdx"); //true “真值” Boolean(66); //true “真值” Boolean(null); //false “假值” Boolean(0); //false “假值” Boolean(new Object()); //true “真值”Number()
有以下规律:
false、null、""、[],转为0
true , 转1
数字转数字
全是数字的字符串转数字
//(如果是有效十六进制 会 转十进制数字)例:Number("0xf") //15
数组内全是数字(不能有逗号)转数字
数组内字符串全是数字(不能有逗号)转数字
其他都是 NaN
其实从 第五条那个开始,严谨一点是:
对象类型,先调用valueOf() 方法,然后按照前四点转换返回的值。如果返回的值不是原始类型,则调用toString()方法,再按前四点转换返回的值。
大栗子:
Number(false); //0 Number(null); //0 Number(""); //0 Number([]); //0 Number(true); //1 Number("66"); //66 Number("66f"); //NaN Number(new Object()); //NaN Number([66]); //66 Number(["66"]); //66 Number([6,6]); //NaN Number(["6f6"]); //NaNString()
String()可把任何值转换成字符串。它就是调用传进参数的 toString()方法。使用String()转换成字符串和调用toString()方法的唯一不同之处在于,对null或undefined值转换可以生成字符串而不引 发错误:
String()方法的示例:
String(null); //"null" var null = null; null.toString(); //报错 String(undefined); //"undefined"Object()
这个函数,使用 和 不使用 new 是一样的。
它会把原始值,根据它的类型,使用对应的构造函数,创建一个对象。null 和 undefined 和创建一个空对象。
Object(66); //数字对象,等于 new Number(66) Object("66"); //字符串对象,等于 new String("666") Object(true); //布尔对象, 等于 new Boolean(true) Object(null); //空对象,等于 new Object() Object(undefined); //空对象,等于 new Object()JavaScript 的基础类型中 有布尔类型,这个类型的值,只有两个值---- true 和 false
任意的JavaScript 的值都可以转换为布尔值。但只有下面这六个值会转为false:
"" 0 -0 null undefined NaN