js中全局变量、局部变量和隐式全局变量的区别

本文详细介绍了JavaScript中的全局变量、局部变量以及隐式全局变量的区别。全局变量在整个页面中有效,可能导致内存占用;局部变量限制在函数内部;未使用var声明的变量会成为隐式全局变量,可以被删除。此外,JS没有真正的块级作用域,只有函数作用域。

一、全局变量

  1. 声明的变量是使用 var 声明的,那么这个变量就是全局变量,全局变量可以在页面的任何位置使用。
var num1 = 20;//全局变量
	for(var i =0;i<10;i++){
		var num =10;//全局变量
	};
	console.log(num);//10
	console.log(num1);//20
  1. 除了函数以外 ,其他的任何位置定义的变量都是全局变量。
var num1= 20;//全局变量
function f(){
	var num3 =30;//局部变量
	console.log(num3);//30
}
	f();
	console.log(num1);//20
	console.log(num3);//报错,未定义num3

  1. 如果页面不关闭,那么就不会释放,就会占空间,消耗内存

补充课外小知识

块级作用域:一对大括号就可以看成是一块,在这块区域中定义的变量,只能在这个区域中使用,
但是在js中在这个块级作用域中定义的变量,外面也能使用

说明:js没有块级作用域,只有函数除外

二、局部变量:在 函数内部 定义的变量,是局部变量,外面不能使用

三、隐式全局变量:声明的变量 没有var ,就叫隐式全局变量

function f2(){
	num5 =10;//隐式全局变量
	console.log(num5);//10;
}
f2();
console.log(num5);//10

全局变量和隐式全局变量的区别

  1. 全局变量是不能被删除的,隐式全局变量是可以被删除的
  2. 定义变量使用var是不会被删除的,没有var是可以删除的
var num6 = 100;
num7 = 200;
delete num6;
delete num7;
console.log(num6);//100   全局变量不能被删除
// console.log(num7);//报错,num7   undefined

全局作用域:全局变量的适用范围
局部作用域:局部变量的适用范围

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值