-
基本数据类型包括 Undefined 、 Null 、Boolean 、 Number 和 String 。复杂的数据类型,即 Object 类型,该类型是这门语言中所有对象的基础类型。
-
ECMAScript提供了很多与 C 及其他类 C 语言中相同的基本操作符,包括算术操作符、布尔操作符、关系操作符、相等操作符及赋值操作符等。
-
流控制语句,例如 if 语句、 for 语句和switch 语句等。
-
无须指定函数的返回值,因为任何 ECMAScript 函数都可以在任何时候返回任何值。
-
实际上,未指定返回值的函数返回的是一个特殊的 undefined 值。
-
ECMAScript中也没有函数签名的概念,因为其函数参数是以一个包含零或多个值的数组的形式传递的。
-
可以向 ECMAScript 函数传递任意数量的参数, 并且可以通过 arguments 对象来访问这些参数。
-
由于不存在函数签名的特性,ECMAScript函数不能重载。
-
复制变量值
-
除了保存的方式不同之外,在从一个变量向另一个变量复制基本类型值和引用类型值时,也存在不同。如果从一个变量向另一个变量复制基本类型的值,会在变量对象上创建一个新值,然后把该值复制到为新变量分配的位置上。来看一个例子:
-
var num1 = 5;
-
var num2 = num1;
-
在此, num1 中保存的值是 5。 当使用 num1 的值来初始化num2 时, num2 中也保存了值 5。 但 num2中的 5 与 num1 中的 5 是完全独立的,该值只是 num1 中 5 的一个副本。此后,这两个变量可以参与任何操作而不会相互影响。
-
复制引用类型的值:
-
当从一个变量向另一个变量复制引用类型的值时, 同样也会将存储在变量对象中的值复制一份放到为新变量分配的空间中。不同的是,这个值的副本实际上是一个指针,而这个指针指向存储在堆中的一个对象。复制操作结束后,两个变量实际上将引用同一个对象。因此,改变其中一个变量,就会影响另一个变量,如下面的例子所示:
-
var obj1 = new Object();
-
var obj2 = obj1;
-
obj1.name ="Nicholas";
-
alert(obj2.name);//"Nicholas"
获取更多的文章,欢迎关注微信公众号