zoukankan      html  css  js  c++  java
  • JS数据类型

    一、基本数据类型(简单数据类型)

    1. number 数值类型

    整数

    (1)十进制表示   var a = 100;

    (2)八进制表示

      以0为前缀  var b = 021; //结果为十进制的 17

    (3)十六进制表示

      以0x为前缀  var c = 0x35;//结果为十进制的 53

    使用 : 整数可以采用不同进制表示,在控制台输出时一律会按照十进制输出

    小数

    (1)小数点表示  var m = 1.2345;

    (2)科学计数法

    例 : 1.5e3

    e表示10为底,e后面的数值表示10的次方数

    1.5e3 等价于 1.5 * 10(3)

    2. string 字符串类型

    字符串 : 由一个或多个字符组成,使用""或''表示,每一位字符都有对应的Unicode编码

      var s = "100";

      var s1 = "张三";

    3. boolean 布尔类型

    只有真和假两个值,布尔值与number值可以互相转换。true 为 1,false 为 0

      var isSave = true;

      var isChecked = false;

    4. undefined 

    特殊值,变量声明未赋值时显示undefined

      var a;

      console.log(a);//undefined

    5. null 空类型

    解除对象引用时使用null,表示对象为空

    二、引用数据类型

    主要指对象,函数等

    三、检测数据类型

    typeof  变量或表达式

    typeof (变量或表达式)

    var n = "asda";
    console.log(typeof n);//string
    console.log(typeof(n));//string

     四、数据类型转换

    不同类型的数据参与运算时,需要转换类型

    1.强制类型转换

    (1)转换字符串类型

      方法 : toString()

      返回转换后的字符串

     var a = 100;
     a = a.toString(); //"100"
     var b = true;
     b = b.toString(); //"true"
     console.log(a1,typeof a1,b1,typeof b1)

    (2)转换number类型

      Number(param)

      参数为要进行数据类型转换的变量或值,返回转换后的结果:

        如果转换成功,返回number值

        如果转换失败,返回NaN,(Not a Number),只要数据中存在非number字符,一律转换失败,返回 NaN

      parseInt(param)

      参数为要解析的数据

      作用 : 从数据中解析整数值

      过程 :

        1. 如果参数为非字符串类型,会自动转成字符串

        2. 从左向右依次对每一位字符转number,转换失败则停止向后解析,返回结果

      parseFloat(param)

      作用 : 提取number值,包含整数和小数部分

    /*整体转number,使用Number()*/
    var s1 = '123';
    var s2 = '101a';
    var s3 = true;
    var s4 = 'true';
    var s5 = null;
    var s6;
    console.log(Number(s1),s1)    //123 '123'
    console.log(Number(s2),s2)    //NaN '101a'
    console.log(Number(s3),s3)    //1 true
    console.log(Number(s4),s4)    //NaN 'true'
    console.log(Number(s5),s5)    //0 null
    console.log(Number(s6),s6)    //NaN undefined
    /*
    提取字符串中的number部分:会将非字符串的数据自动转换成字符串
    parseInt(n)
    parseFloat(n)
    */
    console.log(parseInt(35.5))            //35
    console.log(parseInt("35.5"))          //35
    console.log(parseFloat('35.5.6.6'))    //35.5
    console.log(parseFloat('a35.5'))       //NaN
    console.log(parseFloat('101a'))        //101        

    (3)转Boolean类型

    /*除‘零’值以外,其他数据都为真,只有‘零’值为假*/
    console.log(Boolean(100))         //true
    console.log(Boolean('100'))        //true
    /*以下为‘零’值*/
    console.log(Boolean('0'))          //true
    console.log(Boolean(0.0))          //false
    console.log(Boolean(''))           //false
    console.log(Boolean(null))         //false
    console.log(Boolean(undefined))    //false
    console.log(Boolean(NaN))          //false

    2.隐式类型转换(自动转换)

    (1)当字符串与其他数据类型进行"+"运算时,表示字符串的拼接,不再是数学运算

      转换规则 :将非字符串类型的数据转换成字符串之后进行拼接,最终结果为字符串

    (2)其他情况下,一律将操作数转number进行数学运算

    var r1 = "我学"+"Python";
    console.log(r1,typeof r1)  //我学Python string
    var r2 = 'maple'+31;
    console.log(r2,typeof r2)  //maple31 string
    var r3 = 'maple'+true;
    console.log(r3,typeof r3)  //mapletrue string
    var r4 = 'maple'+null;
    console.log(r4,typeof r4)  //maplenull string
    var r5 = 'maple'+undefined;
    console.log(r5,typeof r5)  //mapleundefined string
    var r6 = 'maple'+NaN;
    console.log(r6,typeof r6)  //mapleNaN string        
    var r7 = 'maple'+5+10;
    console.log(r7,typeof r7)  //maple510 string
    var r8 = 10+5+'maple';  
    console.log(r8,typeof r8)  //15maple string

    3.其他情况

    var n1 = '100'+'5'        //1005 string
    console.log(n1,typeof n1)
    var n2 = '100'-5         //95
    console.log(n2,typeof n2)
    var n3 = '100'-'5'        //95
    console.log(n3,typeof n3)
    var n4 = '100'-true       //99
    console.log(n4,typeof n4)
    var n5 = '100a'-5         //NaN
    console.log(n5,typeof n5)
    var n6 = '100a'-true      //NaN
    console.log(n6,typeof n6)
    var n7 = '100'+'true'     //100true string
    console.log(n7,typeof n7)
    var n8 = true+100         //101
    console.log(n8,typeof n8)
    var n9 = true+true        //2
    console.log(n9,typeof n9)
    var n10 = 100+null        //100
    console.log(n10,typeof n10)
    var n11 = 100+undefined   //NaN
    console.log(n11,typeof n11)
    var n12 = 100+NaN         //NaN
    console.log(n12,typeof n12)
  • 相关阅读:
    【ELK】ELK安装与配置
    【Python】函数参数类型及用法
    【ansible】使用ansible安装nginx
    【Gitlab+Jenkins+Ansible】构建自动化部署
    【阿里云文档】常用文档整理
    【SHELL】Linux下安装Oracle Client
    extjs3 tree 指定内容qtip
    ionic3自定义单选
    extjs grid grouping 关闭和展开
    ionic 文本添加清除功能
  • 原文地址:https://www.cnblogs.com/maplethefox/p/11216365.html
Copyright © 2011-2022 走看看