JavaScript
is designed on a simple object-based paradigm(简单的基于对象的范式)。
An object
is a collection of properties, and a property is an association between a name (or key) and a value.
A property’s value can be a function, 这种情况下,属性也被称为方法。
March 22 , 2017
JavaScript
阅读全文
在JavaScript
中,函数其实就是对象。使函数不同于其他对象的决定性特点时函数存在一个被称之为[[Call]]
的内部属性。内部属性无法通过代码访问,而是定义了代码执行时的行为。
ECMAScript
为对象定义了多种内部属性,这些内部属性都使用[[]]
来标记。
[[Call]]
属性是函数独有的,表明该对象可以被执行。
你可以像使用对象一样使用函数,可以将它们赋给变量,在对象中添加它们,将它们当成参数传递给别的函数,或从别的函数中返回。函数就是值。
A function is a JavaScript
procedure - a set of statements that performs a task or calculates a value.
March 21 , 2017
JavaScript
阅读全文
关于数据类型和数据结构的概念,可以参考Wiki百科。
在JavaScript
中,对象是语言的中心,连functions
也被视为对象。
JavaScript
有两种基本的数据类型: primitive type
and reference type
。两者都是通过对象进行访问的。原始类型保存为简单的数据值,引用类型则保存为对象(objects
),其本质是指向内存位置的引用。
其它的编程语言用栈(stack
)来储存原始类型,用堆(heap
)来储存引用对象。JavaScript
则完全不同:它使用一个variable object
来追踪变量的生存周期,原始类型的值被直接保存在变量对象中,而引用类型的值作为一个指针保存在变量对象中,该指针指向实际对象在内存中的存储位置1。
March 21 , 2017
JavaScript
阅读全文
JavaScript
是一种基于原型的面向对象的语言,而不是基于类的。
基于类的面向对象的语言,是构建在两个不同实体的概念之上的:类和实例
基于原型的语言不存在这种区别:只有对象。基于原型的语言具有所谓原型对象rototypical object
的概念。原型对象可以作为一个模板,新对象可以从中获得原始的属性。任何对象都可以指定其自身的属性,既可以是创建时也可以在运行时创建。而且,任何对象都可以作为另一个对象的原型prototype
,从而允许后者共享前者的属性。
March 15 , 2017
JavaScript
阅读全文
JavaScript
中字符串是不可变的,而数组是可变的。字符串不可变是指字符串的成员函数不会改变其原始值,而是创建并返回一个新的字符串。而数组的成员函数都是在其原始值上进行操作。
JavaScript
中的String
类型用于表示文本型的数据。它是由无符号整数值(16bit
)作为元素而组成的集合。字符串中的每个元素在字符串中占据一个位置。第一个元素的index
值是0
, 下一个元素的index
值是1
, 以此类推。字符串的长度就是字符串中所含的元素个数。你可以通过String字面值或者String对象两种方式创建一个字符串。
March 13 , 2017
JavaScript
阅读全文
在JavaScript
,所有的数字都是64-bit双精度浮点类型。没有特定的整数数据类型。除了可以表示浮点数,the number type has three symbolic values: +Infinity
、-Infinity
、NaN
。
March 13 , 2017
JavaScript
阅读全文
以索引排序的数据组合,包括Arrays、Array object和TypeArray。
An array
is an ordered set of values that you refer to with a name(数组名) and an index(索引).
JavaScript
中没有明确的数组数据类型。但是,我们可以通过使用内置Array
对象和它的方法对数组进行操作。
March 13 , 2017
JavaScript
阅读全文