JavaScript中变量和变量作用域知识点的案例

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JavaScript中变量和变量作用域知识点</title>
<script type="text/javascript">
/*
js中的数据类型
有6种,分别是number、 boolean、 string、 null、 undefined、 object
*/
//undefined是javascript的一种基本数据类型,变量未赋值或者函数没有返回值时返回undefined		
function fn1(){}
console.log(fn1()); //结果为undefined
var a; //声明变量,但是没有给a变量赋值
console.log(a); //结果为undefined

function fn2() {
	return 666; //该函数有返回值
}
console.log(fn2()); //结果为666

var b = 1;
var c = 6;
var y = 8;
var d = 0;
console.log(b==true, c==true, y==true, d==true);//结果为true false false false
console.log(b===true, c===true, y===true, d===true);//结果为false false false false
console.log(!b, !c, !y, !d);//结果为false false false true

var e = 1;
if(!e){ //判断条件是false,所以无法进入判断语句内部,那么f无法被赋值
//只有在函数内部并且使用var关键字声明的变量才是局部变量,在if、while,for里面声明的变量统统都是全局变量
//f其实是个全局变量,在解析过程中,先将f变量提升:var f;
	var f = 10;
}

//只有在函数内部并且使用var关键字声明的变量才是局部变量,在if、while,for里面声明的变量统统都是全局变量
function fn3(){
	var g = 20; //在函数内部并且使用var关键字声明的变量,该变量是局部变量
	console.log('函数内g=' + g); //结果为函数内g=20
	h = 30; //没有使用var关键字声明的变量,该变量是全局变量,即便在函数内部
	console.log('函数内h=' + h); //结果为函数内h=30
}
fn3();

/*
f其实是个全局变量,在解析过程中,先将f变量提升:var f;
然后进入判断语句,因为判断条件是false,所以无法进入判断语句内部,那么f无法被赋值,所以,打印f为undifined
如果,把判断条件!e改为e,即为true,那么console.log(f);打印的就是10
所以,f变量的赋值阶段一定要和判断条件结合起来分析。
*/
console.log(f);//结果为undefined
/*
作用域分为全局作用域和函数作用域,h未使用var关键字声明,直接赋值,即赋予了其全局光环,所以即使它在函数fn3
范围内,但是依然可以跳脱出函数作用域的禁锢,自由活动,无论在哪都可打印出h的值
*/
//注意:没有使用var关键字声明的变量,该变量是全局变量,即便在函数内部
console.log(h);//结果为30

/*
fn3函数的作用域内,g作为局部变量,g既被声明又被赋值,所以唯有在调用fn3函数即fn3()后,g才能彰显其价值,打印出值来.
但g相当委屈,虽然要啥有啥(有var关键字,有变量名,有值),但是圈禁在函数作用域内,所以作用域外部打印g时,是无法在全
局作用域的范围内寻找到g的踪影的,只有在fn3函数作用域内console.log(g)才能看到g的值;
在全局作用域内,g连声明都没有,我上哪找你去?所以只能报错ReferenceError: g is not defined
*/

// console.log(g);//报错ReferenceError: g is not defined

var k = 8899;
console.log(k,!k); //结果为8899 false
if(k){//判断条件是true,所以会进入判断语句内部,那么m会被赋值
//只有在函数内部并且使用var关键字声明的变量才是局部变量,在if、while,for里面声明的变量统统都是全局变量
//m其实是个全局变量,在解析过程中,先将m变量提升:var m;	
	var m = '江西省赣州市于都县'; 
	console.log(m); //结果为江西省赣州市于都县
}
//在if{}花括号外也可以访问到m变量
console.log(m); //结果为江西省赣州市于都县
</script>
</head>
<body style="background-color: #CCE8CF;">
<h3 style="color: #cd1636;">JavaScript中变量和变量作用域知识点</h3>
<a href="https://blog.csdn.net/czh500/article/details/103477355" target="_blank">
参考网页https://blog.csdn.net/czh500/article/details/103477355
</a>
<br/>
</body>
</html>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值