js中数据的显式转换与隐式转换
一、js中的数据类型:数字 字符串 布尔值 函数 对象(obj {} [] null) 未定义
二、js中数据的显式转换方法:Number(), perseInt(), perseFloat()
1、Number()
NUmber() 是进行整体的转换,整体中如果有非数字的值,则不能进行转换,返回的 值为NaN
在js中使用Number()进行转换时,js中的数据类型,类似于数字的字符串可以进行转 换,空的字符串转换为0;单个数组的值可以进行转换,空的数组的值转换为0,空的数 组中包含空的字符串,转换的值也为0;布尔值可 以进行转换 true的值为1 ,false的 值为0;null 可以进行转换,转换的值为0;其余的函数,未定义的, json,以及含有 很多数据的数组是不能进行转换的,如果强行转换,返回的值为NaN
代码如下:
var a='100';
alert(a+100); //100100
alert(Number(a)+100);//200
var b='00100';
alert(Number(b));// 100
var c='+100';
alert(Number(c));//100
var d='-100';
alert(Number(d));//-100
var a1 = '';
alert(Number(a1));//0
var a2 = [];
alert(Number(a2)); //0
var a3 = [''];
alert(Number(a3)); //0
var a4 = null;
alert(Number(a4)); //0
var a5;
alert(Number(a5)); //NaN
alert(a+100); //100100
alert(Number(a)+100);//200
var b='00100';
alert(Number(b));// 100
var c='+100';
alert(Number(c));//100
var d='-100';
alert(Number(d));//-100
var a1 = '';
alert(Number(a1));//0
var a2 = [];
alert(Number(a2)); //0
var a3 = [''];
alert(Number(a3)); //0
var a4 = null;
alert(Number(a4)); //0
var a5;
alert(Number(a5)); //NaN
2、perseInt()、perseFloat()
parseInt() parseFloat() 只能进行字符串中数字的转换
它的转换规则是:从左边开始依次往右边进行转换,当遇见第一个非数字的符号时, 转换停止
他们只 能进行字符串的数字转换,不能进行其他的转换,如果强行转换,返回的值时 NaN,parseInt()转换得到的值是整数型,parseFloat()转换得到的值是浮点数型,可 以通过这一知识利用他俩判断一个数是否是小数。
代码如下:
var a = '100abc200';
alert(Number(a)); //NaN
alert(parseInt(a)); //100
alert(parseFloat(a)); //100
var a1 = 'abc100';
alert(parseInt(a1)); //NaN
var a2 = '100.12';
alert(parseInt(a2)); //100
alert(parseFloat(a2)); //100.12
alert(Number(a)); //NaN
alert(parseInt(a)); //100
alert(parseFloat(a)); //100
var a1 = 'abc100';
alert(parseInt(a1)); //NaN
var a2 = '100.12';
alert(parseInt(a2)); //100
alert(parseFloat(a2)); //100.12
perseInt() perseFloat() 的实例应用:判断一个数是否是浮点数
var a = '100.123';
if(parseInt(a) == parseFloat(a)){
alert(a + '是整数');
}else{
alert(a + '是小数')
}
var a = '100.123';
if(parseInt(a) == parseFloat(a)){
alert(a + '是整数');
}else{
alert(a + '是小数')
}
Number() perseInt() perseFloat() 他们的共性是当遇到的值不能进行转换,返回的 都是NaN
三、js中数据的隐式转换方法 :
1、 + 可以将数字转换为字符串
alert(200 + '3'); //2003
2、 - * / % 可以将字符串转换成数字,进行计算
alert(200 - '3'); //197
alert('200' - '3'); //197
3、 ++ -- 可以将字符串转换为数字进行计算
var a = '10';
a++;
alert(a); // 11
4、> < 可以将字符串转换为数字进行比较
alert('10'>9); //true
alert(200 + '3'); //2003
2、 - * / % 可以将字符串转换成数字,进行计算
alert(200 - '3'); //197
alert('200' - '3'); //197
3、 ++ -- 可以将字符串转换为数字进行计算
var a = '10';
a++;
alert(a); // 11
4、> < 可以将字符串转换为数字进行比较
alert('10'>9); //true
alert('10'>'9') //false
数字间进行比较与字符串的比较不同,数字是整体的数字进行比较。字符串是按 第一位与第一位比较,哪个值大哪个字符串就大,如果值相同,则比较第二位。 返回的都为布尔值
5、==
6、! 取反 把右面的数据类型转换为布尔值
数字间进行比较与字符串的比较不同,数字是整体的数字进行比较。字符串是按 第一位与第一位比较,哪个值大哪个字符串就大,如果值相同,则比较第二位。 返回的都为布尔值
5、==
6、! 取反 把右面的数据类型转换为布尔值
alert(!2) //false
注意:此文章中红色标记的部位为重点部分,蓝色标记的为需要注意的部分,黄色部分为 应用实例部分