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

104 阅读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转换为0
console.log(typeof(Number(true)),Number(true))//number 1 console.log(typeof(Number(false)),Number(false))//number 0
  • 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也是大写

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

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
  1. 字符串转换为布尔值的时候,只有空字符串会转换为 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
  1. undefined 和 null 转换为布尔值的时候 就是 false(重点)
var und = undefined 
var nul = null 
console.log(und,'-->',Boolean(und))//undefined-->false 
console.log(nul,'-->',Boolean(nul))//null-->false