JS函数与作用域专题测试
考察知识点
- 函数定义与调用:函数声明、函数表达式、Function构造函数、函数提升机制
- 参数传递:基本类型与引用类型传参、默认参数、arguments对象、剩余参数
- 返回值:return语句、返回值类型、无return时的默认返回值
- 作用域与变量提升:全局作用域、函数作用域、块级作用域、var/let/const区别、暂时性死区
- 闭包:闭包定义与原理、闭包应用场景、循环中的闭包问题、IIFE、内存管理
- 箭头函数:箭头函数语法、this绑定特性、与普通函数的区别
💡 参考答案在文末
判断题
1
函数声明会被提升到作用域顶部,而函数表达式不会。
2
箭头函数的 this 绑定在定义时就确定了,无法通过 call、apply、bind 改变。
3
let 和 const 声明的变量在声明前访问会报 ReferenceError,这是因为存在暂时性死区(TDZ)。
4
函数执行到 return 语句时会立即停止,return 后面的代码不会执行。
5
ES6 可以使用默认参数语法 function fn(a = 1, b = 2) 为参数设置默认值。
单选题
6
以下代码输出结果是什么?
JavaScript
function createCounter() {
let count = 0;
return function() {
return ++count;
};
}
let counter = createCounter();
console.log(counter());
console.log(counter());
7
以下代码输出结果是什么?
JavaScript
function changeValue(x) {
x = 10;
}
let a = 5;
changeValue(a);
console.log(a);
8
以下哪个箭头函数语法是正确的?
9
以下哪种方式可以定义一个 JavaScript 函数?
10
以下代码输出结果是什么?
JavaScript
console.log(foo);
console.log(bar);
function foo() { return 1; }
var bar = function() { return 2; };
11
以下代码输出结果是什么?
JavaScript
console.log(a);
console.log(b);
var a = 1;
let b = 2;
12
以下代码输出结果是什么?
JavaScript
function greet(name) {
console.log("Hello, " + name);
}
let result = greet("World");
console.log(result);
13
以下代码输出结果是什么?
JavaScript
const obj = {
name: 'test',
fn: () => console.log(this.name),
fn2: function() { console.log(this.name); }
};
obj.fn();
obj.fn2();
多选题
14
关于 JavaScript 变量声明,以下说法正确的是?
15
关于闭包,以下说法正确的是?
16
关于箭头函数,以下说法正确的是?
填空题
17
使用函数声明定义名为 add 的函数,语法为 ____________;使用函数表达式定义,语法为 ____________。
18
在函数内部,可以使用 ____________ 对象访问所有传入的参数;ES6 中使用 ____________ 剩余参数语法收集多余参数,剩余参数是一个真正的 ____________。
19
函数通过 ____________ 语句返回值,可以返回 ____________ 的值(包括对象、数组、函数等)。如果函数没有 return 语句,默认返回 ____________。
20
JavaScript 有三种作用域:____________、____________ 和 ____________。var 声明的变量会提升到 函数作用域 顶部,let 和 const 声明的变量存在 暂时性死区。
参考答案
1.正确
2.正确
3.正确
4.正确
5.正确
6.C
7.A
8.D
9.A
10.A
11.C
12.B
13.B
14.A;B;C;D
15.A;B;C
16.A;B;C
17.function add(a, b){ return a + b };var add = function(a, b){ return a + b }
18.arguments;...args;数组
19.return;任意类型;undefined
20.全局作用域;函数作用域;块级作用域
想在手机上练习这套试卷?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码