有学有练才叫学习:学而不思则罔,思而不学则殆:学而不习,纸上谈兵,习而不进,画地为牢!

js 数据类型转换方法?js怎么转换数据类型?

javascript cat 11个月前 (11-15) 50次浏览 已收录 0个评论 扫描二维码

1、转换为number类型

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()

parseInt(参数):将参数转换为整数

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
// 除了以上六个外,其它的都是真值

js世界的假值:共6个

假:0 NaN 空字符串 false null undefined

真:其它的值都为真,包括一切对象

4、toFixed

数字.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
喜欢 (0)
cat
关于作者:
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址