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)
  • 相关阅读:
    107. Binary Tree Level Order Traversal II
    103. Binary Tree Zigzag Level Order Traversal
    102. Binary Tree Level Order Traversal
    690. Employee Importance
    1723. Find Minimum Time to Finish All Jobs
    LeetCode 329 矩阵中最长增长路径
    7.2 物理内存管理
    LeetCode 面试题 特定深度节点链表
    LeetCode 100 相同的树
    npm安装包命令详解,dependencies与devDependencies实际区别
  • 原文地址:https://www.cnblogs.com/maplethefox/p/11216365.html
Copyright © 2011-2022 走看看