<script>
//数字类型的转换
//字符串转数字类型
console.log(Number('')) //字符串类型 空字符串 转为0
console.log(Number('234ab')) //字符串类型 转为NaN 不是一个数
console.log(typeof NaN) //NaN它不是一个数,但又是数字类型 转为number
//boolean转数字类型
console.log(Number(true)); //布尔值,true为真 转为1
console.log(Number(false)); //false为假 转为0
console.log(Number(null)); //空值,跟空字符串一样,值为空 转为0
console.log(Number(undefined)); //未赋值,虽然不是一个数,但是转为了数字类型,所以是NaN
console.log(NaN == NaN);//两个都不是数的数值类型不相等 false
console.log(1 =='1'); //字符串类型自动隐式转换为数字类型的1,所以两个1相等 为true
console.log(1 == true) //隐式转换 上面true转成数字类型时为1 所以两个值相等 为true
console.log(null == ''); //null为boolean值的空 ''为字符串的空 所以false
//转数值类型的方法 1:浮点型 2:整型
//parseInt() 识别字符串中以数字开头的连续性的值,转成对应的值,不可以识别小数点
//parseFloat() 识别字符串中以数字开头的连续性的值,可以识别小数点,转成对应的值
var str = "123";
console.log(parseInt(str)); // 字符串类型的值 转成对应的值 123
console.log(parseInt('123.234')) //parseInt不识别小数点后的值 所以为123
console.log(parseInt('123asd')) //parseInt只识别数字,不识别字符 ,所以为123
console.log(parseInt('0123asd')) //parseInt 从正整数开始,不识别字符 ,所以为123
console.log(parseInt('0.123asd')) //parseInt 不识别小数点以后的数,所以为0
console.log(parseFloat('123')) //对应字符串
console.log(parseFloat('0.asd123')) //虽然识别小数点后的数,但是不识别字符,所以为0
console.log(parseFloat('0.123asd')) // 识别小数点后的数 0.123
console.log(parseFloat('a0.as123')) //第一个就是字符 所以为NaN
//String 字符串类型的转换
//string toString()
//string
console.log(String(123)); //数字转字符串 为'123'
console.log(typeof String(123)) //检查string(123)的数据类型 为string
console.log(String(true)) //boolean布尔值转字符串为 'true' 'false' 'null'
console.log(undefined) //未赋值所以还为undefined
var arr=[1,'a',['asd']];
console.log(String(arr)) //数组转换为字符串 为'数值的内容'
var obj ={"name":"ujiuye"}
var str1 = String(obj)
console.log(str1) //引用数据类型的转换 为[object object]
console.log(str1.length) //他的长度为两个object的长度+括号+空格 等于15
console.log(typeof str1) // 声明时已经转为string类型 所以还是string类型
//toString() 变量tostring类型 ()里代表number类型的进制 范围2~36
var x = 234;
console.log(x.toString()); //转换tostring类型 234
console.log(x.toString(2)); // 2进制的234;