前端知识重点总结
学习总是与遗忘相对应,因此,笔记就变得尤为重要了。在这里,你们可以看到我学习的印记,同我一起学习,成为前端小能手哦>.<
yezi__626
这个作者很懒,什么都没留下…
展开
-
词法欺骗:eval和with,尽量少用
词法欺骗:eval和with,尽量少用1.evalfunction demo1(str,a){eval(str)//欺骗console.log(a,b)}var b =2;demo1("var b=3",1)eval("var b = 3"),在demo1内部声明了一个b变量,对已经存在的demo1的词法作用域进行了修改,内部创建的b变量遮蔽了全局作用域中同名的b变量。因此当console.log(a,b)在demo1内部同时找到了a,b所以就不会向外部找了,因此输出1原创 2021-02-24 11:23:11 · 122 阅读 · 0 评论 -
为什么区分LHS和RHS?
因为在变量还没声明(在任何作用域中都无法找到该变量)情况下,这两种查询行为是不一样的。LHS与RHS是JavaScript引擎的两种查找类型。RHS:需要获取那个变量的值,就是对那个变量的值进行RHS引用,理解为赋值操作的源头。(=1)LHS:对那个赋值就是对那个进行LHS引用,可以理解为赋值操作的目标.(var a)例一:var a = 1;将其以等式拆为两个部分:var a和=1.var a 则是进行LHS查询,编译器遇到var a,会询问作用域是否存在一个名为a的变量,如果有原创 2021-02-23 14:40:10 · 1033 阅读 · 0 评论