• JavaScript-作用域-预解析


    <html lang="en">
    <head>
    	<meta charset="UTF-8">
    	<title>作用域-预解析</title>
    </head>
    <body>
    	<h1>变量的查找就是就近原则,去寻找var定义的变量,当就近没有找到的时候,就去查找外层</h1>
    	<script>
    
    	/*
    		var a=1;
    		function fn1(){
    			alert(a);
    			var a=2;
    		}
    		fn1();
    		alert(a);
    	*/
    	/*第一种  输出undefined 1
    
    	 	预解析:
    	 	var a
    	 	alert(a)
    	 	var a=2;
    
    	  说明:
    	  第一个alert(a),查找a的时候会先在函数内查找
    	  由于预解析的作用,此时的a是undefined
    	  因此不会查找外面的a
    	*/
    
    
    	/*
    		var a=1;
    		function fn1(){
    			alert(a);
    			a=2;
    		}
    		fn1();
    		alert(a);
    	*/
    	/*第二种 输出1  2
    	  说明:
    	  第一个alert(a),就近找var声明的变量,没有找到。
    	  这里只是修改了a的值为2。只不过alert(a)还没执行到
    	*/
    
    	
    
    	/*
    		var a=1;
    		function fn1(a){
    			alert(a);
    			a=2;
    		}
    		fn1();
    		alert(a);
    	*/
    	/*第三种  输出undefined 1*/
    	
    
    
    	/*
    		var a=1;
    		function fn1(a){
    			alert(a);
    			var a=2;
    		}
    		fn1();
    		alert(a);
    	*/
    	/*第四种  输出undefined 1*/
    	
    
    
    	/*
    		var a=1;
    		function fn1(){
    			alert(a);
    			 a=2;
    		}
    		fn1(a);
    		alert(a);
    	*/
    	/*第五种  输出1 2*/
    	
    
    	/*
    		var a=1;
    		function fn1(){
    			alert(a);
    			var a=2;
    		}
    		fn1(a);
    		alert(a);
    	*/
    	/*第六种 输出undefined 1 */	
    	
    
    	/*
    		var a=1;
    		function fn1(a){
    			alert(a);
    			 a=2;
    		}
    		fn1(a);
    		alert(a);
    	*/
    	/*第七种  输出1 1*/
    	
    
    	/*
    		var a=1;
    		function fn1(a){
    			alert(a);
    			var a=2;
    		}
    		fn1(a);
    		alert(a);
    	*/
    	/*第八种 输出1 1 
    	  说明:
    	  第一个alert(a),当参数跟局部变量重名时
    	  优先级是等同的
    	*/
    	
    	
    
    	</script>
    </body>
    </html>
  • 相关阅读:
    <11>改变图像的尺寸,方便上传服务器
    <10>获取当前时间
    <09>获得字符串的size
    <08>时间戳的转换
    <07>手机号码验证
    <06>邮箱的验证
    <05>判断字符串是否为空
    WKWebView的一些知识
    objc_setAssociatedObject 使用
    linker command failed with exit code 1 (use -v to see invocation) 编译报错原因
  • 原文地址:https://www.cnblogs.com/1666818961-lxj/p/7383965.html
Copyright © 2020-2023  润新知