web-7 js 作用域

85 阅读1分钟

作用域

浏览器渲染:浏览器扫描html文档
webkit内核:html解释器 =>DOM tree CSS解释器 js引擎 渲染引擎

//作用域:词法环境 程序运行的环境
// es5:全局词法环境,局部词法环境

// 1.全局作用域:js解析器刚碰到js会产生一个全局作用域 这个作用域有一个存储对象window
//(可以将全局作用域中的变量和函数存到window)当页面关闭会销毁window
		
		var a =1;
		function fun(){
			
		}
	     console.log(window);


//2.局部作用域(函数作用域)类似window的存储对象(看不见)存函数中的变量和方法
		 //执行完毕后 清空存储 
		 
		 //作用域链查找:底层作用域 里层向外层查找
		//  var b=10;
		 function fun1(){
			 console.log(b);//undefined
			 var b=66;//局部作用域
			 console.log(b);//66
		 }
		 fun1()
		 console.log(b);//找不到里层的b undefined
 		 console.log(window);*/	
		 
		 
//3.函数内部的变量,不使用var声明的是一个局部变量
  
  function fun2(name){
 	/*  var a=40,b =30;//从左向右声明   var a=40; var b =30 */
 	/*  var a = b =30;//从右到左声明    b=30 ; var a=b; */
		// console.log(a,b); //40 30 
		      b=10; //函数内部的变量 不使用var声明 是一个局部变量
		 }
		 fun2('qx')
		 console.log(b);//10
                     
                     

定时器

      清除定时器:clearTimeout(timer)
		//执行一次
		setTimeout(function(){
			console.log('易烊千玺');
		},1000);
		
		//BOM
		var timer =setTimeout(fun,3000)
		//fun不带() 表示函数 带()执行函数
		function fun(){
			console.log('易烊千玺');
		}
			
		//clearTimeout(timer)清除定时器
		
		// 一直执行
		var timer1=setInterval(function(){
			console.log('xq');
		},1000)
		clearInterval(timer1)//清除定时器
	 */	
		//事件循环机制 enven-loop 同步 异步 (宏任务 回调函数 /微任务)
		
		console.log(1);//1
		setTimeout(function(){
		console.log(5)//3
		},0);
		setInterval(function(){
		console.log(3)//5
		},108)
		setTimeout(function(){
		console.log(6)//4
		},1080)
		console.log(2)//2