计算机程序的运行需要对值(value)进行操作。在编程语言中,能够表示并操作的值的类型称作数据类型(type)。
编程语言最基本的特性就是能够支持多种数据类型。当程序需要将值保存起来以备将来使用时,边将其赋值给一个变量(variable)
变量是一个值的符号名称,可以通过名称来获得对值的引用。
Javascript的数据类型分为两类:原始类型(primitive type)和对象类型(object type)。
Javascript中有两个特殊的原始值:null(空)和 undefined(未定义)。
对象Object是属性property的集合,每个属性都由“名/值对”构成。其中有一个比较特殊的对象--全局对象global object。
普通的Javascript对象是“命名值”的无序集合。Javascript同样定义了一种特殊对象--数组Array,表示带有编号的值的有序集合。
Javascript还定义了另一种特殊对象--函数。函数是具有与它相关联的可执行代码的对象,通过调用函数来运行可执行代码,并返回运行结果。
如果函数用来初始化(使用New运算符)一个新建的对象,我们称之为构造函数(constructor)
类可以看作是对象类型的子类型。
除了数组Array类和函数Function 类之后,JS语言核心定义了其他三种有用的类。
- 日期Date类定义了代表日期的对象。
- 正则RegExp类定义了标示正则表达式的对象。
- 错误Error类定义了那些表示JS程序中运行时错误和语法错误的对象。
可以通过定义自己的构造函数来定义需要的类。
Javascript解释器有自己的内存管理机制,可以自动对内存进行垃圾回收(garbage collection)这意味着程序可以按需创建对象,程序员则不必担心这些对象的销毁和内存回收。当不再有任何引用指向一个对象,解释器就会知道这个对象没用了,然后自动回收它所占用的内存资源。
从技术上讲,只有JS对象才能拥有方法。然而,数字,字符串和布尔值也可以拥有自己的方法。在JS中,只有null和undefined是无法拥有方法的值。
热门评论
js不支持真正的多维数组,但可以用数组的数组来近似。访问数组的数组中的元素,只要简单地使用两次[ ][ ]操作符即可。
使用for/in循环处理稀疏数组,循环每次将一个可枚举的属性名(包括数组索引)赋值给循环变量,不存在的索引讲不会遍历到。for/in循环能够枚举继承的属性名,由于这个原因,不应该在数组上使用for/in循环,除非使用额外检测方法来过滤不想要的属性。