93-js-9-类型转换

概述

显式转化类型

分类

数字转字符串

一元的加号操作符

'' + 10 === '10'; // true

toString()

语法:number.toString(radix)
radix:规定表示数字的基数,是 2 ~ 36 之间的整数。

var num = 15;
var a = num.toString(); // 15
var b = num.toString(2); // 1111
var c = num.toString(8); // 17
var d = num.toString(16); // f

字符串转数字

+'010' === 10
Number('010') === 10
parseInt('010', 10) === 10  // 用来转换为整数

+'010.2' === 10.2
Number('010.2') === 10.2
parseInt('010.2', 10) === 10

一元的加号操作符

+'10' === 10; // true

parseInt()

语法:parseInt(string, radix)
string:要被解析的字符串;
radix:表示要解析的数字的基数。该值介于 2 ~ 36 之间。

parseInt("10");         //返回 10
parseInt("19",10);      //返回 19 (10+9)
parseInt("11",2);       //返回 3 (2+1)
parseInt("17",8);       //返回 15 (8+7)
parseInt("1f",16);      //返回 31 (16+15)
parseInt("010");        //未定:返回 10 或 8

Number()

Number('010') === 10
Number('010.2') === 10.2

其他类型转布尔值

!!

通过使用 操作符两次,可以把一个值转换为布尔型。

!!'foo';   // true
!!'';      // false
!!'0';     // true
!!'1';     // true
!!'-1'     // true
!!{};      // true
!!true;    // true

Boolean()

除了undefined、null、0、-0、NaN、''会被转换成false,其他的值都会转换成true。

let a = Boolean(null); // false