当前位置 知且行 大前端 js转换数据类型 下一篇:

js转换数据类型

转换成字符串

  • 使用字符串方法toString([进制])转换,但是null和undefined无法转换。

  • 使用顶层函数String()可以将任何数据类型转换成字符串,包括null和undefined。

  • 在其他数据类型和字符串类型进行连接(+操作)操作时,会自动对其他数据类型使用String()强制转换成字符串,然后再相加

将其他数据类型的值转换成字符串,可以使用toString(),也可以使用String()。区别在于String可以转换任何类型的值为字符串,toString()不能转换undefined和null。区别二是语法不同。

var a = 123, b = 3.14, c, d = null, e = true, f = ['apple', 'banana'], g = {name: '杨过', skill: '黯然销魂掌'};
console.log(a.toString()); // 123
console.log(b.toString()); // 3.14
// console.log(c.toString()); // 报错
// console.log(d.toString()); // 报错
console.log(String(c)); // undefined
console.log(String(d)); // null
console.log(e.toString()); // true
console.log(f.toString()); // apple,banana
console.log(g.toString()); // [object Object]

隐式转换:在其他数据类型和字符串类型进行连接(+操作)操作时,会自动对其他数据类型使用String()强制转换成字符串,然后再相加

var a = 123, b = 3.14, c, d = null, e = true, f = ['apple', 'banana'], g = {name: '杨过', skill: '黯然销魂掌'};
console.log(a + 'hello'); // 123hello
console.log(c + 'world'); // undefinedworld
console.log(f + 'test'); // apple,bananatest

转换成数值型

parseInt() -- 转换成整型

parseInt() 方法首先查看位置 0 处的字符,判断它是否是个有效数字;如果不是,该方法将返回 NaN(not a number),不再继续执行其他操作。但如果该字符是有效数字,该方法将查看位置 1 处的字符,进行同样的测试。这一过程将持续到发现非有效数字的字符为止,此时 parseInt() 将把该字符之前的字符串转换成数字。如要把字符串 "12345red" 转换成整数,那么 parseInt() 将返回 12345,因为当它检查到字符 r 时,就会停止检测过程。

var a = 123;
console.log(parseInt('35')); // 35
console.log(parseInt('abc123')); // NaN
console.log(parseInt('a123red')); // NaN 
console.log(parseInt('123red')); // 123 
console.log(parseInt(a + '456')); // 123456 
console.log(parseInt('3.14')); // 3 

parseFloat() -- 转换成浮点型

道理和转换成整型道理一样,只不过浮点型允许有一个小数点出现。

var a = 123;
console.log(parseFloat('35')); // 35
console.log(parseFloat('abc123')); // NaN
console.log(parseFloat('a123red')); // NaN
console.log(parseFloat('123red')); // 123
console.log(parseFloat(a + '4.56')); // 1234.56
console.log(parseFloat('3.14')); // 3.14

Number() -- 强制转换

Number() 函数的强制类型转换与 parseInt() 和 parseFloat() 方法的处理方式相似,只是它转换的是整个值,而不是部分值。

用 Number() 进行强制类型转换,"1.2.3" 将返回 NaN,因为整个字符串值不能转换成数字。如果字符串值能被完整地转换,Number() 将判断是调用 parseInt() 方法还是 parseFloat() 方法。

console.log(Number('35')); // 35
console.log(Number('abc123')); // NaN
console.log(Number('123red')); // NaN
console.log(Number('3.14')); // 3.14
console.log(Number('3.1.4')); // NaN

转换成布尔型

显示的转换是使用Boolean()函数,对需要转换的内容进行转换。

以下内容在转换成布尔值时会被转换成false:

  • 数值型的 0
  • 数值型的 0.0
  • 布尔型的 false
  • 空字符串 ""
  • 非数字 NaN
  • undefined
  • null

除此以外,其他所有值都会转换成true,包括 "0"、空数组 [] 和空对象 {} 。

console.log(Boolean('0')); // true
console.log(Boolean(0)); // false
console.log(Boolean(0.0)); // false
console.log(Boolean('0.0')); // true
console.log(Boolean({})); // true
console.log(Boolean([])); // true
console.log(Boolean(undefined)); // false
console.log(Boolean(NaN)); // false
转载必须注明出处:https://www.zhiqiexing.com/138.html

关于我

我希望能成为一个认真、有趣、创造更多价值的人
关注微信
微信扫一扫关注我

微信扫一扫关注我

返回顶部