Skip to main content

数据类型和函数

数据类型

基本数据类型

JavaScript 变量能够保存多种数据类型:数值、字符串值、数组、对象等等:

var length = 7;                             // 数字
var lastName = "Gates"; // 字符串
var cars = ["Porsche", "Volvo", "BMW"]; // 数组
var x = {firstName:"Bill", lastName:"Gates"}; // 对象

数据类型的概念

在编程过程中,数据类型是重要的概念。
为了能够操作变量,了解数据类型是很重要的。
如果没有数据类型,计算机就无法安全地解决这道题:

var x = 911 + "Porsche";

JavaScript 会这样处理上面的例子:

var x = "911" + "Porsche";

当数值和字符串相加时,JavaScript 将把数值视作字符串。

动态数据类型

相同的变量可以用作不同的类型:

var x;               // 现在 x 是 undefined
var x = 7; // 现在 x 是数值
var x = "Bill"; // 现在 x 是字符串值

字符串

实例:

var carName = "Porsche 911";   // 使用双引号
var carName = 'Porsche 911'; // 使用单引号

您可以在字符串内使用引号,只要这些引号与包围字符串的引号不匹配:

var answer = "It's alright";             // 双引号内的单引号
var answer = "He is called 'Bill'"; // 双引号内的单引号
var answer = 'He is called "Bill"'; // 单引号内的双引号

数值

JavaScript 只有一种数值类型

写数值时用不用小数点均可:

var x1 = 34.00;     // 带小数点
var x2 = 34; // 不带小数点

超大或超小的数值可以用科学计数法来写:

var y = 123e5;      // 12300000
var z = 123e-5; // 0.00123

布尔值

布尔值只有两个值:truefalse

var x = true;
var y = false;

数组

JavaScript 数组用方括号书写。
数组的项目由逗号分隔。
下面的代码声明(创建)了名为 cars 的数组,包含三个项目(汽车品牌):

var cars = ["Porsche", "Volvo", "BMW"];

数组索引基于零,这意味着第一个项目是 [0],第二个项目是 [1],以此类推。

对象

JavaScript 对象用花括号来书写。
对象属性是 name:value 对,由逗号分隔。

var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"};

typeof 运算

您可使用 JavaScript 的 typeof 来确定 JavaScript 变量的类型:

typeof 运算符返回变量或表达式的类型:

typeof ""                  // 返回 "string"
typeof "Bill" // 返回 "string"
typeof "Bill Gates" // 返回 "string"
typeof 0 // 返回 "number"
typeof 314 // 返回 "number"
typeof 3.14 // 返回 "number"
typeof (7) // 返回 "number"
typeof (7 + 8) // 返回 "number"
note

typeof 运算符对数组返回 "object",因为在 JavaScript 中数组属于对象

Undefined

在 JavaScript 中,没有值的变量,其值是 undefined。typeof 也返回 undefined。

var person;                  // 值是 undefined,类型是 undefined。

任何变量均可通过设置值为 undefined 进行清空。其类型也将是 undefined。

person = undefined;          // 值是 undefined,类型是 undefined。

空值

空值与 undefined 不是一回事。
空的字符串变量既有值也有类型。

var car = "";                // 值是 "",类型是 "string"

NULL

在 JavaScript 中,null 是 "nothing"。它被看做不存在的事物。
不幸的是,在 JavaScript 中,null 的数据类型是对象。
您可以把 null 在 JavaScript 中是对象理解为一个 bug。它本应是 null。
您可以通过设置值为 null 清空对象:

var person = null;           // 值是 null,但是类型仍然是对象

您也可以通过设置值为 undefined 清空对象:

var person = undefined;           // 值是 undefined,类型是 undefined。

Undefined 与 Null 的区别

Undefined 与 null 的值相等,但类型不相等:

typeof undefined              // undefined
typeof null // object
null === undefined // false
null == undefined // true

函数

JavaScript 函数是被设计为执行特定任务的代码块。
JavaScript 函数会在某代码调用它时被执行。
函数存在的意义:一次书写,多次使用,易于维护。

实例

function myFunction(p1, p2) {
return p1 * p2; // 该函数返回 p1 和 p2 的乘积
}

函数语法

JS 函数通过 function 关键词进行定义,其后是函数名和括号()
函数名可包含字母、数字、下划线和美元符号(规则与变量名相同)。
圆括号可包括由逗号分隔的参数:

(参数 1, 参数 2, ...)

由函数执行的代码被放置在花括号中:{}

function name(参数 1, 参数 2, 参数 3) {
要执行的代码
}

函数返回

当 JavaScript 到达 return 语句,函数将停止执行。

如果函数被某条语句调用,JavaScript 将在调用语句之后“返回”执行代码。

函数通常会计算出返回值。这个返回值会返回给调用者:

下面的例子中将返回两个值相乘的结果:

var x = myFunction(7, 8);        // 调用函数,返回值被赋值给 x

function myFunction(a, b) {
return a * b; // 函数返回 a 和 b 的乘积
}

实例:

function toCelsius(fahrenheit) {
return (5/9) * (fahrenheit-32);
}

document.getElementById("demo").innerHTML = toCelsius(77);

这个例子中,将会把 toCelsius 函数的运算结果交给 demo 的 HTML 元素渲染。

() 运算符调用函数

使用上面的例子,toCelsius 引用的是函数对象,而 toCelsius() 引用的是函数结果。

function toCelsius(fahrenheit) {
return (5/9) * (fahrenheit-32);
}

document.getElementById("demo").innerHTML = toCelsius;

上面的代码片段将返回 toCelsius 的定义。