We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
在浏览器 JavaScript 中,通常 window 是全局对象, 而 Nodejs 中的全局对象是 global
JavaScript
window
Nodejs
global
在NodeJS里,是不可能在最外层定义一个变量,因为所有的用户代码都是当前模块的,只在当前模块里可用,但可以通过exports对象的使用将其传递给模块外部
NodeJS
exports
所以,在NodeJS中,用var声明的变量并不属于全局的变量,只在当前模块生效
var
像上述的global全局对象则在全局作用域中,任何全局变量、函数、对象都是该对象的一个属性值
将全局对象分成两类:
真正的全局对象
模块级别的全局变量
下面给出一些常见的全局对象:
Class:Buffer
process
console
clearInterval、setInterval
clearTimeout、setTimeout
可以处理二进制以及非Unicode编码的数据
Unicode
在Buffer类实例化中存储了原始数据。Buffer类似于一个整数数组,在V8堆原始存储空间给它分配了内存
Buffer
一旦创建了Buffer实例,则无法改变大小
进程对象,提供有关当前过程的信息和控制
包括在执行node程序的过程中,如果需要传递参数,我们想要获取这个参数需要在process内置对象中
node
启动进程:
node index.js 参数1 参数2 参数3
index.js文件如下:
process.argv.forEach((val, index) => { console.log(`${index}: ${val}`); });
输出如下:
/usr/local/bin/node /Users/mjr/work/node/process-args.js 参数1 参数2 参数3
除此之外,还包括一些其他信息如版本、操作系统等
用来打印stdout和stderr
stdout
stderr
最常用的输入内容的方式:console.log
console.log("hello");
清空控制台:console.clear
console.clear
打印函数的调用栈:console.trace
function test() { demo(); } function demo() { foo(); } function foo() { console.trace(); } test();
设置定时器与清除定时器
setInterval(callback, delay[, ...args])
callback每delay毫秒重复执行一次
callback
delay
clearInterval则为对应发取消定时器的方法
clearInterval
设置延时器与清除延时器
setTimeout(callback,delay[,...args])
callback在delay毫秒后执行一次
clearTimeout则为对应取消延时器的方法
clearTimeout
全局命名空间对象,墙面讲到的process、console、setTimeout等都有放到global中
setTimeout
console.log(process === global.process) // true
这些全局对象是模块中的变量,只是每个模块都有,看起来就像全局变量,像在命令交互中是不可以使用,包括:
获取当前文件所在的路径,不包括后面的文件名
从 /Users/mjr 运行 node example.js:
/Users/mjr
node example.js
console.log(__dirname);// 打印: /Users/mjr
获取当前文件所在的路径和文件名称,包括后面的文件名称
console.log(__filename);// 打印: /Users/mjr/example.js
module.exports 用于指定一个模块所导出的内容,即可以通过 require() 访问的内容
module.exports
require()
exports.name = name;exports.age = age;exports.sayHello = sayHello;
对当前模块的引用,通过module.exports 用于指定一个模块所导出的内容,即可以通过 require() 访问的内容
用于引入模块、 JSON、或本地文件。 可以从 node_modules 引入模块。
JSON
node_modules
可以使用相对路径引入本地模块或JSON文件,路径会根据__dirname定义的目录名或当前工作目录进行处理
__dirname
The text was updated successfully, but these errors were encountered:
No branches or pull requests
一、是什么
在浏览器
JavaScript
中,通常window
是全局对象, 而Nodejs
中的全局对象是global
在
NodeJS
里,是不可能在最外层定义一个变量,因为所有的用户代码都是当前模块的,只在当前模块里可用,但可以通过exports
对象的使用将其传递给模块外部所以,在
NodeJS
中,用var
声明的变量并不属于全局的变量,只在当前模块生效像上述的
global
全局对象则在全局作用域中,任何全局变量、函数、对象都是该对象的一个属性值二、有哪些
将全局对象分成两类:
真正的全局对象
模块级别的全局变量
真正的全局对象
下面给出一些常见的全局对象:
Class:Buffer
process
console
clearInterval、setInterval
clearTimeout、setTimeout
global
Class:Buffer
可以处理二进制以及非
Unicode
编码的数据在
Buffer
类实例化中存储了原始数据。Buffer
类似于一个整数数组,在V8堆原始存储空间给它分配了内存一旦创建了
Buffer
实例,则无法改变大小process
进程对象,提供有关当前过程的信息和控制
包括在执行
node
程序的过程中,如果需要传递参数,我们想要获取这个参数需要在process
内置对象中启动进程:
index.js文件如下:
输出如下:
除此之外,还包括一些其他信息如版本、操作系统等
console
用来打印
stdout
和stderr
最常用的输入内容的方式:console.log
清空控制台:console.clear
打印函数的调用栈:console.trace
clearInterval、setInterval
设置定时器与清除定时器
callback
每delay
毫秒重复执行一次clearInterval
则为对应发取消定时器的方法clearTimeout、setTimeout
设置延时器与清除延时器
callback
在delay
毫秒后执行一次clearTimeout
则为对应取消延时器的方法global
全局命名空间对象,墙面讲到的
process
、console
、setTimeout
等都有放到global
中模块级别的全局对象
这些全局对象是模块中的变量,只是每个模块都有,看起来就像全局变量,像在命令交互中是不可以使用,包括:
__dirname
获取当前文件所在的路径,不包括后面的文件名
从
/Users/mjr
运行node example.js
:__filename
获取当前文件所在的路径和文件名称,包括后面的文件名称
从
/Users/mjr
运行node example.js
:exports
module.exports
用于指定一个模块所导出的内容,即可以通过require()
访问的内容module
对当前模块的引用,通过
module.exports
用于指定一个模块所导出的内容,即可以通过require()
访问的内容require
用于引入模块、
JSON
、或本地文件。 可以从node_modules
引入模块。可以使用相对路径引入本地模块或
JSON
文件,路径会根据__dirname
定义的目录名或当前工作目录进行处理参考文献
The text was updated successfully, but these errors were encountered: