Node.js 全局对象
JavaScript中有一个特别的对象,称之全局对象,它及其一切属性都能够在顺序都任何地方接见,即全局对象
JS的全局对象是window,而Node的全局对象是global,在node.js中,一切的全局变量都是global对象的属性。
在Node.js我们能够直接接见到global的属性,而不须要在运用中包括它。
全局对象与全局变量
global嘴笨根的作用就是作为全局变量的宿主。和window一样
什么是全局变量呢,满足一下前提的变量即称之为全局变量:
1 在最外层定义的变量;
2 全局对象的属性;
3 隐式定义的变量 (为定义直接赋值的变量)。
当我们定义了一个全局变量,这个变量同时就会成为global的属性。
这里须要注重的是,在Node.js中你不可能在最外层定义变量。由于一切用户代码都是属于当前模块的,而模块自身不是最外层上下文。
注重:永久运用 var 定义变量以防止引入全局变量,由于全局变量会污染 定名空间,进步代码的耦合风险。
接下来看看node当中的全局变量
__filename (两个下划线) : 示意的是当前正在实行的剧本的文件名。它将暑促文件地点位置的绝对途径,切和敕令行参数所指定的文件名不一定想动。假如在模块中,返回的值是模块文件的途径。
例子
效果
__dirname : 示意当前实行剧本的地点目次
setTimeout(cb, ms) : 定时器 第一个参数为指定函数,第二个参数为毫秒 ,返回值为代表定时器的句柄值
function sayHello() {
console.log('Hello World')
}
setTimeout(sayHello , 2000) //效果为两秒今后输出Hello World
clearTimeout(t) : 清空定时器,用于住手之前经由过程setTimeout建立的定时器。参数t是经由过程setTimeout函数建立的定时器。
function sayHello() {
console.log('Hello World')
}
let t = setTimeout(sayHello , 2000)
clearTimeout(t)
setInterval(cb, ms) : setInterval里第一个参数为函数,第二个参数为毫秒,返回一个代表定时器的句柄值,与setTimeout()要领区分在于setInterval会不断的挪用函数,直到clearInterval()被挪用或窗口封闭
function sayHello() {
console.log('Hello World')
// clearInterval(t) 假如不写clearInterval 顺序会一向实行打印Hello World
}
let t = setInterval(sayHello,2000)
接下来就是console要领,console用于供应控制台规范输出,多用于调试。
1 console.log(data)
向规范输出流打印字符并以换行符完毕。该要领吸收多少 个参数,假如只要一个参数,则输出这个参数的字符串情势。假如有多个参数,则 以类似于C 言语 printf() 敕令的花样输出。
2 console.info(data)
该敕令的作用是返回信息性音讯,这个敕令与console.log差异并不大,除了在chrome中只会输出笔墨外,其他的会显现一个蓝色的惊叹号。
3 console.error(data)
输出毛病音讯的。控制台在涌现毛病时会显现是赤色的叉子。
4 console.warn(data)
输出正告音讯。控制台涌现有黄色的惊叹号。
5 console.dir(obj[, options])
用来对一个对象进行检查(inspect),并以易于浏览和打印的花样显现。
6 console.time(label)
输出时候,示意计时最先。
7 console.timeEnd(label)
完毕时候,示意计时完毕。
8 console.trace(message[, …])
当前实行的代码在客栈中的挪用途径,这个测试函数运转很有协助,只要给想测试的函数内里到场 console.trace 就好了。
9 console.assert(value, message)
用于推断某个表达式或变量是不是为真,吸收两个参数,第一个参数是表达式,第二个参数是字符串。只要当第一个参数为false,才会输出第二个参数,不然不会有任何效果。
下一篇继承写全局对象— process