JS的Geolocation、栈内存和堆内存、闭包

JS的地理位置API

	<script type="text/javascript">
		window.onload=function(){
			var elMap = document.getElementById('loc');
			var msg = 'Sorry';
			
			if(Modernizr.geolocation){
				navigator.geolocation.getCurrentPosition(success, fail);
				elMap.textContent='Check...';
			}else{
				elMap.textContent = msg;
			}
			
			function success(position){
				msg = '<h3>Longitude:<br>';
				msg += position.coords.latitude + '</h3>';
				msg = '<h3>latitude:<br>';
				msg += position.coords.Longitude + '</h3>';
				elMap.innerHTML = msg;
			}
			
			function fail(){
				elMap.textContent = msg;
				console.log(msg.code);
			}
		}
	</script>

JS的栈内存和堆内存

js中的变量都是保存在栈内存中的
	基本数据类型的值都是在栈内存中存储 //基本数据类型:String Number boolean null Undefined
	值与值之间是独立存在的,修改一个变量不会影响其他变量 //var a=123; var b=a; 如果修改a++;不会影响b的值
		
		//引用类型: object
	引用数据类型是保存在堆内存中的,每创建一个新的对象,就会在堆内存中开辟一个新的空间,
	而变量保存的是对象的内存地址(对象的引用)如果两个变量保存的是同一个对象引用,当一个通过一个变量修改属性值时,另一个也会受影响。

JS的闭包

<script type="text/javascript">
		function fun(){
			var a=2;
			function fun1(){
				a++;
				console.log(a);
			}
			return fun1;
		}
		var f=fun();
		f();
		f();
		
		function fn(){
			var b=1;
			function fn1(){
				b++;
				console.log(b);
			}
			function fn2(){
				b--;
				console.log(b);
			}
			return {
				fn1:fn1,
				fn2:fn2
			}
		}
		var c=fn();
		c.fn2();
		c.fn1();
	</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值