直接量:
程序中直接使用的数据值。
标识符:
就是一个名字。JavaScript标识符必须以字母、下划线或者美元符开始,后续字符可以是字母、数字、下划线或美元(数字不能作为首字符出现)。
标识符用来对变量和函数进行命名,或者用作JavaScript代码中某些循环语句中的跳转位置的标记。
保留字:
一些用作关键字的名字(因此,不能在程序中把这些关键字用作标识符)。
数据类型
在编程语言中,能够表示并操作的值的类型称做数据类型。
分为两类:原始类型(数字、字符串和布尔值)和对象类型。(也可以分为可以拥有方法的类型和不能拥有方法的类型。同样可分为可变类型和不可变类型)
原始值:
包括null
、 undefined
、布尔值、数字和字符串。
原始值是不可更改的,任何方法都无法更改(或“突变”)一个原始值。
原始值的比较:只有在它们的值相等时它们才相等。如果比较两个单独的字符串,当且仅当它们的长度相等且每个索引的字符都相等时,JavaScript才认为它们相等。
数字
-
数字直接量:
JavaScript程序中出现的数字。JavaScript中的所有数字都是浮点数数值表示。
-
浮点型直接量:
可以含有小数,采用传统的实数写法:一个实数由整数部分、小数点和小数部分组成。
此外,还可以使用指数记数法表示浮点型直接量,即在实数后面跟字母e或E,后面再跟正负号,气候再加一个整型的指数。这种记数方法表示的数值,是由前面的实数乘以10的指数次幂。
字符串直接量:
由单引号或双引号括起来的字符序列。换行,每行必须以( \
)结束,反斜线和行结束符都不算是字符串直接量的内容。如果想在字符串直接量中另起一行,可以使用转义字符 \n
对象
是属性的集合,每个属性都是有“名/值对”(值可以是原始值,也可以是对象)构成。
普通的对象是无序的。
数组:
一种特殊的对象,表示带编号的有序集合。
方法:
当属性值是一个函数时称其为方法。
函数:
是具有与它相关联的可执行代码的特殊对象,通过调用函数来运行可执行代码,并返回运算结果。
-
构造函数:
如果函数用来初始化(使用
new
运算符)一个新建的对象,我们称之为构造函数。每个构造函数定义了一类(
class
)对象——由构造函数初始化的对象组成的集合。类可以看作是对象类型的子类型。 -
函数定义表达式:
可称为“函数直接量”(个人理解,就是匿名函数的赋值操作,但是也可以是具名函数)。函数定义表达式定义函数时,没必要使用函数名——通过变量名即可引用函数。另外,函数定义表达式末尾有一个分号,就像声明其他变量一样。
语法
var functionname= function ([arg1 [,arg2 [,..., argn]]]) { statements };
-
函数声明语句:
语法
function functionname([arg1 [,arg2 [,..., argn]]]) { statements }
变量
变量是一个值的符号名称,可以通过名称来获的对值的引用。
变量是无类型的,可以被赋予任何类型的值。
变量解析:
JavaScript查找变量X的值。
变量作用域:
程序源代码中定义这个变量的区域。
全局变量拥有全局作用域在JavaScript代码中的任何地方都是有定义的。
在函数内声明的遍历只在函数体内有定义。它们是局部变量,作用域是局部性的。
局部变量的优先级高于同名的全局变量。
函数作用域:
在函数内声明的所有变量在函数体内始终是可见的。
作用域链:
每一段JavaScript代码(全局代码或函数)都有一个与之关联的作用域链,这个作用域链是一个对象列表或者链表,这组对象定义了这段代码“作用域中”的变量。
在一个嵌套的函数体内,作用域链上至少有三个对象。当定义一个函数时,它实际上保存一个作用域链。当调用这个函数时,它创建一个新的对象来存储它的局部变量,并将这个对象添加到保存的那个作用域链上,同时创建一个新的更长的表示函数调用作用域的“链”。对于嵌套函数来讲,每次调用外部函数时,内部函数又会重新定义一遍。因为每次调用外部函数的时候,作用域链都是不同的。内部函数在每次定义的时候都有微妙的差别——在每次调用外部函数时,内部函数的代码都是相同的,而且关联这段代码的作用域链也不相同。
表达式和运算符
表达式
JavaScript中的一个短语,JavaScript解释器会将其计算出一个结果。
常量是最简单的一类表达式,变量名也是一种简单的表达式,它的值就是赋给变量的值。
复杂表达式是由简单表达式组成的。常用的方法就是使用运算符。
原始表达式:
最简单的表达式。包含常量或直接量、关键字和变量。
关系表达式:
用于测试两个值之间的关系。根据关系是否存在返回 true
或 false
。
关系表达式总返回一个布尔值,通常在 if
、while
或者 for
语句中使用关系表达式,用以控制程序的执行流程。
运算符
JavaScript的运算符用于算数表达式、比较表达式、逻辑表达式、赋值表达式等。
左值:
表达式只能出现在赋值运算符的左侧。
在JavaScript中,变量、对象属性和数组元素均是左值。ECMAScript规范允许内置函数返回一个左值,但自定义的函数则不能返回左值。
一元运算符:
一元运算符作用于一个单独的操作数,并产生一个新值。在JavaScript中一元运算符具有很高的优先级,并且都是右结合。
“ +
” 和 “ -
” 是一元运算符,也是二元运算符。
前增量:递增运算符( ++
)在操作数之前。对操作数进行增量计算,并返回计算后的值。
后增量:递增运算符( ++
)在操作数之后。对操作数进行增量计算,返回未做增量计算的值。