预警:【你不知道的javascript】开头的文章,是用来总结书籍《你不知道的Javascript》中我不熟悉的知识,单纯的用来巩固学到的知识,和加深记忆。
可能有些地方我理解得不透彻,所以不能够保证内容的正确性,欢迎指正。
重点知识:
- 词法作用域
- 取决于 你写代码的位置,一行代码写完之后 词法作用于就确定了
- 对比this指针,this是由调用的位置决定的
- 改变 词法作用域
- eval
- eval(str) 可以动态的把str转成一段代码
- 警告你,这个可千万别用了,别问为什么了,毫不犹豫的抛起它就行
- new function
- new function(str1. str1..) 最后一个参数一定是函数体,其余参数都作为传给函数体的参数。
- 深入 JS new Function 语法 « 张鑫旭-鑫空间-鑫生活
- 这个我相信很多人也根本不知道,而且根本不会用到,但是在很多框架的源码中也有用到,比如vue的模版解析中,https://juejin.cn/post/6959019076983209992
- with
- with(obj) 可以把一个对象处理为词法作用域
- 我们一般用不到with,但是在 vue源码中的 渲染函数 用到了 with
- 参考 在Vue源码中如何使用With - 编程语言 - 亿速云
- 至少你应该知道 js 中有这么一个语法
- eval