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个 | 数字 |
|
包含任意数字 |
2个 | 细绳 |
|
包含一个字符串 |
3个 | 布尔值 |
|
包含 true 或 false |
4个 | 大批 |
|
包含元素数组 |
5个 | 日期 |
|
包含日期 |
6个 | 目的 |
|
包含一个由键值对组成的对象。类似于 Java 中的 HashMap 的东西 |
7 | 功能 |
|
功能 |
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