
作用域
Q_ss
这个作者很懒,什么都没留下…
展开
-
堆栈内存及闭包
堆栈内存及闭包JS中的堆栈 JS中的堆栈 let a = 0; let b = a; b++; aleart(a) // "0" let o = {}; o.a = 0; let b = o; b.a = 10; aleart(o.a) // "10" aleart()输出的结果都是字符串,toString() JS中的数据类型: 基本类型(值类型):number string boolean null undefined 引用类型:object function 特殊类型:symbol 栈内原创 2020-06-03 21:17:01 · 382 阅读 · 0 评论 -
函数作用域 & 块作用域
函数作用域 函数作用域:属于这个函数的全部变量都可以在整个函数的范围内使用和复用(事实上在嵌套的作用域中也可以使用),在函数外部无法访问到。 隐藏内部实现:可以把变量和函数包裹在一个函数的作用域中,然后用这个作用域来隐藏它们。 为什么“隐藏”变量和函数是一个有用的技术? –》“最小授权/最小暴露原则”,指在软件设计中,应该最小限度的暴露必要内容,而将其他内容都隐藏起来。 规避冲突:可以避免同名...原创 2020-03-29 19:15:17 · 309 阅读 · 0 评论 -
词法作用域 & 欺骗语法
词法作用域 词法作用域是定义在词法阶段的作用域,是在写代码时将变量和块作用域写在哪里来决定的。 无论函数在哪里/如何被调用,它的词法作用域都只由函数被声明时所处的位置来决定 欺骗词法 欺骗词法作用域会导致性能下降 1. eval: eval(…)可以接受一个字符串为参数,并将其中的内容视为好像在书写时就存在于程序中这个位置的代码。换句话说,可以在你写的代码中用程序生成代码并运行,就好像代码是...原创 2020-03-22 20:46:47 · 181 阅读 · 0 评论 -
作用域 & LHS、RHS查询
1. 作用域 作用域是一套规则,用于确定在何处以及如何查找变量(标识符)。如果查找的目的是对变量进行赋值,就会使用LHS查询,如果目的是获取变量的值,就会使用RHS查询。 2. LHS、RHS查询 当变量出现在赋值操作的左侧时进行LHS查询,出现在右侧时进行RHS查询。 RHS:查找某个变量的值(谁是赋值操作的源头),LHS:查询变量的容器本身(谁是赋值操作的目标)。 下面这个例子总共有3...原创 2020-03-19 19:46:54 · 276 阅读 · 0 评论