zoukankan      html  css  js  c++  java
  • JavaScript的数据类型和变量

    数据类型

    计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值。但是,计算机能处理的远不止数值,还可以处理文本、图形、音频、视频、网页等各种各样的数据,不同的数据,需要定义不同的数据类型。在JavaScript中定义了以下几种数据类型:

    Number

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

    • 12 // 整数
    • 3.14 // 浮点数
    • 1.1e3 // 科学计数法 1.1 x 1000
    • -12 // 负数
    • NaN // 表示Not a Number,无法计算结果时候使用
    • Infinity // 无限大

    字符串

    字符串是以单引号'或双引号"括起来的任意文本

    布尔值

    用true、false表示布尔值,也可以通过布尔运算计算出来:

    • true; // 这是一个true值
    • false; // 这是一个false值
    • 2 > 1; // 这是一个true值
    • 2 >= 3; // 这是一个false值

    数组

    数组是一组按顺序排列的集合,集合的每个值称为元素。JavaScript的数组可以包括任意数据类型。例如:

    var arr = [1, 2, 3.14, 'Hello', null, true];

    数组用[]表示,元素之间用,分隔。数组的元素可以通过索引来访问。请注意,索引的起始值为0.

    arr[0]; // 返回索引为0的元素,即1

    对象

    JavaScript的对象是一组由键-值组成的无序集合,例如:

    var person = {
      name: 'Bob',
      age: 20,
      tags: ['js', 'web', 'mobile'],
      city: 'Beijing',
      hasCar: true,
      zipcode: null
    };

    要获取一个对象的属性,我们用对象变量.属性名的方式:

    person.name; // 'Bob'

    null和 undefined

    null表示一个“空”的值,它和0以及空字符串''不同,0是一个数值,''表示长度为0的字符串,而null表示“空”。JavaScript的设计者希望用null表示一个空的值,而undefined表示值未定义。事实证明,这并没有什么卵用,区分两者的意义不大。大多数情况下,我们都应该用null。undefined仅仅在判断函数参数是否传递的情况下有用。

    比较运算符

    • 当我们对Number做比较时,可以通过比较运算符得到一个布尔值

    • ==比较,它会自动转换数据类型再比较,很多时候,会得到非常诡异的结果

    • ===比较,它不会自动转换数据类型,如果数据类型不一致,返回false,如果一致,再比较

    • 唯一能判断NaN的方法是通过isNaN()函数

    • 最后要注意浮点数的相等比较: 

      1 / 3 === (1 - 2 / 3); // false

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

      Math.abs(1 / 3 - (1 - 2 / 3)) < 0.0000001; // true

    变量

    变量的概念基本上和初中代数的方程变量是一致的,只是在计算机程序中,变量不仅可以是数字,还可以是任意数据 类型。 变量在JavaScript中就是用一个变量名表示,变量名是大小写英文、数字、$和_的组合,且不能用数字开头。变量名也 不能是JavaScript的关键字,如if、while等。

    申明一个变量用var语句,比如:

    var a; // 申明了变量a,此时a的值为undefined

    strict模式

    javaScript在设计之初,为了方便初学者学习,并不强制要求用var申明变量。这个设计错误带来了严重的后果:如果一个变量没有通过var申明就被使用,那么该变量就自动被申明为全局变量.在同一个页面的不同的JavaScript文件中,如果都不用var申明,恰好都使用了变量i,将造成变量i互相影响,产生难以 调试的错误结果。 使用var申明的变量则不是全局变量,它的范围被限制在该变量被申明的函数体内(函数的概念将稍后讲解),同名变 量在不同的函数体内互不冲突。

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

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

  • 相关阅读:
    ch5 对链接应用样式
    ch4 圆角框
    ch4 背景图像基础
    ch8 CSS 3列(等高文本列)
    ch8 高度相等的列--CSS方法
    ch8 faux列
    java基础 (四)之集合
    java基础 (二)之HashMap,HashTable,ConcurrentHashMap区别
    java基础 (三)之ConcurrentHashMap(10)未完待续~~~
    java基础 (一)之HashMap(jdk1.7)
  • 原文地址:https://www.cnblogs.com/jiaqi-666/p/11526475.html
Copyright © 2011-2022 走看看