Skip to content

Latest commit

 

History

History
executable file
·
228 lines (158 loc) · 3.48 KB

4. 全局变量.md

File metadata and controls

executable file
·
228 lines (158 loc) · 3.48 KB
marp paginate style
true
true
h1 { color: #0bb8e8; }
<style scoped> h1,h2 { color: #0bb8e8; text-align: center } h2 { text-align: right } </style>

Node.js 基础

四、全局变量

⭐ by calidion


全局变量 global

查看全局变量

$> node
> for (var k of Object.keys(global)) { console.log(k);}
console
global
process
Buffer
clearImmediate
clearInterval
clearTimeout
setImmediate
setInterval
setTimeout
module
require

global

是一个包含所有全局变量的变量 它同时包含了自己

但是,其中: module require

并不是全局变量

而是一种会在每个模块都存在的变量 是模块级别的局部变量


console

一个简单的调试器,用于模拟浏览器端的 console。 console 英文的意思是安慰,使舒服。 这里可以理解为让你控制计算机更加的舒服。 console => terminal

  1. console 是 Console 类的一个对象,可以配置它的方法写入到任何 node.js 支持的流中去
  2. console 默认被配置到 process.stdout 和 process.stderr

process

当前进程,提供了进程的相关信息与控制等能力

  1. 是承继于 EventEmitter 的对象
  2. 能对事件进行响应
  3. 包含了 stdin,stdout,stderr
  4. 包含了用户与组管理接口
  5. 包含了进程启动的参数

定时器(timers)

  1. setImmediate(callback[, ...args])
  2. setTimeout(callback, delay[, ...args])
  3. setInterval(callback, delay[, ...args])

其中: a. 1 返回类 Immediate 的对象 b. 2,3 返回类 Timeout 的对象


setXXX 参数说明

格式

setImmediate(callback[, ...args])

callback 必须是函数,不能是字符。这与前端的 JS 存在差别。 delay 是毫秒数,最小是 1 ...args 任意数量的参数,用以传给 callback 函数


必须是函数示例

var timer = setTimeout("console.log('hello');", 1);

在浏览器端执行正常:

在 node.js 里执行会报错:


arg 参数的传递

  1. 无参数传入时
$> var timer = setTimeout(function(a, b, c) {
  console.log(a, b, c);
}, 1000);

输出:

undefined undefined undefined

图示:


  1. 传入一个参数
$> var timer = setTimeout(function(a, b, c) {
  console.log(a, b, c);
}, 1000, 1);

输出:

 1 undefined undefined

图示:


  1. 传入二个参数
$> var timer = setTimeout(function(a, b, c) {
  console.log(a, b, c);
}, 1000, 1, 'a');

输出:

 1 'a' undefined

图示:


setImmediate

设定执行完回调,即这个调用可能是比较消耗时间的,暂时不阻止主进程的执行,等主进程执行完之后再执行。

var timer = setImmediate(function(a, b, c) {
  console.log(a, b, c);
}, 1000, 1, 'a');
console.log("hello");

输出:

hello
1000 1 'a'

Buffer

在没有出现TypedArray之前,Node 创建它用于处理二进制。 有了 Buffer,在处理网络 IO 与文件 IO 时,数据流就可以处理了。 而 JS 在 ES6 之前是没有处理二进制的能力的。 Buffer 是处理二进制之间的转换的,不是用于字符转换的。


模块机制

module require 都是模块的机制下的参数, 在每个文件或者运行环境都会存在, 但是他们不是全局级别的