javaScript中的变量和对象的疑惑?(js中var关键字以及如何判断js对象是否存在)

直接po图和代码

https://blog.csdn.net/czh500/article/details/103379136

 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>javaScript中的变量和对象的疑惑?(js中var关键字以及如何判断js对象是否存在)</title>
<link rel="stylesheet" type="text/css" href="inputAndDiv.css">
</head>
<body style="background-color: #CCE8CF;">
	<h3 style="color: Maroon;">
	javaScript中的变量和对象的疑惑?(js中var关键字以及如何判断js对象是否存在)
	</h3>
	<ol>
	<li>定义变量时,var关键字可以省略不写(不建议省略var关键字,因为不规范,而且可读性和维护性很差)</li>
	<li><font color="Maroon">在函数中</font>没有使用var关键字定义的变量是全局变量</li>
	<li><font color="Maroon">在函数中</font>使用了var关键字定义的变量是局部变量</li>
	<li>使用var关键字定义的变量,该变量会提升</li>
	<li>如何判断Javascript对象是否存在</li>
	</ol>
</body>
<script type="text/javascript">
// console.log(hometown); //报错hometown is not defined
if (true) {//注意:这里是在if中,并不是在函数中
	//注意:在函数中没有使用var关键字定义的变量是全局变量
	//注意:这里没有使用var关键字定义变量
	hometown = '江西省赣州市于都县'; //为了测试,故意不使用var关键字定义变量hometown
}
console.log(hometown); //结果为江西省赣州市于都县

console.log(info); //结果 为undefined
if (true) {//注意:这里是在if中,并不是在函数中
	//注意:在函数中使用var关键字定义的变量是局部变量
	//注意:这里使用了var关键字定义变量
	var info = '江西省于都县是一个人口百万的大县';
}
//if外也可以访问到变量info
console.log(info); //结果为江西省于都县是一个人口百万的大县


// console.log(age); //age is not defined
age = 16; //为了测试,故意不使用var关键字定义变量age
console.log(age); //结果为16

console.log(salary); //结果为undefined
//使用var关键字定义的变量,该变量会提升
var salary = 18500.28; //使用var关键字定义变量salary
console.log(salary); //结果为18500.28


//如何判断Javascript对象是否存在
//参考文章https://blog.csdn.net/czh500/article/details/103379136

// console.log(myObj);//报错myObj is not defined
//如下写法报错myObj is not defined
// if(!myObj){
// 	//为了测试,故意不使用var关键字来定义变量
// 	myObj = '卧薪尝胆';
// }


console.log(myObj2);//结果为undefined
//如下写法不会报错
if(!myObj2){
	//使用var关键字来定义变量
	var myObj2 = '戒急用忍';
}
console.log(myObj2); //结果为戒急用忍


// console.log(myObj3); //报错myObj3 is not defined
//除了使用var关键字,还可以有以下这种改写
if (!window.myObj3) {
	myObj3 = '锐意进取';
}
/*
window是javascript的顶层对象,所有的全局变量都是它的属性。所以,判断myobj是否为空,等同于判
断window对象是否有myobj属性,这样就可以避免因为myObj没有定义而出现ReferenceError错误。不
过,从代码的规范性考虑,最好还是对第二行加上var
*/
console.log(myObj3); //结果为锐意进取


console.log(myObj4); //结果为undefined
if (!window.myObj4) {
	//从代码的规范性考虑,最好还是加上var关键字
	var myObj4 = '厚积薄发';
}
console.log(myObj4); //结果为厚积薄发

//或者写成如下这样
// console.log(myObj5); //报错myObj5 is not defined
if (!window.myObj5) {
	window.myObj5 = '自强不息';
}
console.log(myObj5); //结果为自强不息
</script>
</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值