zoukankan      html  css  js  c++  java
  • JavaScript程序开发(八)—js语法之数据类型

      由于环境关系,今天下定决心,要在半年之内,让自己的技术水平有一个很大的提高,而不能仅仅限于在自己的工作范围之内,但是我做的工作,绝不是为了某些人而做,是为了给自己争口气,即所谓人活一张脸,树活一张皮!废话少说,进入正题,接着昨天的题目,继续js的数据类型。

    Boolean类型

      Boolean类型是js中使用的最多的一种数据类型,该类型只有两个值:true和false。这两个数值和数字值不是一回事,因此true不一定等于1,false也不一定等于0。如下实例是为变量赋Boolean类型值的例子:

       var flag = true;
       var lost = false;

      关于Boolean类型有一点需要注意的是Boolean类型的字面值是区分大小写的,也就是说True和False并不是Boolean类型数据,而只是普通标示符,但未了增加代码的易读性和避免一些不必要的问题出现,不建议用这两个标示符做变量。

      虽然Boolean类型只有两个值,但是所有类型的数据都可以通过Boolean()函数转换成对应的Boolean类型值。如下实例代码所示:

       var flag = "Hello World!";
       var msg = Boolean(flag);

      各种数据类型与Boolean类型的转换规则如下表所述:

    数据类型 转换为true 转换为false
    Boolean true false
     String  任何非空字符串  “”空字符串 
     Number  任何非0数值,包括无穷大  0和Nan
     Object  任何非空对象  null
     Undefined  n/a  undefined

     根据以上规则,我们可以写出下面的一个代码实例:

    function test(){
       var flag = "Hello World!";
       if(flag){
           alert("write:true");
       }else{
           alert("write:false");
       }
    }

    Number类型

      ECMAScript是使用IEEE754格式来表示整数和浮点数值。为了支持各种数值类型,ECMAScript-262定义了各种不同的数值字面量格式,常用的有十进制、八进制、二进制和十六进制。对于这些不同进制的数值转换,不在此一一介绍,如果需要,我会在后续的blog中详细描述。

      上面说的是整数类型,还有一个浮点类型,浮点类型就是带小数点的数值,浮点数里面有一个知识点就是科学计数法,不在此介绍,我会在后续blog中一一陈述。

      Number类型数据有一个数值范围的问题。ECMAScript并不能保存世界上所有的数值,最小的数值保存在Number的MIN_VALUE属性中,在大多数浏览器中的值是5e-324,最大值保存在Number的MAX_VALUE属性中,在大多数浏览器中的这个值是1.7976931348623157+308。如果计算的结果超出了这两个最值,那么久会得到一个特殊的Infinity,如果是负数,则相应的转为-Infinity(无穷)。Infinity是一个不能够参与计算的数值。如果不确定参与计算的数值是否为Infinity,可以使用isFinite()检测。如果是介于Infinity和-Infinity之间的数值,则返回true。

      Number类的NEGATIVE_INFINITY和POSITIVE_INFINITY这两个属性分别保存着-Infinity和Infinity。

    NaN类型

      NaN(not a Number)是一个特殊的数值。在其他的编程语言中,任何数除以0都会返回异常,导致停止代码执行,而在js中,则会返回一个NaN,不会影响其他代码的执行。NaN本身有两个特点:

    1. 任何涉及到NaN的操作都会返回NaN,但是这个特点在多步计算中可能导致问题;
    2. NaN和任何值都不相等,包括NaN本身。

    ECMAScript中的isNaN(para)可以用来判断参数是否“不是数值”。isNaN(para)在接收到一个值之后,会尝试将这个值转换为数值,某些不是数值的值可能会被转换成数值,如“10”或Boolean值。如下实例所示:

        document.write(isNaN("10"));  //false ,"10"被转换成10
        document.write(isNaN(10));   //false,10是数字
        document.write(isNaN(false));  // false,false被转换成0
        document.write(isNaN(NaN));  //true,NaN不是 数值
        document.write(isNaN("str"));  //true,"str"不是数值

      isNaN(para)也适用于对象。在基于对象调用isNaN()时,首先会调用对象的valueOf(),然后确定该返回值可否被转换成数值,如果不能,则再基于这个值调用toString()方法,再测试这个返回值。

  • 相关阅读:
    javascript通用循环遍历方法forEach
    伪数组
    引用和基本类型
    谈谈Javascript的this指针
    理解内存分配
    理解undefined和null
    getElementsByClassName实现
    NSubstitute完全手册(十五)自动递归模拟
    NSubstitute完全手册(十七)参数匹配器上的操作
    NSubstitute完全手册(九)检查接收到的调用
  • 原文地址:https://www.cnblogs.com/yansj1997/p/2522565.html
Copyright © 2011-2022 走看看