美文网首页
eval()、node全局变量、局部变量、犀牛书

eval()、node全局变量、局部变量、犀牛书

作者: 89089答复 | 来源:发表于2018-02-21 19:53 被阅读27次

下午一个全局eval()代码段执行的问题暴露出了一个技术人员该有的哪些素质?
首先我问犀牛书84页中代码段执行为何node中执行出现y is not defined,开始大家为我解答问题:
1,大师姐说我在浏览器环境下是可以执行出来结果的,
2,于鑫开始对问题产生兴趣,在stack overflow中找到同样的这个问题,并且有解决方案,


image.png

原文链接:https://stackoverflow.com/questions/24522719/node-js-global-eval-throwing-referenceerror
3,遇到问题如果不是书写错误,就换一个环境去执行一遍试下,
4,问题还没有解决就问百度或者google,或者直接在CSDN和stack overflow中找答案,这个时候敢看英语解答就很重要,在英文解答中,知识点是浏览器中,顶层作用域就是全局作用域,在node中顶层作用域不同于全局作用域,声明something在node模块中将会是那个模块中的局部变量,
5,这个时候我看了老师给的文章解释文章中给的第二种方法就是把
var y = global;改成y = global,就可以了,因为JavaScript解析器在处理代码时,会询问当前作用域是否声明了变量b,如果当前作用域内没有声明,就继续问外层的作用域是否声明了,如果达到顶层作用域还没有声明,就会在顶层作用域中帮忙声明一个。因为在例子中,在函数内作用域中 y声明了,但是在函数外部y并没有声明此时会在函数外层作用域(即顶层作用域)声明一个。这样y就变成了一个全局变量。
文章链接:http://xugaoyang.com/post/5a6eaeb6b8faab30b38fc9cb
6,在陈扬帆的解释中疏导全局变量和局部变量是不一样的东西,各自分配了内存,局部变量执行完后被销毁,不被销毁的情况存在与闭包的情况,这牵扯到两个问题:1,分配内存是个什么概念,2,闭包是个什么情况
7,英文解决方案第一个方案中说道node REPL是node的命令交互模式,也就是直接运行js代码,而不是通过.js运行代码,这个需要了解下node运行.js文件的过程,现在我的感觉是模块作用域,全局作用域和局部作用域等这些作用域链的问题
8,https://zhanglun.github.io/2014/04/28/%E8%AF%91-node-js%E7%9A%84%E5%85%A8%E5%B1%80%E5%8F%98%E9%87%8F/
这个篇文章解释了node中创建全局变量的两种方法不是非常理解

明天继续补充!
其他总结
1,答案给出了还要知道为什么答案是这样的,为什么这样解决就可以了,他后面的原理是什么?
2,一直要保持一个谦虚认真的态度去学习、总结
3,对于一个不理解的问题就把人家给的答案中所有不明白的地方全部记下来一点点的查漏补缺,js作为一门语言,它的基础知识总量也就那么多,你今天多搞会一点,明天就少一点,积少成多自然就厉害了
4,要有琢磨的精神

总结起来就是态度:谦虚、认真,方法:先自己解决然后再问,让懒这个词汇去死吧,学习使我快乐。

相关文章

  • eval()、node全局变量、局部变量、犀牛书

    下午一个全局eval()代码段执行的问题暴露出了一个技术人员该有的哪些素质?首先我问犀牛书84页中代码段执行为何n...

  • Javascript执行效率与提升方案

    1.循环 2.局部变量和全局变量 3.Eval (尽量避免使用) 使用eval相当于在运行时再次调用解释引擎对内容...

  • Swift-全局变量、局部变量以及类型属性

    全局变量和局部变量 全局变量和局部变量 计算属性和属性观察器所描述的功能也可以用于全局变量和局部变量。全局变量是在...

  • C/C++知识点分享(16)

    1、statac全局变量、局部变量、函数与普通全局变量、局部变量、函数,static全局变量与普通的全局变量有什么...

  • JavaScript变量、函数和变量提升

    一.变量的作用域 变量分为全局变量和局部变量 全局变量: 局部变量:

  • C语言特性(局部变量和全局变量)

    局部变量和全局变量 局部变量 局部变量根据定义形式的不同,又分为如下三种。 全局变量 在一个函数内部,如果全局变量...

  • python

    函数内全局变量赋值 Python中有局部变量和全局变量,当局部变量名字和全局变量名字重复时,局部变量会覆盖掉全局变...

  • php函数

    局部变量---动态变量 局部变量---静态变量 全局变量---global 全局变量---GLOBALS PHP传...

  • python基础

    1.局部变量、全局变量 在函数内部修改全局变量时局部变量会创建一个和全局变量一样名称的局部变量,在更改的时候只会更...

  • Block捕获变量

    block捕获的变量 局部变量 静态局部变量 全局变量 静态全局变量 函数执行部分 总结 局部变量基本数据类型:捕...

网友评论

      本文标题:eval()、node全局变量、局部变量、犀牛书

      本文链接:https://www.haomeiwen.com/subject/espotftx.html