请教大家,这是什么现象(仅仅变量名不同而已),今天被人给问住了?

qq_29448025 2017-08-25 12:03:08
...全文
231 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
似梦飞花 2017-08-25
  • 打赏
  • 举报
回复
window有个name属性 你可以给他赋值一个字符串用来做标记 把var 改成let可以了
qq_29448025 2017-08-25
  • 打赏
  • 举报
回复
我是在chrome浏览器的控制台上输出测试的。
  • 打赏
  • 举报
回复
这充分说明了,不要用常用关键字取名,是多重要
qq_29448025 2017-08-25
  • 打赏
  • 举报
回复
引用 4 楼 showbo 的回复:
[quote=引用 2 楼 zzgzzg00 的回复:] window有个name属性 你可以给他赋值一个字符串用来做标记 把var 改成let可以了
对的,窗口名称
引用 3 楼 qq_29448025 的回复:
[quote=引用 2 楼 zzgzzg00 的回复:] window有个name属性 你可以给他赋值一个字符串用来做标记 把var 改成let可以了
谢谢 想再请问一下,这段代码中的输出该怎么解释呢?
<script src="js/jquery-1.11.1.js"></script>
<script>
	var name = 'Tom';
	$(function() {
		var name;
		console.log(typeof name);     //**** : 输出的是undefined
		if (typeof name === 'undefined') {
			name = 'sam';
			console.log("goodbye " + name);
		} else {
			console.log("hello " + name);
		}
	});
</script>`
[/quote] 作用域的问题,会从当前作用域往window上找变量 javascript运行机制浅析 在控制台输入代码执行是window作用域,函数内申明过name了,只会在取函数内的name变量,var申明的变量没有赋值默认就是undefined 你去掉var那句,typeof会输出string,是窗口的名称[/quote] 谢谢版主
  • 打赏
  • 举报
回复
引用 2 楼 zzgzzg00 的回复:
window有个name属性 你可以给他赋值一个字符串用来做标记 把var 改成let可以了
对的,窗口名称
引用 3 楼 qq_29448025 的回复:
[quote=引用 2 楼 zzgzzg00 的回复:] window有个name属性 你可以给他赋值一个字符串用来做标记 把var 改成let可以了
谢谢 想再请问一下,这段代码中的输出该怎么解释呢?
<script src="js/jquery-1.11.1.js"></script>
<script>
	var name = 'Tom';
	$(function() {
		var name;
		console.log(typeof name);     //**** : 输出的是undefined
		if (typeof name === 'undefined') {
			name = 'sam';
			console.log("goodbye " + name);
		} else {
			console.log("hello " + name);
		}
	});
</script>`
[/quote] 作用域的问题,会从当前作用域往window上找变量 javascript运行机制浅析 在控制台输入代码执行是window作用域,函数内申明过name了,只会在取函数内的name变量,var申明的变量没有赋值默认就是undefined 你去掉var那句,typeof会输出string,是窗口的名称
qq_29448025 2017-08-25
  • 打赏
  • 举报
回复
引用 2 楼 zzgzzg00 的回复:
window有个name属性 你可以给他赋值一个字符串用来做标记 把var 改成let可以了
谢谢 想再请问一下,这段代码中的输出该怎么解释呢?
<script src="js/jquery-1.11.1.js"></script>
<script>
	var name = 'Tom';
	$(function() {
		var name;
		console.log(typeof name);     //**** : 输出的是undefined
		if (typeof name === 'undefined') {
			name = 'sam';
			console.log("goodbye " + name);
		} else {
			console.log("hello " + name);
		}
	});
</script>`

87,993

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧