Before Coding [12] - JavaScript - 数据类型

必备知识:前面课程的学习

概述

JavaScript 语言可以识别下面 7 种不同类型的值:

其中六种是原型的数据类型:

  • Boolean. 布尔值,true 和 false.
  • Null. 一个表明 null 值的特殊关键字。 JavaScript 是大小写敏感的,因此 null 与 Null、NULL或其他变量完全不同。
  • Undefined. 变量未定义时的属性。
  • Number. 表示数字,例如: 42 或者 3.14159。
  • String. 表示字符串,例如:”Howdy”。
  • Symbol . 一种数据类型,它的实例是唯一且不可改变的。

以及 Object 对象。

仅凭这些为数不多的数据类型,在你的应用程序中它們就能够执行有用的功能。本节主要介绍除 Object 以外的六种数据类型,并讲解其数据转换。

数据类型的转换

JavaScript 是一种动态类型语言,这意味着你声明变量时可以不必指定数据类型,而数据类型会在脚本执行需要时自动转换。那么,你可以这样来定义变量:

1
var answer = 42;

然后,你还可以给同一个变量分配一个字符串值,例如:

1
answer = "Thanks for all the fish...";

因为 JavaScript 是动态类型的,这样的指定并不会提示出错。

JavaScript 是一种弱类型或者说动态语言。这意味着你不用提前声明变量的类型,在程序运行过程中,类型会被自动确定。这也意味着你可以使用同一个变量保存不同类型的数据:

1
2
3
var foo = 42; // foo is a Number now
var foo = "bar"; // foo is a String now
var foo = true; // foo is a Boolean now

在涉及加法运算符(+)的数字和字符串表达式中,JavaScript 会把数字值转换为字符串。例如,假设有如下的语句:

1
2
x = "The answer is " + 42 // "The answer is 42"
y = 42 + " is the answer" // "42 is the answer"

在涉及其它运算符时,JavaScript 语言不会把数字变为字符。例如:

1
2
"37" - 7 // 30
"37" + 7 // "377"

上面的代码中,第一例是数学运算,第二例是字符串运算。

字符串转换为数字

有一些方法可以将内存中表示一个数字的字符串转换为对应的数字。

  1. parseInt()parseFloat()
    parseInt 仅能够返回整数,所以使用它会丢失小数部分。另外,调用 parseInt 时最好总是带上进制参数,这个参数用于指定使用哪一种数制。

  2. 单目加法运算符
    将字符串转换为数字的另一种方法是使用单目加法运算符。

    1
    2
    "1.1" + "1.1" = "1.11.1"
    (+"1.1") + (+"1.1") = 2.2 // 注:加入括号为清楚起见,不是必需的。