亲宝软件园·资讯

展开

js数据类型转换

ghj_Vin 人气:2

js数据类型转换

 

数据类型转换要先说下typeof属性。

typeof属性作用:判断数据类型。

例如: console.log(typeof "aaa");得到string。

var b=null;console.log(typeof b); 得到object。

 

1.强制转换(主动将数据的类型强制转换为某种类型)

(1)String(数据) 强转为字符串

例如

var num=null;

var a=String(num);

console.log(a); //null

console.log(typeof num); //object

console.log(typeof a); //string

 

(2)数据.toString(进制) 强转为任意进制的字符串

null和undefined是不能转换的,

toString可以将任何数字转换为任意进制,进制必须大于等于2并且小于等于36,也就是最小是2进制,最大是36进制,因为数字字母0~9+A~F有36个。

例如

var num=10;

var a=num.toString(2);

console.log(a); //1010

console.log(typeof num); //number

console.log(typeof a); //string

 

(3)数据.toFixed(小数点后几位) 强转为四舍五入保留位数的字符串,但是有精度误差

例如

var num=10.35;

var a=num.toFixed(1);

console.log(a); //10.3

 

(4)Number(数据) 强转为数值

NaN(非数值 类型是number)

纯字符---> NaN

纯数字--->数字

部分数字,部分字符--->NaN

布尔值--->数字 true--->1 false--->0

undefined--->NaN

null--->0

 

例如

var str="你好"; //纯字符 NaN

 

var str="12"; //纯数字 数字

 

var str="1a"; //部分数字,部分字符 还是NaN

 

var str=""; //0

 

var str=" "; //0

 

var num=Number(str);

console.log(num);

 

(5)parseInt(数据,进制) 强转为整数

可以将指定进制字符串转换为10进制数值,是toString()逆转换。

如果没指定进制,则表示将10进制字符串转换为10进制数值。

 

纯字符---> NaN

纯数字--->数字

部分数字,部分字符--->通过parseInt转换数值可以从开始转换到字符前为止变成数值,如果第一位是字符,返回NaN

布尔值--->NaN

undefined--->NaN

null--->NaN

 

例如

var str="你好"; //NaN

 

var str="20.78";

var num=parseInt(str); //20,如果 第二个没有填值,则表示10进制数值转换为10进制数值

 

var str="1010";

var num=parseInt(str,2);//10,将2进制字符串转换为10进制数值

 

var str="16a";//16

var num=parseInt(str);//第二个没有填值,按照10进制转换 16

 

var str="a16";// NaN

 

(6)parseFloat(数据,进制); 强转为小数

强转小数和parseInt类似,只不过可以保留小数位

 

(7)Boolean(数据) 强转为布尔值

"" 0 false,undefined,null,NaN 转换为布尔值都会变成false,除此之外转换都是true。

例如

var a=" ";

console.log(Boolean(a)); //true

 

var b=3;

var c=3;

console.log(Boolean(b-c)); //false

 

var str="0a";

console.log(Boolean(str)); //true

 

2.隐式转换(当数据类型不相同时,做数据的运算,就会自动将两端的数据转换为相同类型然后运算,这是隐式转换,隐式转换遵从与 String() Number() Boolean() )

(1)+

字符相加 就是将字符首尾相连,字符合并

例如

var a="a";

var b="b";

console.log(a+b); //ab

 

 

如果字符和非字符相加,会自动将非字符隐式转换为字符 String()

例如

var a=6;

var b="a";

console.log(a+b); //6a,这里将a隐式转换为字符串,并且相加首尾相连

 

非字符相加,按照隐式转换为数值,进行数值算术运算相加

var a=6;

var b=true;

console.log(a+b); //7

 

 

(2)- * / %

- * / % 都是隐式转换为数值运算 不管有没有字符

例如

var a=6;

var b="a";

console.log(a-b);//减法会隐式转换将a和b都转换为数值 6-NaN  得到NaN。

加载全部内容

相关教程
猜你喜欢
用户评论