个人js基础知识及看js高级程序设计查漏 汇总
1.事件循环机制
js单线程操作。
1>主线程读取js代码 ,此时为同步环境,形成相应的堆和执行栈。
2>主线程遇到异步任务,指给对应的异步进程处理。
3>异步进程处理完毕后,将相应的异步任务推入到任务队列。
4>主线程执行完毕后会查询任务队列,如果处在任务 ,则取出一个任务推入主线程处理(先进先出)
5> 重复执行 2/3/4;称之为事件循环。
2.闭包
访问函数内部的私有变量并一直保存对其的应用。
‘私有变量’=null 可以释放内存。
3.this
1>全局环境下 this指向 window
2>普通函数中 this指向 window 或者undefined(严格模式)function a(){console.log(this)} a()
3>作为方法 谁调用指向谁
4> 箭头函数 函数体内的this
对象,就是定义时所在的对象,而不是使用时所在的对象
4、函数参数是按值传递的。
function setName(obj){ obj.name ='11'; //obj此时是person的值 { }, 引用类型 obj = new Object(); //参数obj为局部变量 ,重新被赋值为 一个新对象 obj.name ='22222'; //对局部变量操作 当函数执行完毕,局部变量会销毁 } var person = new Object(); setName(person); alert(person.name)// 11