• JavaScript高级程序设计之数据类型


      首先讲讲关于js文件放置的问题,如果把<script>放在head标签处,浏览器会先加载完该处的所有不使用defer属性的js文件再呈现页面的内容(浏览器在遇到body标签时才呈现内容),如果需要加载很多js文件的话,在呈现页面时会出现明显的延迟,延迟期间浏览器窗口将是一片空白。为了解决这一问题可以在最后才引入js文件,body标签结束之前。

      JavaScript的核心实现了ECAMScript定义的标准,ECAMScript定义了5种简单的数据类型:Undefined、Null、Boolean、String、Number,还有一种复杂数据类型Object。可用typeof操作符判断数据类型。

      1、Undefined类型:

      Undefined只有一个值,undefined,当使用var声明变量但未对其进行初始化时默认会给该变量初始化,这个值就是undefined。

      2、Null是第二种只有一个特殊值得数据类型null。

      3、Boolean类型:关于boolean类型需要注意以下这些类型转换成boolean类型时是true还是false。

    数据类型    转换为true的值    转化为false的值

    Boolean    true          false

    String     非空字符串       ""(空字符串)

    Number    任何非零数值      0和NaN(Not a Number)

    Object      任何非空对象      Null

    Undefined               undefined

      4、数值类型:

      4.1 关于浮点数值的计算,因为是基于IEEE754,所以可能会存在误差。所以不能把两个浮点数相加等于某值用作if的条件表达式。

    1 if(a + b == 0.3){
    2   alert("hehe");      
    3 }

      如果a、b分别等于0.1和0.2,则这个alert语句不会执行,因为这个a+b = 0.3000000000001...... 

      4.2 isNaN():(Not a Number)只要是数字或者能够转换成数字都会返回false。

      4.3 数值的转化,有三个方法Number()、parseInt()、parseFloat().

      Number()较复杂不常用,在处理整数时常用的是parseInt()。parseInt方法在将字符串转换成数字时,会忽略掉字符串前的空格,直到找到第一个非空字符串,如果不是数字或者负号,则会返回NaN,如果第一个是数字字符,则会继续解析第二个字符,直到解析完所有数字字符或者碰到非数字字符停止。parseInt提供了一个类似java的重载方法(javascript没有重载),第二个参数传入需要转化的进制,就可以将数值转换成相应进制的值。

    1 var num1 = parseInt("1234blue");    //1234
    2 var num2 = parseInt("1234blue123");  //1234
    3 var num3 = parseInt("a1234blue123");  //NaN
    4 var num4 = parseInt("");     //NaN
    5 var num5 = parseInt(22.5);    //22
    6 var num = parseInt("AF", 16);

      parseFloat只解析十进制,没有提供解析成8进制等的类似java重载方法。

      5、String类型

      toString():转换成String类型的方法,数值、布尔值、对象、字符串都有toString方法,null和undefined没有

      String():   如果有toString方法则调用toString方法,没有,null 输出“null”  undefined 输出“undefined”。

      6、Object类型

  • 相关阅读:
    [转贴]彻底解决 CrystalReports 登录失败问题。
    [资源]《就说》——《大学自习室》作者郝雨又一力作,继续那种搞笑的说唱
    [推荐]一个用来给控件做提示的JS脚本,鼠标移到控件上时出现提示,离开时消失!
    [原创]一个公告栏的源码(利用marquee作的)
    [转帖]DataGrid显示双层表头,即可实现合并单元格问题
    [转贴]15句让女生爱你一生的情话
    [疑问]您没有调试该服务器的权限。验证您是服务器上"Debuger Users"组的成员。
    [转帖]九个不可不占的便宜
    [转贴]秘芨(男孩子为了终身幸福,最好背下来哦)
    [转贴]也许放弃也是一种爱!++++++++觉得这篇文章写得不错
  • 原文地址:https://www.cnblogs.com/dengmj/p/4845251.html
Copyright © 2020-2023  润新知