1、JS只有函数作用域,没有块级作用域这个概念;
它有一个特性——声明提前:在同一个函数中不同位置声明的变量,都被提前在函数开始的时候,执行声明操作;在原先位置执行赋值操作;
2、声明的全局变量,相当于定义了全局对象的一个属性;
1)如果使用var声明全局变量,这个属性是不可配置的。也就是无法delete
2)如果不使用var声明,则可以进行delete;
例子: var s1 = "s1"; //不可配置的全局变量
s2 = "s2"; //可配置的全局变量
delete s2; //可以执行delete操作,变量将被删除
3、★作用域链
4、原始表达式:表达式的最小单位。
包含:常量、直接量、关键字、变量;
PS:直接量就是直接出现中程序中的常数值。 1.23 数字直接量 "hello" 字符串直接量
5、关键字和保留字的区别:关键字就是JS中已经使用了,具有一定意义的字符。 保留字就是预留的关键字,现在可能不是关键字,可能以后会成为关键字的。
6、对象和数组初始化表达式实际上就是创建一个新的对象或者数组。也称作:对象直接量、数组直接量,然而他们并不是原始表达式。
7、数组初始化,如果中间没有值,可以直接省略;
var myArray = [1,2,,,3]; //中间省略了两个值,会自动填充为undefined
var myArray = [1,2,]; //如果最后以 逗号 结束,将不会填充undefined
8、函数定义表达式:也叫做 函数直接量;
var myFunc = function(x){return x*x;} //这个函数的作用是,返回一个数的平方
9、属性访问表达式: 得到一个对象属性或者一个数组元素的值。
->直接用 “点” 或者 [] 来得到值
->注意:用“点”来访问时,属性名不能是保留字、关键字、包含空格和标点符号;
10、调用表达式:调用函数或者方法的一种表现形式。 如:alert('hello')
->如果调用的函数使用return返回一个值,那么这个值就是整个调用表达式的值。否则就是undefined