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