zoukankan      html  css  js  c++  java
  • Javascript简明教程(1) 数据类型和变量

    JavaScript不区分整数和浮点数,统一用Number表示,以下都是合法的Number类型:

    [Plain Text] 纯文本查看 复制代码
    001
    002
    003
    004
    005
    006
    123; // 整数123
    0.456; // 浮点数0.456
    1.2345e3; // 科学计数法表示1.2345x1000,等同于1234.5
    -99; // 负数
    NaN; // NaN表示Not a Number,当无法计算结果时用NaN表示
    Infinity; // Infinity表示无限大,当数值超过了JavaScript的Number所能表示的最大值时,就表示为Infinity


    计算机由于使用二进制,所以,有时候用十六进制表示整数比较方便,十六进制用0x前缀和0-9,a-f表示,例如:0xff000xa5b4c3d2,等等,它们和十进制表示的数值完全一样。
    唯一能判断NaN的方法是通过isNaN()函数。最后要注意浮点数的相等比较:

    [JavaScript] 纯文本查看 复制代码
    001
    1 / 3 === (1 - 2 / 3); // false


    这不是JavaScript的设计缺陷。浮点数在运算过程中会产生误差,因为计算机无法精确表示无限循环小数。要比较两个浮点数是否相等,只能计算它们之差的绝对值,看是否小于某个阈值:

    [JavaScript] 纯文本查看 复制代码
    001
    Math.abs(1 / 3 - (1 - 2 / 3)) < 0.0000001; // true


    null和undefined

    null表示一个“空”的值,它和0以及空字符串''不同,0是一个数值,''表示长度为0的字符串,而null表示“空”。

    在其他语言中,也有类似JavaScript的null的表示,例如Java也用null,Swift用nil,Python用None表示。但是,在JavaScript中,还有一个和null类似的undefined,它表示“未定义”。

    JavaScript的设计者希望用null表示一个空的值,而undefined表示值未定义。事实证明,这并没有什么卵用,区分两者的意义不大。大多数情况下,我们都应该用null。undefined仅仅在判断函数参数是否传递的情况下有用。


    数组的元素可以通过索引来访问。请注意,索引的起始值为0:

    [JavaScript] 纯文本查看 复制代码
    001
    002
    003
    004
    var arr = [1, 2, 3.14, 'Hello', null, true];
    arr[0]; // 返回索引为0的元素,即1
    arr[5]; // 返回索引为5的元素,即true
    arr[6]; // 索引超出了范围,返回undefined



    JavaScript在设计之初,为了方便初学者学习,并不强制要求用var申明变量。这个设计错误带来了严重的后果:如果一个变量没有通过var申明就被使用,那么该变量就自动被申明为全局变量:

    [JavaScript] 纯文本查看 复制代码
    001
    i = 10; // i现在是全局变量

    在同一个页面的不同的JavaScript文件中,如果都不用var申明,恰好都使用了变量i,将造成变量i互相影响,产生难以调试的错误结果。

    使用var申明的变量则不是全局变量,它的范围被限制在该变量被申明的函数体内(函数的概念将稍后讲解),同名变量在不同的函数体内互不冲突。

    为了修补JavaScript这一严重设计缺陷,ECMA在后续规范中推出了strict模式,在strict模式下运行的JavaScript代码,强制通过var申明变量,未使用var申明变量就使用的,将导致运行错误。

    启用strict模式的方法是在JavaScript代码的第一行写上:

    [JavaScript] 纯文本查看 复制代码
    001
    'use strict';
  • 相关阅读:
    内敛函数
    墓碑文件
    java默认继承
    Question2Answer初体验
    yii 事物
    情商
    jsonp跨域
    CDbConnectionExt.php 23.2实现数据库的主从分离,该类会维护多个数据库的配置:一个主数据库配置,多个从数据库的配置
    图片服务器规划漫谈
    c语言中返回结构体的函数(结构体可以被赋值,类型相同的结构体可以相互赋值)
  • 原文地址:https://www.cnblogs.com/yaogua/p/6596714.html
Copyright © 2011-2022 走看看