• 02.JS数据类型与数据类型转换


    前言:
       学习一门编程语言的基本步骤
     (01)了解背景知识
     (02)搭建开发环境
     (03)语法规范
     (04)常量和变量
     (05)数据类型
     (06)数据类型转换
    5.数据类型——datatype
      数据分为原始类型和引用类型,
      原始类型分为数值型(number),字符串型(string),布尔型(boolean),未定义型(undefined),空(null)
     (1)数值型-number
            分为整型和浮点型
            1)整型-parseInt()

         //整型,在内存中占有4个字节
         //二进制
         var num01=10;
         console.log(num01);//输出为2
         //八进制,以0开头
         var num02=012;
         console.log(num02);//输出为10
         //十进制
         var num03=13;
         console.log(num03);//输出为13
         //十六进制,以0x开头,a~f代表10-15,不区分大小写
         var num04=0x10;
         console.log(num04);//输出为16
         var num05=0xff;
         console.log(num05);//输出为255 ff=15*16+15
         //无论变量是几进制的数字,打印的结果最终都是十进制

             

            2)浮点型—parseFloat()
                分为定点小数和指数型小数

         //浮点型,在内存中占8个字节
         //定点小数
         var f=3.14;//普通小数
         //指数型
         var f1=3.14e3;// e3代表10的三次方  3.14*10的三次方,输出为3140
         var f2=3.14e-1;//e-1代表10的负一次方 3.14*10的负一次方,输出为-0.314
         console.log(f1,f2);
         //检测数据类型,typeof xx=类型是XX
         console.log(typeof f2);//数据类型为number

     (2)字符串型-string
             数据要被引号所包含就是字符串型,不区分单双引号,
             如果查询任意一个字符的Unicode码,每次只能查看一个,不能一次查看多个。注意:编辑器一定要在UTF8的格式查询。

         //字符串型
         '一'.charCodeAt();       //unicode码为19968
         "oksana".charCodeAt();   //unicode码为111
         "o".charCodeAt();        //unicode码为111
         "k".charCodeAt();        //unicode码为107
         '你好'.charCodeAt();      //unicode码为20320
         '你'.charCodeAt();        //unicode码为20320
         '好'.charCodeAt();        //unicode码为22909
         //由此可证明,多个字符只能查询第一个字符的unicode码
         //被单引号或是双引号包裹的就是字符串,这种类型统称为字符串型数据

     (3)布尔型-boolean
             true/false
             在程序中表示真或是假,用于一些比较的结果,还有一些是否的结果,例如是否登录,是否注册,是否...

         //布尔型
         var b2=3>1;
         console.log(b2,typeof b2);//输出结果为true,类型为boolean

     (4)未定义型-undefined
             声明了变量未赋值,结果就是undefined

         //未定义型-undefined
         var a;//声明变量,未赋值
         console.log(typeof(a))//查询数据类型为undefined

     (5)空-null
             只有一个值是null,与引用类型一起使用。

       //
       var b=null;
       console.log(b,typeof b);

    6.数据类型转换——datatype transform
     (1)隐式转换——在运算的过程中自动发生转换
             1)数字+字符串——数字被转换成字符串

          2+'3';        //'23'
          2+'hi';       //"2hi"
          2+'你好';    //"2你好"

             2)数字+布尔型——布尔型转成数字,true——>1,false——>0

          3+true //4
          3+false //3

             3)布尔型+字符串——true转字符串变成拼接

          var a=true+"oksana";
          console.log(a);   //输出trueoksana
          var b=false+"oksana";
          console.log(b);   //输出falseoksana

             4)JS中(+)加号运算的作用
                  执行加法运算和字符串间的拼接

           //执行加法运算
           var num1=3,num2=true,num3='oksana',num4=6;
           console.log(num1+ num4);         //9
           console.log(num1+ num4+ num2);   //10
           //执行字符串间的拼接
           console.log(num1+ num2+ num3);    //4oksana
           console.log(num2+ num3+ num1);    //trueoksana3
           console.log(num3+ num1+ num2);    //oksana3true
           //声明变量保存一个人的姓名性别,打印‘我的姓名叫(变量),性别(变量)
           var uname='oksana',sex='女';
           console.log('我的姓名叫'+uname+',性别是'+sex);//我的姓名叫oksana,性别是女

              5)JS中减法(-),乘法(*),除法(/)运算会发生隐式转换
                   将运算符两端的数据自动调用Number转化为数值型后运算,如果转换失败,返回NaN(Not a Number),意味不是一个数字,转换失败后和任何值执行加减乘除都会返回NaN。

           //其他运算符转换,减法、乘法、除法中无论两端的数据是什么类型,都会转换成数字类型
           console.log(5-3);  //2
           console.log(5*3);  //15
           console.log(5/3);  //1.6666666666666667
           console.log(5-'3');  //2,'3'转化为数字3
           console.log(5*'3');  //15
           console.log(5/'3');  //1.6666666666666667
           console.log('5'-'3'); //2,'3','5'转换为数字3,5
           console.log('5'*'3'); //15
           console.log('5' / '3'); //1.6666666666666667
           console.log('3'-true);//2,true转换为1
           console.log('3'*true);//3
           console.log('3'/true);//3
           console.log('3'-false);//3,false转换为0
           console.log('3'*false);//0
           console.log('3'/false);//Infinity
           console.log('3'-null);//3,null转换为0
           console.log('3'*null);//0
           console.log('3'/null);//Infinity
           console.log('2a'-5);//NaN,2a转换后不是一个数字,转换失败
           console.log('2a'/5);//NaN
           console.log('2a'*5);//NaN ——> Not a Number,不是一个数字,而NaN和任何一个数加减乘除都是NaN

      (2)强制转换
             1)强制转为数字型 —— Number()

          //强制转为数字型
          var num1=Number('2');
          var num2=Number(true);
          var num3=Number('2a');
          var num4=Number(undefined);
          var num5=Number(null);
          console.log(num1,typeof num1);//2
          console.log(num2,typeof num2);//1
          console.log(num3,typeof num3);//NaN
          console.log(num4,typeof num4);//NaN
          console.log(num5,typeof num5);//0

             2)强制转化为整型 —— parseInt()
                  常用于将字符串或者是数字转为整型,其他的数据会返回NaN,如果要转换的字符串,开头为非数字,则返回NaN, 未定义、空、布尔型,返回NaN。

          //转为整型
          var n1=parseInt('1');
          var n2=parseInt(1.2);
          var n3=parseInt('2a');
          var n4=parseInt('a2');
          var n5=parseInt(undefined);
          var n6=parseInt(null);
          var n7=parseInt(true);//未定义、空、布尔型,返回NaN
          console.log(n1,typeof n1);//1 "number"
          console.log(n2,typeof n2);//1 "number"
          console.log(n3,typeof n3);//2 "number"
          console.log(n4,typeof n4);//NaN "number"
          console.log(n5,typeof n5);//NaN "number"
          console.log(n6,typeof n6);//NaN "number"
          console.log(n7,typeof n7);//NaN "number"

             3)强制转化为浮点型 —— parseFloat()
                  和parseInt的用法基本一致,只是转换为浮点型数据

          //强制转化为浮点型
          var n1=parseFloat('1');
          var n2=parseFloat(1.2);
          var n3=parseFloat('2.5a');
          var n4=parseFloat('a2.5');
          var n5=parseFloat(undefined);
          var n6=parseFloat(null);
          var n7=parseFloat(true);
          console.log(n1,typeof n1);//1 "number"
          console.log(n2,typeof n2);//1.2 "number"
          console.log(n3,typeof n3);//2.5 "number"
          console.log(n4,typeof n4);//NaN "number"
          console.log(n5,typeof n5);//NaN "number"
          console.log(n6,typeof n6);//NaN "number"
          console.log(n7,typeof n7);//NaN "number"

             4)强制将数值型和布尔型转为字符串型 —— toString()

          //将数值,布尔型转为字符串和
          var num=10,boo=true;
          var str=num.toString();
          var str1=boo.toString();
          console.log(num,str,typeof str);//10 "10" "string"
          console.log(boo,str1,typeof str1);//true "true" "string"
  • 相关阅读:
    【转载】COM 组件设计与应用(十一)—— IDispatch 及双接口的调用
    【转载】COM 组件设计与应用(十)——IDispatch 接口 for VC.NET
    网易云课堂_Linux操作系统入门(嵌入式开发零基础Ⅰ)_章节3:Linux 命令(下)
    网易云课堂_Linux操作系统入门(嵌入式开发零基础Ⅰ)_章节2:Linux 命令(上)
    网易云课堂_艾叔:零基础一站式C语言|C程序设计精讲_章节12:指针
    网易云课堂_艾叔:零基础一站式C语言|C程序设计精讲_章节8:输入与输出
    网易云课堂_艾叔:零基础一站式C语言|C程序设计精讲_章节5整型
    Vim应用
    gcc编译命令
    虚拟机使用PuTTY、SSH Secure Shell Client前的配置
  • 原文地址:https://www.cnblogs.com/oksana/p/12298830.html
Copyright © 2020-2023  润新知