1.转数值
1.1 Number(数据)方法
可以用于任何数据类型,将其转换为数字类型
- 字符串转数字
- 如果转换的字符串是纯数字组成的,那么直接转换为数字
- 如果转换的字符串是空字符串或者空白字符串,那么直接转换为数字0
- 其他类型的字符串(不是空--空白--纯数字字符串)会转换为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
- 布尔值转数字
- true转换为1
- false转换为0
console.log(typeof(Number(true)),Number(true))//number 1 console.log(typeof(Number(false)),Number(false))//number 0
- undefined转数字
- 会直接转为为NaN
console.log(typeof(Number(undefined)),Number(undefined))//number NaN
- null转数字
- 会直接转为为0
console.log(typeof(Number(null)),Number(null))//number 0
1.2 parseInt(数据)
会将数据转换为number类型,并且值是整数(直接忽略掉小数点以后的,并且不是四舍五入)
- 在转换的时候,如果数据是纯数字字符串或者是数字开头的字符串,那么会转换为数字,否则就是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)
- 数字转换为布尔值,只有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
- 字符串转换为布尔值的时候,只有空字符串会转换为 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
- undefined 和 null 转换为布尔值的时候 就是 false(重点)
var und = undefined
var nul = null
console.log(und,'-->',Boolean(und))//undefined-->false
console.log(nul,'-->',Boolean(nul))//null-->false