2.1 变量和痛苦

让我们从最有趣的开始。JavaScript 有变量,但这些变量没有类型。任何变量都可以绝对分配任何值。在您需要类型之前看起来无害甚至方便。

关键字用于声明变量var

var name;
var name = value;

在 JavaScript 中使用变量的示例:

var a = 10, b = 20;
var c = a*a + b*b;

var s = "Diagonal equals:";
console.log( s + Math.sqrt(c));

伟大而清晰的代码,不是吗?也许这是你生命中最后一次看到漂亮易懂的 JavaScript 代码。记住这一刻:)

2.2 在 JavaScript 中输入

如上所述,JavaScript 语言中的变量没有类型。但是变量的值是有类型的。以下是 JavaScript 中最常见的 5 种类型:

# 类型 例子 描述
1个 数字
var pi = 3.14;
包含任意数字
2个 细绳
var s = "Hello!";
包含一个字符串
3个 布尔值
var result = true;
包含 true 或 false
4个 大批
var arr = [1, 2, 3, 4, 5];
包含元素数组
5个 日期
var current = new Date();
包含日期
6个 目的
var o = {
   width: 100,
   height: 200
}
包含一个由键值对组成的对象。类似于 Java 中的 HashMap 的东西
7 功能
function sqr(var x) {
   return x*x;
}
功能

typeof 关键字用于判断对象的类型,例如:

var s = "134";
var x = (typeof s == "String") ? s*1 : s;

2.3 功能与回报

当然,JavaScript 也有函数。没有类,因此可以在代码的任何位置声明函数。甚至在其他功能中。一般格式为:

function name(a, b, c) {
  // function code
   return result;
}

该函数没有类型。为什么,如果语言本身没有类型兼容性控制?函数参数也可能丢失。return 命令也是如此,它返回一个值。

调用函数时,可以传递任意数量、任意类型的参数。多余的将被丢弃,缺少的将被相等null

函数示例:

function getValue(name)
{
    return this[name];
}
function setValue(name, value)
{
    this[name] = value;
}

2.4 JavaScript 中的数组

JavaScript 中的数组与 Java 中的数组非常相似。例子:

var array = [1, 2, 3, 4, 5];
array[3] = array[2];
console.log (array[0]);

它们可以有任何类型的值,甚至是其他数组:

var array = [1, "Hello", 3.14, [4, 5] ];
array[3] = array[2];
console.log (array[0]);

此外,数组的行为也像集合——您可以动态地向它们添加元素:

var array = [];
array.push(100);
array.push(101);
array.push(102);

array[1] = array[2];
console.log (array[0]);

2.5 JavaScript 中的对象

JavaScript 中的对象与 Java 中的 HashMap 非常相似:它们包含键值对。例子:

var obj = {
 name: "Bill Gates",
 age: 67,
 company: "Microsoft"
};

console.log (obj.age);

可以通过两种不同的方式访问对象字段:

var x = obj.age;
var x = obj["age"];

与 HashMap 一样,可以创建和删除字段。例子:

var obj = {};
obj.name = "Bill Gates";
obj.age = 67;
obj.company = "Microsoft";

delete obj.age;  //remove field