js的数据类型

本文详细介绍了JavaScript的数据类型(包括string, number, boolean, undefined, null和object),类型转换的隐式与显式方法,以及进制转换、NaN处理、常见面试题和布尔值操作。涵盖了基础概念和实用技巧,适合开发者日常学习和准备面试。
摘要由CSDN通过智能技术生成

一、数据类型
字符串 string
数值型 number
布尔型 boolean
未定义型 undefined
空     null
对象   object 


1.数值型
       

 v1=081
        // 如果超出八进制 按十进制输出
        console.log(v1);//81
        v2=20e500
        console.log(v2);//infinity正无穷大
        v3=-20e500
        console.log(v3);//-infinity 负的无穷大


        js的最大表示范围 2的53次幂~2的负53次幂
2.类型转换
 (1)隐式类型转换:
     自动将数据从一种数据类型转换为另一种数据类型的过程
     相减 相乘 

 (2)显示类型转换(强制类型转换)
     需要手动转换到目标类型
     将其他数据类型转换为数值型
     Number()
        全数字才识别 true false 空可转换 
       

console.log( Number("hello"));        //NaN
        console.log(Number("23aa"));          //NaN
        console.log(Number(true));             //1
        console.log(Number(false));            //0
        console.log(Number(""));               //0
        console.log(Number("30e5"));           //3000000
        console.log(Number(null));             //0
        console.log(Number(undefined));        //NaN
        console.log(Number(NaN));              //NaN
        console.log(Number("12.56"));          //12.56


     parseInt()
        只识别数字
       

 console.log(parseInt(0.12));    //0
        console.log(parseInt(12.34));   //12
        console.log(parseInt(true));    //NaN
        console.log(parseInt(false));   //NaN
        console.log(parseInt(""));      //NaN
        console.log(parseInt("30e5"));   //30
        console.log(parseInt(25,16));    //37
        console.log(parseInt(25,8));     //21
        console.log(parseInt(1001,2));   //9
        console.log(parseInt(25,10));     //25

     parseFloat()
       

 console.log(parseFloat("23.34"));    //23.34
        console.log(parseFloat("23.45.78")); //23.45


    NaN:not a number  非数值
        表示一个本来要返回数值的操作数而没有返回数值的情况
    NaN不等于任何数值
3.进制转换
    (1)其他进制转换为十进制:
        转换成十进制可以换为中文
        parseInt(25,16)//16进制转换为十进制
        parseInt(25,8)//8进制转换为十进制
        parseInt(25,10)//10进制转换为十进制
        parseInt(25,2)//2进制转换为十进制
    (2)十进制转换为其他进制
        v1=23
        v1.toString(16)
        v1.toString(8)
        v1.toString(2)
        v1.toString(10)
4.常用方法:
   (1)isNaN() 判断是否为非数值
    (2)isFinite()  判断是否为正负有穷
       

 console.log(isFinite(200e500));  //false
        console.log(isFinit(200e5));     //true
    
    console.log(isFinite(200e500));      //false
        console.log(isFinite(200e5));    //true
        console.log(isNaN("hello"));     //true
        console.log(isNaN(true));        //false
        console.log(isNaN(false));       //false
        console.log(isNaN("10"));        //false
        // 1.任何涉及NaN的操作,都返回NaN
        console.log(NaN/8);
        console.log(NaN+8);
        console.log(NaN-8);
        console.log(NaN*8);
        // 2.  NaN与任何值都不相等,包括他本身
        console.log(NaN==NaN);           //false
        console.log(0/0);                //NaN

5.常见的面试题
   

console.log(null*5);                 //0 隐式转换把null转换为0
        console.log(NaN*3);              //NaN
        console.log(undefined*5);        //NaN 隐式转换把undefined转换为NaN
        console.log("hello"*5);          //NaN
        console.log("23"+5);             //235
        console.log("23"*5);             //115
        console.log("23"*1+5);           //28

6.布尔值
   true   false  小写
   if(10>0){

   }else{}

   if((10>5)==true){}
   等价于
   if(10>5){}

   if(!10>5){}

   类型转换
   boolean()

   

console.log(Boolean(23));        //true
   console.log(Boolean(0));        //false
   console.log(Boolean("hello"));   //true
   console.log(Boolean(""));       //false
   console.log(Boolean(null));      //false
   console.log(Boolean(undefined));//false

                 true           false

    数值型      非空就为ture        0
    字符型      非空串为true        ""
    undefined   返回false
    null        返回false
    object      任意对象返回的都是true
7.undefined类型(变量只声明,未赋值)
    (1)变量只声明,未赋值
   

var a
    typeof(a)//undefined
    alert(a)//undefined


    (2)函数没有返回值,默认
   

 alert(c) //报错,没有被定义


    (3)调用函数时,应该提供参数,但没有提供,该参数返回undefined
     

 function f1(a,b){
            alert(a)  //3
            alert(b) //undefined
        }
        f1(3)


8.null 空类型
   

 var a=null
        console.log(typeof(a));//object  null是一种特殊的object
        var b={}
        b.a=23
        b.f1=function(){}
        b=null
        if(b==null){}


9.object  对象类型
    对象就是一定属性和方法的封装体,通过对象能够引用到这些方法和属性。
10、****typeof*****
    (1)数值类型:typeof返回number
       

 console.log(typeof(Infinity))  //number 
 console.log(typeof(1));                    //number
 console.log(typeof(NaN));                   //number
 console.log(typeof(Number.MAX_VALUE));      //number
 console.log(typeof(Number.MIN_VALUE));      //number
 console.log(typeof(Infinity));               //number


    (2)字符串类型 typeof返回string
         

console.log(typeof("123"));                  //string


    (3)布尔类型,typeof返回boolean
       

 console.log(typeof(true));                    //boolean


    (4)对象、数组、null,typeof返回object
     

  console.log(typeof(window));                    //object
        console.log(typeof(document));                 //object
        console.log(typeof(null));                     //object
        console.log(typeof(Math));                     //object
        console.log(typeof([]));                       //object


    (5)函数类型,typeof返回function
       

function f1(){}
        console.log(typeof(f1));                        //function
        console.log(typeof(eval));                      //function

        // console.log(typeof(Date));                   //function


    (6)未定义的变量或undefined本身 返回的是undefined
     

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


二、流程控制语句
1、 if(){
    }else if(){

    }else{

    }

2.流程控制语句
  switch(){
    case:语句体;break;
    case:语句体;break;
    case:语句体;break;
    default 语句体
  }
3.for循环
    for(var i=0;i<=5;i++){
        语句体
    }
    //for in /for each
4.while循环
5.do while至少执行一次
6.break:立即跳出循环,结束所有循环
  continue:停止当前循环,进入下一次循环

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值