天天看點

javascript中垃圾收集機制和塊級作用域的機率

<html>
	<head>
		<title>014</title>
		<script type="text/javascript" charset="utf-8">
		
			//javascript是一門具有自動垃圾收集機制的程式設計語言。開發人員不必關心記憶體配置設定和回收問題
				//離開作用域的值将被自動标記為可以回收,是以将在垃圾收集期間被删除。标記清除是目前主流的垃圾收集
				//算法。這種算法的思想是給目前不使用的值加上标記,然後回收其記憶體。
			//javascript裡面沒有塊級作用域的機率,和c/java等進階語言不同,是以在使用if、for時候要格外小心。
			//javascript模拟塊級作用域
			
			垃圾收集 方法1 标記方法  
			/*
			function test(){
				var a=10;//被使用
				var b=20;//被使用
			}
			test();//執行完畢之後,a、b又被标記了一次:沒有被使用
			*/
			
			//垃圾收集 方法2 引用計數法
				//大概就是變量指派時count為1,然後使用這個變量直到count為0時會被垃圾收集機制給回收,大概就是這個意思
				
			塊級作用域的機率
			
			//進階程式語言  for if 塊級作用域的機率
			/*
			function test(){
				for (var i=1;i<=5;i++){
					alert(i);//1 2 3 4 5 然後結束for循環
				}//本來應該變量i應該被回收
				alert(i);//6  這是因為js沒有塊級作用域的機率
			}
			
			test();//1 2 3 4 5 6  該方法已經執行完畢
			//alert(i); //什麼都沒有顯示 
			*/
			
			//js  :  ()表示執行  模拟進階程式語言塊級作用域的機率。
			function test(){
				(function(){
					for(var i=1;i<=5;i++){
						alert(i);//1 2 3 4 5
					}
				})();
				//alert(i);
			}
			test();
			
			(function(){alert('我直接執行了');})();//我直接執行了
			//  (方法)()  相當于  方法名.();
			
			
			
		
		</script>
	</head>
	<body>
	
	</body>
</html>
           

繼續閱讀