function fn() { var a = b = 1; } fn(); console.log(b); console.log(a);
时间: 2024-02-19 22:36:50 浏览: 19
执行这段代码会输出 1 和 ReferenceError: a is not defined。
在函数体中,变量 a 被声明为局部变量并赋值为1,而变量 b 没有使用 var 关键字声明,因此被视为全局变量并赋值为1。
当执行 fn() 函数后,b 变量被创建并赋值为1,但是 a 变量只在函数内部可见,执行完函数后即被销毁。
因此,console.log(b) 输出 1,而 console.log(a) 报错,因为在全局作用域中并没有定义变量 a。
相关问题
var a=1; function fn(a){ console.log(a); a= 3; } fn(); console.log(a);两次输出的分别是什么
这段代码中,第一行定义了一个全局变量a,并赋值为1。第二行定义了一个函数fn,它有一个参数a。在函数体内,首先使用console.log输出了参数a的值,然后将参数a赋值为3。
第四行调用函数fn时,没有传递任何参数,因此函数内部的a值为undefined。console.log输出undefined。
第五行再次使用console.log输出全局变量a的值,此时为1。
因此,这段代码的输出结果为:
undefined
1
function foo(){ var x=1; function fn(){ var x=A; } fn(); console.log(x); } foo();
以下是关于给定函数的介绍和演示:
1. 介绍:
这个函数定义了一个名为foo的函数,其中包含了一个内部函数fn。在foo函数中定义了一个变量x,并在fn函数中也定义了一个同名的变量x。在调用fn函数后,会打印出foo函数中定义的变量x的值。
2. 演示:
```javascript
function foo(){
var x=1;
function fn(){
var x='A';
}
fn();
console.log(x);
}
foo(); // 输出:1
```