系统学习(javascript)_基础(数据类型之间的转换)

在js中数据类型装换一般分为两种,即强制类型转换隐式类型转换(利用javascript弱变量类型转换)。


强制转换:

  利用js提供的函数parseInt(),parseFloat(),Number(),Boolean()进行数据转换,前两个分别是对数据进行解析转换,前者是整数,后者是浮点数。解析的原则是从前往后进行解析,尽其所能。若存在有能识别的数字就解析,如果第一位不是数字则返回NaN。Number则是对整体进行判断,是数字返回数字,否则返回NaN。Boolean()则是内容强制转换为布尔true或者false。

ParseInt():

  parseInt(123);//123

  parseInt(+123);//123

  parseInt(++123);//NaN

  parseInt(-123);//-123

  parseInt(--123);//NaN

  parseInt(“12.3元”);//12

  parseInt("abc");//NaN

扫描二维码关注公众号,回复: 5587817 查看本文章

  parseInt([1,2]);//1

  parseInt(" ");//NaN

该方法还有基模式,可以把二进制、八进制、十六进制或其他任何进制的字符串转换成整数。基于parseInt()方法的第二个参数指定,对于含有前导的数则直接进行解析:

   parseInt("AA",16);//170

   parseInt(10,2);//2

   parseInt("10",8);//8

   parseInt("10",10);//10

  //含有前导

  parseInt("0xAA");//170

  //如果二进制数包含前导0,那么最好采用基数2,不然默认以十进制解析

  parseInt("010");//10

  parseInt("010",2);//2

        parseInt("010",   8);//8 

        parseInt("010",   10); //10 

        parseInt(null);//NaN

parseFloat():

        parseFloat("123");//123

        parseFloat("-123");//123

         parseFloat("+123");//123

        parseFloat("12.34");//12.34

         parseFloat("12.35元");//12.35

        parseFloat("12.23.122");//12.23

        parseFloat("av");//NaN

        parseFloat("0xAA");//0

        parseFloat("0110");//110

        parseFloat([1]);//1

        parseFloat([2,3]);//2

        parseFloat([]);//NaN

        parseFloat(null);//NaN

Number():

        Number("123");//123

        Number("+123");//123

        Number("12.3");//12.3

        Number(true);//1

        Number("12.3.4");//NaN

        Number(" ");//0

        Number("abc");//NaN

        Number([]);//0

        Number([1]);//1

        Number([1,2]);//NaN

        Number(new Object());//NaN

        Number(null);//0

Boolean():不会对引号里面的数字进行自动进行转换。 

        Boolean(1) ;//true

        Boolean(0);//false

        Boolean("1");//true

        Boolean("0");//true

        Boolean("abc");//true

        Boolean('');//false

        Boolean('   ');//true

        Boolean([]);//true

        Boolean([1]);//true

        Boolean(null);//false

而String()则是传入的所有数据类型转换为字符串。

String()和toString()方法的区别

typeof String(null)//String

typeof String(undefined)//String

隐式类型转换:

  隐式类型转换和java中大不相同,在js中数据类型不严格,没有浮点型和整型。

  隐式类型转换指的是字符串和数值类型之间的转换,在进行字符串和数字之间进行减乘除取模运算或者进行比较运算时,自动把字符串转换为数字,转换数字的默认方法是调用Number()。进行加法运算则是将数字看成字符串进行拼接

var x = "123";

var y = 121;

console.log(x+y);//"123121;

console.log(x-y);//2

console.log(x*y);//14883

console.log(x/y);//1.016528256198346

console.log(x%y);//2

console.log(x>y);//true

console.log(x==y);//false

console.log("123a">y);//false诡异

javascript只是一种弱类型的脚本语言,语法相对于java等高级编程语言来说不够严格,所以对于它的数据类型之间的转换很容易混淆。  

参考文章:https://www.cnblogs.com/liqiangchn/p/6915072.html

猜你喜欢

转载自www.cnblogs.com/wush-1215/p/10558954.html