• 数据类型、强制类型转换以及数字的进制问题


    数据类型:

       ECMAScript中有五种简单数据类型(String、Number、Boolean、Null、Undefined)以及一种复杂数据类型(Object)

       typeof操作符用于检测给定变量的数据类型,可能会返回一下字符串 

         -"undefined" 值为定义

         -"boolean" 值为布尔值

         -"string" 值为字符串

         -"number" 值为数值

         -"object" 值为对象或者null

         -"function"值为函数

       String 字符串

          var  a  =  "word";

         由零或多个16位Unicode字符组成的字符序列,即字符串。可以用双引号或单引号表示,两者没有区别,但是不可混用。

         字符字面量又称为转义序列,用于表示非打印字符,或者具有其他用途的字符。例如 \n 表换行  \\ 表示斜杠

         注意:字符串是不可改变的,一经创建,值不可以再变

     如何强制转换为String   ?

       方法1:使用 toString() 方法,Boolean、Number、Objec以及String(其本身)具有toString() 方法 ,但是Null 和Undefined没有

            

     var  a = 123;
     
     var  b = a.toString();
    
     alert(typeof b ); //数据类型为String;"123"
    

     方法2:使用转型函数String() ,六种基本数据类型全部使用,对于Boolean、Number、Objec以及String来讲,作用与toString()一样,对于Null和Undefined有效果

     var  c = null;
    
     var d  =String(c);
    
     alert(typeof d)//数据类型为String; "null"
    

     方法3:使用加号操作符进行拼串 

    var a = "\""+123+"\"";
    
    alert(a); //输出值为"123"

      Number 数值

        var  a = 123;

        使用IEEE754(二进制浮点数算术标准)格式来表示整数和浮点数

        数字的进制

        基本格式为十进制整数,除十进制外,还可以用八进制或者十六进制的字面量表示。

        注意:八进制的字面量第一位必须是0,八进制的数字序列(0-7),如果超出数字序列,那么前面的0会被忽略,后面的数值会当做十进制数值解析

     

     var  num1 = 070; //八进制的56;
     var  num2 = 079; //无效的八进制,解析为十进制79
    

      

                   八进制在严格模式下是无效的,会导致该模式JavaScript引擎抛出错误

                   十六进制字面量的前两位必须是0x,后跟任何十六进制数字(0~9以及A-F),字母可以大写也可以小写

      浮点数值

      该数值中必须包含一个小数点,并且小数点后面至少有一位数字。小数点之前也可没有整数,但是不推荐。

      对于极大或者极小的数使用e表示法(科学计数法)表示浮点数值表示。

       3.125e7 = 31250000      0.00003 = 3e-5

     浮点数的最高精度为十七位小数,但是精度远远不如整数

    NaN 

     非数值是一个特殊的数值。用于表示一个本来要返回数值的操作数未返回数值的情况。在ECMAScript中,任何数值除以非数值会返回NaN

     其具有的两大特点:

         1.任何涉及NaN的操作都会返回NaN l例如NaN/10  

         2.NaN与任何值都不相等,包括其本身

     针对其特点定义了 isNaN() 函数

     它会在接收到一个值后,会尝试将其转化为数值。某些不是数值的值会被转化位数值,任何不能被转换的值都会导致该函数返回true.\

     

                    最大数:Number.Max_Value

                   最小数(大于0的最小数):Number.Min_Value

                   正无穷:Number=Infinity;

                   负无穷:Number=-Infinity;

                  不是数值:Number=NaN;

                   以上三个用typeof检验时,数据类型都是Number

      如果转换为Number?

      使用Number()、parseInt()以及 parseFloat()三个函数

      使用Number()

      Boolean    ---》 ture 返回 1  false 返回 0

      Undefined ---》NaN 

      Null ---》 0

      Number ---》Number

     忽略前导0

     使用parseInt(),更多的看其是否符合数值模式

     忽略字符串前的空格,找到第一个非空格字符,如果该字符不是数字字符或者负号则返回 NaN;

     可以识别整数格式,拥有第二个参数,可以规定数字进制    parseInt(”123“,10);

     空字符串  ---》NaN

     解析时遇到了一个非数字字符则停止解析,否则持续解析完

     使用parseFloat()

      从第一个字符开始解析每个字符,解析到无效浮点数停止解析,否则持续解析完。

      直接忽略前导0

     只可以解析十进制,没有第二个参数

     如果字符串可以解析为整数,则直接解析为整数

    Boolean  布尔值

     该类型只有两个字面值 true 或者 flase  注意区分大小写,Ture和Flase都不是布尔值

     如何转换为布尔值?

     使用 Boolean()

       String任何非空字符串都为true 

       Number 任何非零数字值(包括无穷大)都为true     0和NaN转换为false

       Object 任何对象都会转换为true    null会转换为false

       undefined只会转换为false

     Undefined  未定义

     显示地初始化变量是明智的,包含undefined的变量是还没有被声明,而不是未初始化。未初始化的变量也会被赋予这个属性,声明是为证明它只是没有被声明,而不是也没有初始化。

    var a = undefined;
    aler(a==undefined);//返回true

     Null 空值

    专门用来表示空的对象,用typeof检验时返回Object

     事实上,undefined时派生于null,在检验undefined == null  返回true;

    注意undefined和null的区别  undefined是为定义的 但是null是定义了一个空的对象;

    以上仅为学习js基础后复习整理的,有错误的地方请指正!

     
  • 相关阅读:
    给大家带来一些 horm的一些知识!
    标准文档流和伪类选择器
    列表 ul ol dl 和 块级标签和行及标签之间的转换
    <a>标签的特殊和文本的样式
    大家好,又是新的一天。今天给大家带来一些新的知识:选择器的种类和css的三种样式
    html 基础知识
    四级CET大学词汇六级备份
    大学外语四六级英语词汇CET
    单词大学CET六四级英语
    单词英文速记考研词汇英语
  • 原文地址:https://www.cnblogs.com/chenpiaoxiaowu/p/11190063.html
Copyright © 2020-2023  润新知