global + process 进程 + 异步

 

 

global

var声明不能直接声明在global上

global.a = 100 ;
console.log( global.a ) //输出必须带global

 

console.log(global)
/*
* 五个形参 我们也叫它全局属性 在任何文件中都可以使用
* (function(export , require , module , __dirname , __filename ){
* console.log(this) //闭包导致了this的变化
* 2.global.js
* })()
*
* */

process 进程

次开启一个程node序,就会开一个进程,代码执行完毕就自动关闭进程
process.nextTick()   //下一队列 (当前队列的底部),同步代码执行完后会执行的方法
process.pid() //进程id号
process.kill() // 杀掉进程
process.cwd() // dirname 不可以更改的 当前工作目录current working directory
process.exit() //退出进程

// 3秒后关闭进程
setInterval(function () {
process.exit( )
},3000)


异步的三个方法
setTimeout()   唯一能设置时间的
setInterval()
setImmediate() netxTick后执行的方法

//time 和 timeEnd 的参数必须传入一个字符串 ,并且是同一个
console.time('start') //计时
for(var i=0; i<1000 ; i++){ }
console.timeEnd('start')

function eat(who,food) {
console.log(this) //settimeout 中的this指的是自己
console.log(who+"..."+food)
}
//在第二个参数之后都是给运行的函数传递值
//setTimeout(eat,1000,'小花',"冰激凌")
//bind可以改变this指向
setTimeout(eat.bind(global),1000,'小花',"冰激凌")

//执行快慢:   同步 --  process.nextTick   --  setImmediate  --   setTimeout
例子:
console.log("a");
process.nextTick(function () {
console.log("去厕所。。。")
})
console.log("b")

setImmediate(function () { //立即执行
console.log("扫地")
})

setTimeout(function () {
console.log("端饭" )
},2000) //如果不写事件约等于 setImmediate时间 可能会在setImmediate之前执行





console
console.log()
console.error()
console.info()
console.warn()
console.time()
console.timeEnd()
 __dirname  __filename



posted @ 2017-02-27 15:01  陌悠尘  阅读(371)  评论(0编辑  收藏  举报