typeof查看数据类型,以及类型转换

    技术2022-07-11  99

    javascript 是一种即面向过程,又面向对象的语言 

    typeof    能返回这6种数据类型   number string boolean object undefined function

    null  -> object (特殊值,必须要记住)

     

    显示类型转换

    转换为数字

    var num = Number("a");

    undefined 转换成数字,显示NaN(非数)

    看起来不是数字的就必须不能转换成数字

     

    转换为整型

    var num = parseInt(demo);

    var demo = "10";

    console.log(demo) //输出10

     

    parseInt的另外一种用法:

    var num = parseInt(demo, 16); 以目标机底为进制,转换成10进制

    说的通俗一点,就是被解析值的进制,转换成10进制

    radix 2-36(进制)

    parseInt 的第二个功能,从前往后,遇到非数字进行砍断,并提取数字

    例如:如下会输出123

    var demo = "123abc"; var num = parseInt(demo);

     

    parseFloat:看到除了第一个小数点,的数字进行返回

    例如:会输出100.123

    var demo = "100.123"; var num = parseFloat(demo);

     

    String不管写什么东西都会转换成字符串

    var num = String(demo);

     

    Boolean除了6个特殊值,其他的都会转换成true

    undefined null 0 -0 NaN  " "(注意最后一个是空字符串,不是空格字符串)

    var num = Boolean(demo);

     

    tostring转换为字符串的用法:

    注意:有两个东西不能用tostring null与underfind

    var demo = 123; var num = demo.toString();

     

    tostring另外一个用法:

    以10进制为机底转换成目标进制的过程

    var num = demo.toString(16);

     

    例子:先将2进制10000通过使用parseint转换为10进制

    再通过toString,将10进制转为16进制

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

     

    隐式类型转换

    isNaN  通过Number类型转换后进行比对

    console.log(isNaN("abc"));

    做了以下两个步骤

    先将“abc”字符串拿出来,转换为Number

    再将转换的Number 与NaN进行比对

    所以以上返回结果为true

     

    ++/--    加加和减减

    是通过先转换为Number,再进行加减

     

    +/- 正负,也是通过调用Number显示类型转换

    + 加号 ,则是通过调用 string显示类型转换

     

    -*/% 都是通过调用Number显示类型转换

     

    && || ! 都是通过boolearn显示类型转换

     

    < > <= >= 

    如果两边都是字符串,则是对比ASC码

    如果一边是数字,一边是字符串,则会把字符串,调用Number显示类型转换后,再比大小

     

    ==  !=  

    undefined不等于任何数

    null 不等于任何数

    所以 undefined == null  为true

    注意:NaN 什么都不等于,甚至不等于自身  NaN == NaN 为false

     

    有时候在开发时,不需要类型转换,就需要用到如下这两个了

    ===  绝对等于

    ==!绝对不等于

     

    console.log(typeof(typeof(undefined)));

    首先是里面的 typeof 将undefined转换为字符串undefined

    然后再给外面的typeof

    所以会返回string

     

    null是唯一一个特殊值,是对象object

    Processed: 0.011, SQL: 9