1、Number(参数)
作用:可以将任何数据类型转换成数字,不影响原参数。只有转换成功或不成功,成功返回数字,不成功返回NaN
转换规则:
1、如果字符串全是数字,则正常转成数字,如果有一个不是数字,则转不成功,不成功则是NaN,空字符或空格转为0
2、数字就是简单返回
3、true转为1,false转为0
4、null转为0
5、undefined转为NaN
var str = '10';
var n = Number(str); // 将字符转换成数字,不影响原字符
console.log(n, typeof n); // 10 'number'
console.log(str, typeof str); // '10' 'string'
console.log(Number('10px')); // NaN
console.log(Number('')); // 0
console.log(Number(' ')); // 0
console.log(Number(20)); // 20
console.log(Number(true)); // 1
console.log(Number(false)); // 0
console.log(Number(null)); // 0
console.log(Number(undefined)); // NaN
2、parseInt()和parseFloat()
parseFloat(参数):将参数转换为小数
转换规则:
从左向右看,一位一位的看,如果是数字,则提出来,如果是数字,则到此为止
区别:
parseFloat认识一个小数点,而parseInt不认识小数点
parseInt有第二个参数,即以多少进制转换,而parseFloat它没有第二个参数
console.log(Number('12.35px')); // NaN 本意想得到12.35
// 因为Number()的转换通常不尽人意,所以我们要有parseInt()和parseFloat()
// parseInt(参数); 将参数转换成整数,它还可以有第二个参数,以即什么进制进行转换
// parseFloat(参数); 将参数转换成小数,认识一个小数点,它不存在第二个参数
// 转换规则:从左向右一位一位的看,如果是数字,则提出来,如果不是数字,则到此为止
console.log(parseInt('12.35px')); // 12
console.log(parseInt('23ab45')); // 23
console.log(parseInt('a23ab45')); // NaN
console.log(parseInt('0.35px')); // NaN
console.log(parseFloat('12.35px')); // 12.35
console.log(parseFloat('12.3.5px')); // 12.3
console.log(parseInt('070')); // 70 在IE8及以下,返回的是56
console.log(parseInt('070', 10)); // 70
2、转换为字符串类型
String(参数); 可以将任何数据类型转换为字符串
参数.toString(); 同String,但是不能转换null和undefined
console.log(String(NaN)); // 'NaN'
console.log(String(1 / 0)); // 'Infinity'
console.log(String(true)); // 'true'
console.log(String(false)); // 'false'
console.log(String(null)); // 'null'
console.log(String(undefined)); // 'undefined'
// -----------------------------------------
console.log((10).toString()); // '10'
console.log(true.toString()); // 'true'
console.log(false.toString()); // 'false'
// console.log(null.toString()); // 报错
// console.log(undefined.toString()); // 报错
3、转换为布尔类型
Boolean(参数);
作用:可以将任何数据类型转换成布尔值
规则:
1、数字里面的0和NaN转换成布尔为false,其它转换为布尔为true
2、字符串里,空字符串为假,其它均为真
3、布尔值简单的返回
4、null和undefined均转换为false
// Boolean(参数)
// 可以将任何数据类型转换成布尔值
console.log(Boolean('ab')); // true
console.log(Boolean(' ')); // true
console.log(Boolean('')); // false
console.log(Boolean(1)); // true
console.log(Boolean(1 / 0)); // true
console.log(Boolean(NaN)); // false
console.log(Boolean(0)); // false
console.log(Boolean(true)); // true
console.log(Boolean(false)); // false
console.log(Boolean(null)); // false
console.log(Boolean(undefined)); // false
// 一切对象都是真的
console.log(Boolean([])); // true
console.log(Boolean({})); // true
// ------------------------
// 总结(记牢)
// js世界的假值有:空字符串 0 NaN false null undefined
// 除了以上六个外,其它的都是真值
假:0 NaN 空字符串 false null undefined
真:其它的值都为真,包括一切对象
数字.toFixed(保留小数的位数)
作用:将数字转换成字符串,并保留几位小数(四舍五入)
var pi = 3.1415926;
console.log(pi.toFixed(2)); // '3.14'
console.log(pi.toFixed(3)); // '3.142'
// 作用:
console.log(0.07 * 10); // 0.7000000000000001
console.log((0.07 * 10).toFixed(2)); // '0.70'
// 通常用于购物车结算
5、isNaN
isNaN(参数); 是不是不是一个数字?
不是数字返回true,是数字返回false
isNaN自己不判断,找它的好朋友Number(),如果Number()能正确返回数字,则返回false,如果Number()转不成功,则返回true
console.log(isNaN(10)); // false
console.log(isNaN('10')); // false
console.log(isNaN(true)); // false
console.log(isNaN(NaN)); // true
console.log(isNaN('12px')); // true
console.log(isNaN(null)); // false
console.log(isNaN(undefined)); // true