zoukankan      html  css  js  c++  java
  • js中的类型转换

    先介绍一下 typeof 的使用方法:

    typeof(mix)   或者  typeof  mix

    其中 mix 可以是任何数据类型

    js有六种数据类型:

    五种简单数据类型,又叫基本数据类型,分别为:Number,String,Boolean,Null,Undefined;

    一种基本数据类型:Object

    typeof 的返回值有六种:

    number、string、boolean、object、 function和underfined

    注意:返回值是一个字符串类型

    特别的:

    • typeof(null)==="object";//true
    • typeof(NaN)==="number";//true

    类型转换:

    一、显示类型转换

    1. Number(mix)  :把mix转化成数字类型  可以转为数字的就转化为相应的数字,不能转化的就转为NaN        其中:
      Number(true) //1;Number(false)//0;Number(null) //0;Number(undefined) //NaN
    2. parseInt(mix,radix) :把mix转化成整数 除了数字和能转化为数字的字符串,其他都转化为NaN,当mix为字符串时,则从第一位一直到非数字截止,即该方法可以截断                                                                                                  radix是将mix看成radix进制  来进行转化  若有小数部分则是直接去掉  

      注意:parseInt(true) //NaN; parseInt(false) //NaN;在把字符串转化为数字时,parseInt()可以截断,但Number()不能  =》  parseInt("123qqq")//123;Number("123qqq")//NaN

    3. parseFloat(number) :转化成 浮点类型  从一位开始看,到除了第一个点以外的非数字位截止
    4. Boolean(mix) : 转化为boolean类型
    5. String(mix) :转化为字符串类型

      mix.toString(radix)  与String(mix)用法不同   且undefined和null不能使用  mix.toString();    radix是目标值的进制   将mix转化成radix进制。

    注:如将二进制10100转化为16进制 

    过程是 先parseInt()转化为10进制  然后在toString()转化为16进制

    var num=10100;

    var test=parseInt(num,2);

    num.toString(16);

    2、隐式类型转化(内部隐式的调用的都是显示类型的方法)

      1. isNaN():内部隐式调用Number()进行类型转化,再判断Number()返回的值是否是NaN。如:isNaN(null)//false   isNaN(underfined)//true
      2. ++(加加)    --(减减)  +(正)  - (负):内部隐式调用Number()转化后再进行相应计算
      3. +(加号)  当加号两边有一个是字符串的话,就会调用String,然后进行字符串的拼接
      4. -    *    /    %    内部隐式调用Number()进行类型后再计算
      5. <(小于)    >(大于)      <=(小于等于)     >=(大于等于)    字符串和数字比  会调用Number   转化为数字
      6. ==       !=           1==‘1’//true         undefined==null     1>2<3;//true      NaN==NaN;//false NaN不等于任何东西 包括本身
      7. &&(与)   ||(或)    !(非)    &&    ||  虽然有转化 但返回的依然是原值

        &&:先看第一个表达式转化成布尔值的值,如果为真,那么看第二个表达式转化为布尔值的值,。。。。依次进行,直到碰到假;如果只有两个表达式,则会在第一个表达式转化为布尔值为真时,直接返回第二个表达式的值;否则返回第一个表达式的值进行赋值

        var a = 1 && 2+2;//4

        var b = 0 && 2+2;//0

        ||:与&&类似,但先看第一个表达式转化为布尔值后的值,如果为真,直接返回第一个表达式的值,如果为假,则接着往下进行判断

        判断真假只是决定是否接着“往下走”,但返回的仍是其本身的值,而不是转化的布尔值

    注:  使用未声明的变量只有一种情况 不报错  就是   typeof(a);//undefined   

    因为 typeof  返回的是一个字符串            typeof(typeof(a));//String   【面试题】

    一些示例:

    typeof(a);//undefined
    typeof(undefined);//undefined
    typeof(NaN);//number
    typeof(null);//object
    var a="123abc";
    typeof(+a);//numberr
    typeof(!!a);//boolean
    typeof(a+"");//string
    1=="1";//true NaN==NaN;//false NaN==undefined;//false ''11''+11;//1111 1==='1';//false parseInt('123abc');//123 typeof(typeof(a));//string
  • 相关阅读:
    numpy百题冲关,pandas百题冲关
    mapreduce过程以及相关类总结
    mapreduce,数据结构和类型介绍
    精确度、召回率、混淆矩阵的关系
    小程序点击图片放大效果 单张图片 多张图片
    小程序动态添加class及调接口传递多个参数
    小程序for循环嵌套
    小程序富文本转换
    jquery函数加载及生成随机数
    微信小程序 swiper 显示图片计数 当前/总数
  • 原文地址:https://www.cnblogs.com/lihuijuan/p/8688033.html
Copyright © 2011-2022 走看看