JS数据类型转换

2023-05-26 15:07:57 浏览数 (1)

一、强制/显式类型转换

主要有Number、String、Boolean三种

1. Number

可以将任意类型数据转为number,主要分为简单数据类型、引用数据类型两种

a. 简单数据类型

null ➡️ 0,undefined ➡️ NaN,'' ➡️ 0,123abc ➡️ NaN,number ➡️ number, 非空字符串 ➡️ NaN

b. 引用数据类型

Object、Array:先调用valueOf()方法,如果返回简单数据类型,则可,否则再调用toString()方法,如果得到简单数据类型即可,否则报错。

Date:与Object、Array正好相反;。

[] ➡️ '' ➡️ 0

2. String

可以将任意类型数据转为string,主要分为简单数据类型、引用数据类型两种

a. 简单数据类型

null ➡️ 'null',undefined ➡️ 'undefined',true ➡️ 'true',false ➡️ 'false'

b. 引用数据类型

Object、Array:先调用toString()方法,如果返回简单数据类型,则可,否则再调用valueOf()方法,如果得到简单数据类型即可,否则报错。

3. Boolean

可以将任意类型数据转为boolean,true ➡️ true,false ➡️ false,除了以下五个,其余全部转为true

undefined、null、0(包括 0和-0)、NaN、''(空字符串)

二、自动/隐式类型转换

主要有三种情况,自动转为boolean、自动转为数值、自动转为字符串( 、-)

1. 自动转为boolean

a. 短路,如:1 && 2 && 3 ➡️ 1,0 && 1 && 2 ➡️ 1

b. !![] ➡️ false

c. 三目/元运算

2. 自动转为数值

a. 除了加,其他四则运算均转为数值

b. 一元运算符, true ➡️ 1

c.

3. 自动转为字符串

a. 只要a和b相加,只要有一个是字符串,那么就会转为字符串

0 人点赞