JavaScript学习——数据类型转换

    科技2022-08-28  114

    在JavaScript中,变量可以赋予任何类型的值,但是运算符对数据类型是有要求的,如果运算符发现数据类型不符合要求,就会自动进行隐式类型转换。除了自动进行的隐式类型转换之外,还可以手动强制转换。

    一、转换为数值型

    1.字符型转为数值型 1.1 Number() Number()是隐式类型转换的方法,这种方法字符串中只要含有非数值就会转换为NaN。空字符转换为数值型是0。

    console.log(Number("4a")); //控制台输出NaN console.log(Number("")); //0

    1.2 parseInt() parseInt() 方法是将字符型转换为整形数值,从开始位置依次向后转换直到遇到非数值停止,即不识别0-9之外的数字。parseInt(string,radix)可以接收两个参数,分别是待转换的字符和进制,按照后面给定的进制来识别前面的字符并输出一个十进制数。

    console.log(parseInt("45.3a6")); //45 console.log(parseInt("45.3a6",16)); //两个参数分别为要转换的字符 和进制。 console.log(parseInt("100",2)); //4 console.log(parseInt("f",16)); //15 按照后面的进制去识别前面的字符,输出的是十进制 数。

    1.3parseFloat() 将字符型转换为浮点型,只识别字符串中第一个小数点。不能设置进制。

    console.log(parseFloat("4.55.3")); //4.55

    2.布尔型转为数值型 用Number()进行隐式转换,true转换为数值为1,false转为数值为0。

    console.log(Number(true)); //1 console.log(Number(false)); //0

    3.Undefined,Null转为数值型 用Number()进行隐式转换,Undefined转为数值型是NaN,Null转换为数值型是0。

    console.log(Number(undefined)); //NaN console.log(Number(null)); //0

    4.Object,NaN转换为数值型

    console.log(Number({a:1,b:2})); //NaN console.log(Number(NaN)); //NaN console.log(Number({})); //NaN console.log(Number([])); //0

    二、转换为字符型

    1.数值转为字符型 1.1 String()隐式类型转换方法

    console.log(String(0.000004)); //输出字符型0.000004 console.log(String(2e+2)); //科学技术法表示的数会先转化为十进制表示的数再转换为字符型

    1.2 toString()方法 可以将数值按照指定的进制进行强制转换。

    console.log(0xff.toString(2)); //11111111 将0xff表示的十六进制数转换为二进制并输出字符串 console.log(07.toString(2)); //111 将07表示的八进制数转换为二进制并输出字符串

    1.3 toFixed() toFixed()可以接收一个参数,表示保留小数点后的位数,一般情况下是遵循四舍五入,但是!但是当保留位数的后一位时5的时候可能会有误差。

    console.log(2.556.toFixed(2)); // 2.56 console.log(2.55.toFixed(1)); // 2.5

    1.4 toPrecision() 接收一位参数,表示保留的数字的位数。并不是科学计数法。

    console.log(0.00000556.toPrecision(2)); //0.0000056 var a = 120056; console.log(a.toPrecision(2)); //输出 1.2e+5

    1.5 toExponential() 科学技术法,接收一位参数,表示保留小数点后几位。

    console.log(0.00000556.toExponential(2)); //5.56e-6

    1.6 toLocaleString()

    console.log(0.00000556.toExponential(2)); //输出0

    2.布尔值、null、undefined、NaN转换为字符类型 用String()进行隐式转换

    console.log(String(false)); //false console.log(String(true)); //true console.log(String(NaN)); //NaN console.log(String(undefined)); //undefined

    3. []、对象转换为字符类型

    console.log(String([])); //输出空字符串 "" console.log(String([1,2,3])); //输出字符串 1,2,3 console.log(String({b:1})); //前一个object表示是一个对象,后一个object表示类型。

    三、转换为布尔值

    Boolean()隐式类型转换方法。 0, NaN, false, “”, undefined, null这六个转为布尔值为false,其他都为true。

    console.log(Boolean(" ")); //空格字符串 true console.log(Boolean([])); //true console.log(Boolean({b:1})); //true

    注意: console.log(![] == []); 输出为true。!的运算符优先级高,需要先把[]转换为布尔值为true,![] 就是false。而[]默认调用toString方法转化为字符串,为"", ""再转为布尔值是false,所以![] == []为true。

    console.log(![] == []); //true

    四、其他数据类型无法转换为undefined,null

    Processed: 0.009, SQL: 9