【03】node 之 作用域
1.什么是作用域
作用域:规定了一个变量和函数可使用的范围,作用域分为两种:全局作用域、局部作用域(函数作用域)
2.NodeJS作用域
NodeJs中一个文件就是一个模块,模块中使用var定义的变量为局部作用域,只能在该模块中使用,因为模块在使用时会把NodeJs编译为一个函数,那么使用var的定义的变量,理所当然的只能在这个模块(函数)中使用。
比如:某模块我们编写了以下代码 b.js文件
var b = 10;
console.log(arguments.callee.toString());
a.js模块引入b.js
var b = require("./b"); // 导入b模块中exports对象给变量b.
console.log("a模块中代码");
NodeJs会在执行之前,编译这个模块为:node a.js
function (exports, require, module, __filename, __dirname) {
var a = 10;// a为局部变量
}
3. NodeJS全局作用域和全局对象
NodeJs定义一个变量,如果不是使用var,而直接给变量赋值,那么就是一个全局变量,一个全局变量可以被其他模块所使用。
username = “123123”;
NodeJs中的全局对象为global,所以通过给这个对象上面添加属性,也是全局变量。
global.address = “成都源码时代”;
注意:尽量少使用全局变量,避免变量冲突。
【03】node 之 作用域的更多相关文章
- JavaScript基础03——函数的作用域及变量提升
1.作用域 作用域,变量在函数内部作用的范围/区域.有函数的地方就有作用域. 2.局部作用域和全局作用域 function fn(){ var a = 1; } console.log(a); / ...
- 03 Node.js学习笔记之根据http请求路径返回不同数据
在Nodejs中,当客户端请求的路径不同时,NodeJS处理返回不同的数据 步骤: //1.载入http模块 var http=require('http'); //2.创建一个http服务 var ...
- Java多线程系列--“JUC锁”03之 公平锁(一)
概要 本章对“公平锁”的获取锁机制进行介绍(本文的公平锁指的是互斥锁的公平锁),内容包括:基本概念ReentrantLock数据结构参考代码获取公平锁(基于JDK1.7.0_40)一. tryAcqu ...
- node爬虫 -- 网页图片
相信大家都听说过爬虫,我们也听说过Python是可以很方便地爬取网络上的图片,但是奈何本人不会Python,就只有通过 Node 来实践一下了. 接下来看我如何 板砖 ! !!
- 使用 Graphviz 画拓扑图
使用 Graphviz 画拓扑图 0)前述 本文着重讲一下 Graphviz 的风格控制,基础一些的就不在这里讲啦. graphviz 的主页是http://www.graphviz.org/. Gr ...
- How to implement a neural network
神经网络的实践笔记 link: http://peterroelants.github.io/posts/neural_network_implementation_part01/ 1. 生成训练数据 ...
- JS代码检查工具ESLint
前面的话 ESLint是一个JavaScript代码静态检查工具,可以检查JavaScript的语法错误,提示潜在的bug,可以有效提高代码质量,维持前端团队高度一致的编码风格.ESLint不但提供一 ...
- kubernetes中的Pause容器如何理解?
前几篇文章都是讲的Kubernetes集群和相关组件的部署,但是部署只是入门的第一步,得理解其中的一些知识才行.今天给大家分享下Kubernets的pause容器的作用. Pause容器 全称infr ...
- JavaScript DOM 高级程序设计读书笔记一
创建可重用的对象 简而言之,对象就是包含一组变量(称为属性)和函数(称为方法)的集合的实例.对象通常由类派生而来,而类中定义了对象拥有的属性和方法.如果你的脚本中都是对象之间的交互操作,那么就可以称之 ...
随机推荐
- C# FileStream对象
FileStream对象表示在磁盘或网络路径上指向文件的流.当类提供向文件读写字节的方法时,经常使用StreamReader或StreamWriter执行这些功能.这是因为FileStream类操作字 ...
- head与body(新手向)
网页文档包含了页头(head)与主体(body) 页头 -是对该网页文档进行描绘的主体信息. -至少含有title与meta. meta描述网页的特征,比如字符编码,平时广泛用的utf-8.且meta ...
- 问题006:为什么用java.exe执行编译的类文件的时候,不这样写java Welcome.class
为什么用java.exe执行编译的类文件的时候,不这样写java Welcome.class 是因为java虚拟机调用Welcome的时候,已经替我们增减了.class,如果你还要写java Welc ...
- JavaScript中的match方法和search方法
search在一个字串对象(string object)中查找关键词字串(规范表达式,regular expression),若匹配(即在目标字串中成功找到关键词)则返回关键词在目标字串中第一次出现的 ...
- Webpack--模块打包器
首先介绍一个安装webpack的百度经验:https://jingyan.baidu.com/article/a3a3f811230ee58da3eb8a6e.html 推荐一个详细介绍webpack ...
- hibernate系列之二
首先先介绍一下持久化: 持久化:将程序数据在持久状态和瞬时状态间转换的机制:即将内存的数据永久存在关系型数据库中: 持久化类的编写规则: 持久化类需要提供无参构造方法: 持久化类的属性需要私有,对私有 ...
- ngin负载均衡集群(一)
一.nginx负载均衡集群介绍: 1.反向代理与负载均衡概念简介严格地说, nginx仅仅是作为 Nginx Proxy反向代理使用的,因为这个反向代理功能表现的效果是负载均衡集群的效果,所以本文称之 ...
- visio画图ER图表和字段注释
最近年底属于验收的项目很多,大多数写文档中,数据库的设计ER图是比不可少的.下面记一下几个常用的用法.以下用的市visio版本为2007,由于菜单样式新版本可能有所不同,请对照相应功能进行操作! 1. ...
- 5、python中的列表
list是python内置的一种有序.可变的数据结构. 一.如何创建一个list? 示例: 注意: list中的元素可以是任意的数据类型如字符串.数字.布尔值.None等,也可以是其他的数据结构如另外 ...
- SVM python小样例
SVM有很多种实现,但是本章只关注其中最流行的一种实现,即序列最小化(SMO)算法在此之后,我们将介绍如何使用一种称为核函数的方式将SVM扩展到更多的数据集上基于最大间隔的分割数据优点:泛化错误率低, ...