其他类型转数字类型
// 1.isNaN()是否有非有效数字 有非有效数字返回true 否则false
let account="sd2323"
console.log(isNaN(account)) //true
// 2.Number()方法把其他类型转为数字类型 先把要转换的类型转换为字符串类型 在来判断是否有非有效数字 有的话就返回NAN 没有就返回数字
let num = "s23"
let num1 = "23"
console.log(Number(num))//NAN
console.log(Number(num1))//23
// 3.把对象转换为数字类型也会先转为字符串 如 {name:1}会转换为 "object objext" 其中数组 [] 空数组会转换为 ""在转换为0 其他都是按第2点规则执行
let obj ={name:1}
let arr=[]
let arr1=[1]
let arr2=[1,2]
console.log(Number(obj))//NAN
console.log(Number(arr))//0
console.log(Number(arr1))//1
console.log(Number(arr2))//NAN
// 4.布尔类型转数字类型 ture为1 false为0
let bool =true
console.log(Number(bool))//1
// 5.null为0 undefined为NaN
console.log(Number(null))
console.log(Number(undefined))
其他类型转字符串类型
//1.使用tostring()方法 都会转为字符串
let nub = 12
console.log(nub.toString())//'12'
//2.字符串拼接 遇到字符串 +号不会进行加法运算 而是进行拼接 拼接后会转为字符串 如果没有遇到字符串则会进行运算 运算会先转换为数字类型 按转数字类型的第二条规则执行
console.log("12"+12)//"1212"
console.log("12"+true)//"12true"
let cc = 1+null+undefined+true+"1"+[12]+NaN+1+false-true+{"aa":1}+null-1
console.log(cc)//NaN
//3.NAN与任何数运算都会得到NAN
console.log(NaN+null)//NaN
其他类型转布尔类型
//1.只要是 "", null, undefined, 0,NaN 这5个值都为false 其他任何值都为true
console.log(Boolean(""))//false
console.log(Boolean(NaN))//false
//2.!取反 !!取反在取反
let bools=true
console.log(!bools)//false
console.log(!!bools)//true