JavaScript的typeof和类型转换

1.tyoeof:
typeof可以帮助我们区分数据类型:
数据类型有:number string boolean underfined object function这6种
example:

var num = 123;
 console.log(typeof(num));

数据类型为number

2.类型转换:
类型转换又分为显示类型转换和隐式类型转换:
1.显示类型转换;
以下几种代表显示类型转换:Number(mix) , parseInt(string,radix) , parseFloat(string) ,Boolean() ,
toString(radix), string()

Number(mix)类型:将类型转化为数字。

parseInt(string,radix):转化为整型,一旦遇到非数字的就马上中止。
其中它还有一个功能就是转换数字的进制,radix就是它要转化进制的基底,radix的区域范围是2-36
example:

var demo = "123";
  var num = parseInt(demo,16);

parseInt(demo,radix);---->radux,基底为16进制.
输出结果为291;

parseFloat(string):从数字类开始看,看到除了第一点的非数字类中止

String()–>转化为字符串类型

Boolean() -->转化为布尔类型

toString(radix)–>转化为字符串类型,但是有两种类型不能转化,就是undefined和null;转化基底为radix的数。
example:

var num = 10000;
  var test = parseInt(num ,2);
   console.log(test. toString(16));

结果为10

隐式类型转换:又分为以下几种:
1.isNaN:
console.log(isNaN(null));
首先用Number判断它的类型是不是NaN类型,如果是就true,不是就false
结果为false

2.++/–
这里我就用++作为实例,–的原理也是一样的;
a++;---->调用Number();先把a转化为数字类型再进行运算;

 console.log(a);
   var a = "abc";
a++;-->调用Number();


 console.log(a);

// 运行结果为NaN,因为"abc"的类型是NaN;

  1. +/-(一元正负)

    var a = -“abc”;–>调用Number()
    console.log(a + “:” +typeof(a));

+号的隐式类型转换:

 var a = "b" + 1;

// -->当加号两侧其中有一侧是字符串的话,它就会调用的是String();然后整个类型都会变成字符串类型;

console.log(typeof(a) + ":" +a);

结果为string类型,a=b1;

  1. / % - * -->调用Number();
  2. && || !–>进行Boolean();
    6.> < <= >= -->调用Number();

注意:

undefined==null-->true

唯一一个连自己都不等于的:NaN;
绝对等于 ===和绝对不等于!==,左右两侧为一样才相等,除了NaN,不发生类型转换。

你可能感兴趣的:(web前端)