前端面试题-强制类型转换

157 阅读2分钟

1、转换函数:parseInt / parseFloat

(1)parseInt(s, radix):将字符串转换为整数。
(2)parseFloat(s):将字符串转换为浮点数。

var int = parseInt("123", 10);  // int 是10进制数字 123
var int2 = parseInt("123", 16);  // int2 是16进制数字 291
var float = parseFloat("123.45");  // float 是数字 123.45

2、强制类型转换函数:Number / String / Boolean

(1)Number(v):将指定的值转换为数字。
(2)String(v):将指定的值转换为字符串。
(3)Boolean(v):将指定的值转换为布尔值。

var num = Number("123");  // num 是数字 123
var str = String(123);  // str 是字符串 "123"
var bool = Boolean(0);  // bool 是布尔值 false

3、弱类型转换运算符

(1)强制运算符:如 +-*/ 等,可以隐式地将其他数据类型转换为数字。
(2)二元运算符:如 +-,可以用来进行强制类型转换。
(3)位运算符:如 |&^~<<>>>>> 等,可以用来进行强制类型转换。

var v1 = +"123";  // v1 是数字 123
var v2 = -"123";  // v2 是数字 -123
var v3 = "123" / 1 // v3 是数字 123
var v4 = "123" * 1 // v4 是数字 123

var v5 = "" + 123  // v5 是字符串 "123"
var v5 = 123 + ""  // v5 是字符串 "123"
var v6 = 123 - "1" // v6 是数字 122
var v6 = "123" - 1 // v6 是数字 122

var v7 = "123" | 1 // v7 是数字 123
var v8 = "123" & 1 // v8 是数字 1
var v9 = "123"^1 // v9 是数字 122
var v10 = ~"123"  // v10 是数字 -124
var v11 = "123" >> 1 // v11 是数字 61
var v12 = "123" << 1 // v12 是数字 246

var v13 = "123" >>> 1 // v13 是数字 61