编程语言
首页 > 编程语言> > 你不知道的javascript (上卷) 笔记

你不知道的javascript (上卷) 笔记

作者:互联网

今天看 你不知道的javascript (上卷) 总结一些自己以前没注意到的小知识点笔记:

1. 变量的赋值操作如何进行?

    变量的赋值操作会执行两个动作:

         如果在当前作用域中之前未声明过,首先编译器会在其作用域中声明一个变量;

         在运行时 引擎会在作用域中查找该变量,如果能找到就对它进行赋值操作;

   比如: var a = 2     首先 var a 在其作用域中声明新变量a. 代码执行前进行;

             接下来,执行 a= 2 会在作用域中查询 (LHS查询)变量a 并对其进行赋值;

2. LHS 查询和 RHS 查询

   LHS 查询: 目的是对变量进行赋值;

   RHS 查询:目的是 获取变量的值;

   LHS 查询和 RHS 查询都会在 当前执行作用域中开始,逐层向上 查询目标标识符,最后抵达全局作用域(顶层)停止。

   不成功的 RHS 引用会导致抛出 ReferenceError 异常。 在 非严格模式下,不成功的LHS 引用会导致自动隐式地创建一个全局变量,该变量使用 LHS 引用的目标作为标识符,在 严格模式下,抛出 ReferenceError 异常。

3. “隐藏” 变量和函数

    优点: 首先,设计上将具体内容私有化; 其次,可以避免同名标识符之间的冲突,冲突会导致变量的值被意外覆盖;

4. 区分函数声明和函数表达式

   function 关键字出现在声明中的位置,如果function 是声明中的第一个词,那么就是一个函数声明,否则就是一个函数表达式;

   函数声明和函数表达式之间最重要的区别是它们的名称标识符将会绑定在何处。

 

 

 

    

 

标签:上卷,变量,作用域,javascript,笔记,查询,LHS,赋值,函数
来源: https://www.cnblogs.com/xhQ2/p/12974361.html