nodejs之旅-003-基础知识-全局作用域及全局函数
来源:互联网 发布:windows 10系统激活 编辑:程序博客网 时间:2024/05/29 18:38
全局作用域及全局函数
在Nodejs中,一个模块中定义的变量、方法只在该模块中可用,但可以通过exports对象的使用讲起传递到模块外部。但是,仍然存在一个全局作用域,不需要任何模块加载即可使用变量、函数或类。
全局作用域
Nodejs中定义了一个global对象,代表了Nodejs中的全局命名空间,
console.log(global);
{ ArrayBuffer: [Function: ArrayBuffer], Int8Array: { [Function: Int8Array] BYTES_PER_ELEMENT: 1 }, Uint8Array: { [Function: Uint8Array] BYTES_PER_ELEMENT: 1 }, Uint8ClampedArray: { [Function: Uint8ClampedArray] BYTES_PER_ELEMENT: 1 }, Int16Array: { [Function: Int16Array] BYTES_PER_ELEMENT: 2 }, Uint16Array: { [Function: Uint16Array] BYTES_PER_ELEMENT: 2 }, Int32Array: { [Function: Int32Array] BYTES_PER_ELEMENT: 4 }, Uint32Array: { [Function: Uint32Array] BYTES_PER_ELEMENT: 4 }, Float32Array: { [Function: Float32Array] BYTES_PER_ELEMENT: 4 }, Float64Array: { [Function: Float64Array] BYTES_PER_ELEMENT: 8 }, DataView: [Function: DataView], DTRACE_NET_SERVER_CONNECTION: [Function], DTRACE_NET_STREAM_END: [Function], DTRACE_NET_SOCKET_READ: [Function], DTRACE_NET_SOCKET_WRITE: [Function], DTRACE_HTTP_SERVER_REQUEST: [Function], DTRACE_HTTP_SERVER_RESPONSE: [Function], DTRACE_HTTP_CLIENT_REQUEST: [Function], DTRACE_HTTP_CLIENT_RESPONSE: [Function], global: [Circular], process: { title: 'node', version: 'v0.10.32', moduleLoadList: [ 'Binding evals', 'Binding natives', 'NativeModule events', 'NativeModule buffer', 'Binding buffer', 'NativeModule assert', 'NativeModule util', 'NativeModule module', 'NativeModule path', 'NativeModule tty', 'NativeModule net', 'NativeModule stream', 'NativeModule _stream_readable', 'NativeModule _stream_writable', 'NativeModule _stream_duplex', 'NativeModule _stream_transform', 'NativeModule _stream_passthrough', 'NativeModule timers', 'Binding timer_wrap', 'NativeModule _linklist', 'Binding cares_wrap', 'Binding tty_wrap', 'NativeModule vm', 'NativeModule fs', 'Binding fs', 'Binding constants', 'NativeModule readline', 'NativeModule console', 'Binding signal_wrap', 'NativeModule string_decoder' ], versions: { http_parser: '1.0', node: '0.10.32', v8: '3.14.5.9', ares: '1.9.0-DEV', uv: '0.10.28', zlib: '1.2.3', modules: '11', openssl: '1.0.1i' }, arch: 'x64', platform: 'darwin', argv: [ 'node' ], execArgv: [], env: { SHELL: '/bin/bash', TERM: 'xterm-256color', TMPDIR: '/var/folders/8m/338n1zwx6b54drwph5s0hq780000gn/T/', Apple_PubSub_Socket_Render: '/private/tmp/com.apple.launchd.u8dfW4kGIc/Render', OLDPWD: '/Users/wanq/WebstormProjects/NodejsPro', USER: 'wanq', SSH_AUTH_SOCK: '/private/tmp/com.apple.launchd.wfqCjimqs6/Listeners', __CF_USER_TEXT_ENCODING: '0x1F5:0x19:0x34', PATH: '/Users/wanq/DevTools/mongodb/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin', PWD: '/Users/wanq/WebstormProjects/NodejsPro/lesson002', XPC_FLAGS: '0x0', XPC_SERVICE_NAME: '0', SHLVL: '1', HOME: '/Users/wanq', LOGNAME: 'wanq', LC_CTYPE: 'zh_CN.UTF-8', _: '/usr/local/bin/node' }, pid: 9514, features: { debug: false, uv: true, ipv6: true, tls_npn: true, tls_sni: true, tls: true }, _needImmediateCallback: false, execPath: '/usr/local/bin/node', debugPort: 5858, _getActiveRequests: [Function], _getActiveHandles: [Function], _needTickCallback: [Function], reallyExit: [Function], abort: [Function], chdir: [Function], cwd: [Function], umask: [Function], getuid: [Function], setuid: [Function], setgid: [Function], getgid: [Function], getgroups: [Function], setgroups: [Function], initgroups: [Function], _kill: [Function], _debugProcess: [Function], _debugPause: [Function], _debugEnd: [Function], hrtime: [Function], dlopen: [Function], uptime: [Function], memoryUsage: [Function], binding: [Function], _usingDomains: [Function], _tickInfoBox: { '0': 1, '1': 0, '2': 0 }, _events: { SIGWINCH: [Function] }, domain: null, _maxListeners: 10, EventEmitter: { [Function: EventEmitter] listenerCount: [Function] }, _fatalException: [Function], _exiting: false, assert: [Function], config: { target_defaults: [Object], variables: [Object] }, nextTick: [Function: nextTick], _currentTickHandler: [Function: _nextTick], _nextDomainTick: [Function: _nextDomainTick], _tickCallback: [Function: _tickCallback], _tickDomainCallback: [Function: _tickDomainCallback], _tickFromSpinner: [Function: _tickFromSpinner], maxTickDepth: 1000, stdout: [Getter], stderr: [Getter], stdin: [Getter], openStdin: [Function], exit: [Function], kill: [Function], addListener: [Function], on: [Function], removeListener: [Function] }, GLOBAL: [Circular], root: [Circular], Buffer: { [Function: Buffer] isEncoding: [Function], poolSize: 8192, isBuffer: [Function: isBuffer], byteLength: [Function], concat: [Function] }, setTimeout: [Function], setInterval: [Function], clearTimeout: [Function], clearInterval: [Function], setImmediate: [Function], clearImmediate: [Function], console: [Getter], module: { id: 'repl', exports: { writer: [Object], _builtinLibs: [Object], REPLServer: [Object], start: [Function], repl: [Object] }, parent: undefined, filename: '/Users/wanq/WebstormProjects/NodejsPro/lesson002/repl', loaded: false, children: [], paths: [ '/Users/wanq/WebstormProjects/NodejsPro/lesson002/repl/node_modules', '/Users/wanq/WebstormProjects/NodejsPro/lesson002/node_modules', '/Users/wanq/WebstormProjects/NodejsPro/node_modules', '/Users/wanq/WebstormProjects/node_modules', '/Users/wanq/node_modules', '/Users/node_modules', '/node_modules' ] }, require: { [Function: require] resolve: [Function], main: undefined, extensions: { '.js': [Function], '.json': [Function], '.node': [Function] }, registerExtension: [Function], cache: {} } }
setTimeout函数与clearTimeout函数
全局函数setTimeout的作用与客户端javascript中的setTimeout函数的作用类似,延迟多少毫秒执行回调函数。
setTimeout(cb, ms, [arg], [...])
前两个参数是必须输入的,后面的事作为回调函数cb的参数。
//5秒后执行callBackFunvar timer = setTimeout(callBackFun,5000);//取消callBackFun的调用clearTimeout(timer);
setInterval函数与clearInterval函数
全局函数setInterval的作用与客户端javascript的setInterval函数的作用类似,起定时器的作用,每隔多少秒就执行回调函数。
setInterval(cb, ms, [arg], [...]);
同样的前两个参数是必输的,后面的参数作为回调函数的参数。
//每隔5秒执行回调函数callBackFunvar timer = setInterval(callBackFun, 5000);//取消callBackFun的调用clearInterval(timer);
定时器对象的unref方法与ref方法
setTimeout方法与setInterval方法均返回一个定时器对象。定时器对象有unref方法与ref方法。
unref方法是取消调用回调函数。
在调用unref方法后,可以用ref方法恢复定时器调用回调函数。
与模块相关的全局函数及对象
1、使用require函数加载模块
加载模块
var foo = require('../foo.js');var http = require('http');
testModule.js
/** * Created by wanq on 14/11/13. */var testVar = 'This is a variable form testModule.js';exports.testVar = testVar;
app.js
/** * Created by wanq on 14/11/14. */var testModule = require('./testModule.js');console.log(testModule.testVar);
2、使用require.resolve函数查询完整模块名
require.resolve('./testModule.js');//得到testModule.js的目录及文件名
3、require cache对象
require.cache对象代表了缓存了所有已被加载模块的缓存区
0 0
- nodejs之旅-003-基础知识-全局作用域及全局函数
- nodejs -全局作用域
- nodejs之全局对象
- ::取全局作用域
- 全局作用域成员
- angularjs之全局函数
- ::全局作用
- nodejs之旅-005-基础知识-事件处理机制及事件环机制
- js中三种作用域详解(全局,函数,块级)
- js中三种作用域详解(全局,函数,块级)
- js中三种作用域详解(全局,函数,块级)
- js中三种作用域详解(全局,函数,块级)
- 全局函数的作用域和执行环境
- js中三种作用域详解(全局,函数,块级)
- js eval() 全局作用域
- CodeIgniter框架源码学习之全局函数文件--Common.php
- 全局钩子函数之 SetWindowsHookEx
- 【JS】全局对象(全局作用域) 内置对象挂到全局对象上,全局对象本身也挂到全局对象
- 在运行qt程序时遇到的collect2:ld returned 1 exit status
- java自学之路-----servlet_response、request
- NSFileManager
- php面试题
- Scroller类功能介绍
- nodejs之旅-003-基础知识-全局作用域及全局函数
- C语言实现<读取>和<写入> *.ini文件。
- 第十二周项目一 阅读程序(四)
- 硬件电路检测短路方法及预防措施
- 体积阴影(Shadow Volumes)生成算法
- php面试题
- lld3驱动学习一
- 如何在Linux里使用xargs命令
- 似然函数的详细分析----似然函数的本质意义