02 JS基本数据类型之间的转换

5,055 阅读4分钟

1.转数值

1.1 Number(数据)方法

可以用于任何数据类型,将其转换为数字类型

  • 字符串转数字
  1. 如果转换的字符串是纯数字组成的,那么直接转换为数字
  2. 如果转换的字符串是空字符串或者空白字符串,那么直接转换为数字0
  3. 其他类型的字符串(不是空--空白--纯数字字符串)会转换为NaN
//1. 如果转换的字符串是纯数字组成的,那么直接转换为数字
console.log(typeof(Number('100')),Number('100'))//number 100 会将'100'转换为数字,然后打印到控制台 //
2. 如果转换的字符串是空字符串或者空白字符串,那么直接转换为数字0 
console.log(typeof(Number('')),Number(''))//number 0(什么都没有转换为0) 
console.log(typeof(Number(' ')),Number(' '))//number 0((空白)空格转换为0) //
3.其他类型的字符串(不是空--空白--纯数字字符串)会转换为NaN 
console.log(typeof(Number('abc')),Number('abc'))//number NaN 
console.log(typeof(Number('100abc')),Number('100abc'))//number NaN
复制代码
  • 布尔值转数字
  1. true转换为1
  2. false转换为002 JS基本数据类型之间的转换 - 掘金
console.log(typeof(Number(true)),Number(true))//number 1 console.log(typeof(Number(false)),Number(false))//number 0
```02 JS基本数据类型之间的转换 - 掘金

-   undefined转数字

1.  会直接转为为NaN

console.log(typeof(Number(undefined)),Number(undefined))//number NaN 复制代码


-   null转数字

1.  会直接转为为0

console.log(typeof(Number(null)),Number(null))//number 0 复制代码


#### 1.2 parseInt(数据)

会将数据转换为number类型,并且值是整数(直接忽略掉小数点以后的,并且不是四舍五入)

1.  在转换的时候,如果数据是纯数字字符串或者是数字开头的字符串,那么会转换为数字,否则就是NaN

console.log(typeof(parseInt('100')),parseInt('100'))//number 100 console.log(typeof(parseInt('100.1')),parseInt('100.1'))//number 100 console.log(typeof(parseInt('abc')),parseInt('abc'))//number NaN console.log(typeof(parseInt('100abc')),parseInt('100abc'))//number 100

console.log(typeof(parseInt('')),parseInt(''))//number NaN console.log(typeof(parseInt(' ')),parseInt(' '))//number NaN console.log(typeof(parseInt('true')),parseInt('true'))//number NaN console.log(typeof(parseInt('false')),parseInt('false'))//number NaN console.log(typeof(parseInt('undefined')),parseInt('undefined'))//number NaN console.log(typeof(parseInt('null')),parseInt('null'))//number NaN 复制代码


#### 1.3 parseFloat方法

转换结果于 parseInt 类似,但是在转换小数的时候会有小数点后的数字

console.log(typeof(parseFloat('100.1')),parseFloat('100.1'))//number 100.1 console.log(typeof(parseFloat('100abc')),parseFloat('100abc'))//number 100 console.log(typeof(parseFloat('abc')),parseFloat('abc'))//number NaN

console.log(typeof(parseFloat('')),parseFloat(''))//number NaN console.log(typeof(parseFloat(' ')),parseFloat(' '))//number NaN

console.log(typeof(parseFloat('true')),parseFloat('true'))//number NaN console.log(typeof(parseFloat('false')),parseFloat('false'))//number NaN

console.log(typeof(parseFloat('undefined')),parseFloat('undefined'))//number NaN console.log(typeof(parseFloat('null')),parseFloat('null'))//number NaN 复制代码


#### 1.4扩展: 数据 - 0

console.log(typeof('100'),'100')//string 100 console.log(typeof('100'-0),'100'-0)//number 100 console.log(typeof('100.99'-0),'100.99'-0) //number 100.99 复制代码


## 2.转字符串

#### 2.1 变量.toString()方法 注意:S是大写的

注意:undefined和null不能使用 toString()方法(因为JS没有给我们提供或者说JS不允许)

var str1 = 100 console.log(typeof(str1.toString()),str1.toString())//string 100 var str2 = true console.log(typeof(str2.toString()),str2.toString())//string true var str3 = false console.log(typeof(str3.toString()),str3.toString())//string false var str4 = undefined console.log(typeof(str4.toString()),str4.toString())//这里会报错,因为undefined不能使用toString方法 var str5 = null console.log(typeof(str5.toString()),str5.toString())//这里会报错,因为null不能使用toString方法 复制代码


#### 2.2 String(变量) 注意:S也是大写

什么类型都可以转换为字符串类型,包括undefinednull 类型

var str1 = 100 console.log(typeof(String(str1)),String(str1)) //string 100 var str2 = true console.log(typeof(String(str2)),String(str2)) //string true var str3 = false console.log(typeof(String(str3)),String(str3)) //string false var str4 = undefined console.log(typeof(String(str4)),String(str4)) //string undefined var str5 = null console.log(typeof(String(str5)),String(str5)) //string null 复制代码


#### 2.3 扩展:开发时常用的一个方法

变量+''

var str1 = 100 console.log(typeof(str1 + ''),str1 + '')//string 100 var str2 = true console.log(typeof(str2 + ''),str2 + '')//string true var str3 = false console.log(typeof(str3 + ''),str3 + '')//string false var str4 = undefined console.log(typeof(str4 + ''),str4 + '')//string undefined var str5 = null console.log(typeof(str5 + ''),str5 + '')//string null 复制代码


## 3.转布尔类型

#### 3.1 Boolean(变量) 将其他数据类型,转换为 布尔值(也就是转换为true 或者 false)

1.  数字转换为布尔值,只有0会转换为false 其他的数字都会转换为true(非0即为真)

var num1 = 100 var num2 = 0 var num3 = -1 console.log(num1,'-->',Boolean(num1))//100-->true console.log(num2,'-->',Boolean(num2))//0-->false console.log(num3,'-->',Boolean(num3))//-1-->true 复制代码


2.  字符串转换为布尔值的时候,只有空字符串会转换为 false 其他的字符串都会转换为 true

var str1 = '' var str2 = ' ' var str3 = 'abc' var str4 = '0' console.log(str1,'-->',Boolean(str1))//''-->false console.log(str2,'-->',Boolean(str2))//' '-->true console.log(str3,'-->',Boolean(str3))//'abc'-->true console.log(str4,'-->',Boolean(str4))//'0'-->true 复制代码


3.  undefined 和 null 转换为布尔值的时候 就是 false(重点)

var und = undefined var nul = null console.log(und,'-->',Boolean(und))//undefined-->false console.log(nul,'-->',Boolean(nul))//null-->false