老师 帮我看看 我的理解哪里出错了
来源:4-16 选择练习
豆包侠
2022-05-17 14:00:11
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
document.write(a); // 此处应该是第一个输出 a并没有被声明 这里应该是报错
var a=1; //全局变量1
function a(){
document.write("a1");
}
function a(){
document.write('a2'); // 这里预解析时如果函数名和函数名冲突,谁在后面的时候保留谁
}
document.write(a); //这里输出的a 不应该是第二行的 a=1吗
a(); //调用第二个函数结果 document.write('a2');
</script>
</body>
</html>
1回答
好帮手慕小李
2022-05-17
同学你好,老师稍作了改动把document.write改成了console.log这样以便测试看结果。详解如下:
老师改动后的代码如下:
<script>
console.log(a,"我是第一个a"); // 此处应该是第一个输出 a并没有被声明 这里应该是报错
var a = 1; //全局变量1
function a() {
console.log("a1");
}
function a() {
console.log('a2'); // 这里预解析时如果函数名和函数名冲突,谁在后面的时候保留谁
}
console.log(a,"我是倒数第二个a"); //这里输出的a 不应该是第二行的 a=1吗
// 最后a调用会报错, a is not a function这是因为a这个时候已经等于1,它已经不是个方法了,所以不能调用。
a(); //调用第二个函数结果 document.write('a2');
</script>
同学试着理解一下,祝学习愉快!
相似问题