JS中级技能认证
考察知识点
| 知识模块 | 题数 | 核心考点 |
|---|---|---|
| 原型链与继承 | 5题 | 原型链查找机制、继承实现方式、原型操作 |
| 异步进阶与并发控制 | 4题 | Promise高级用法、异步流程控制、并发限制 |
| 模块化与工程化基础 | 4题 | Webpack配置、模块规范、打包优化 |
| 浏览器与DOM高级 | 4题 | 事件委托、性能优化、DOM高级操作 |
| 高级语法与特性 | 3题 | 原型链深入、ES6+高级特性、代码执行分析 |
以下代码的输出结果是什么?
function Parent() {}
Parent.prototype.name = 'parent';
const child = new Parent();
child.name = 'child';
console.log(child.name);
delete child.name;
console.log(child.name);
在JavaScript中,所有原型链的终点都是 Object.prototype。
关于构造函数和原型的关系,以下说法正确的有哪些?
以下代码的输出结果是什么?
function Person(name) {
this.name = name;
return { age: 18 };
}
const p = new Person('Tom');
console.log(p.name);
console.log(p.age);
以下代码的输出结果是什么?
function Foo() {}
const f1 = new Foo();
Foo.prototype = { name: 'bar' };
const f2 = new Foo();
console.log(f1.name);
console.log(f2.name);
以下代码的输出结果是什么?
async function* asyncGenerator() {
yield Promise.resolve(1);
yield Promise.resolve(2);
yield Promise.resolve(3);
}
(async () => {
for await (const value of asyncGenerator()) {
console.log(value);
}
})();
对象可以同时实现 [Symbol.iterator]() 和 [Symbol.asyncIterator](),使其既支持 for...of 又支持 for await...of。
以下代码的输出结果是什么?
function* gen() {
try {
yield 1;
yield 2;
yield 3;
} finally {
console.log('cleanup');
}
}
const g = gen();
console.log(g.next());
console.log(g.return(100));
console.log(g.next());
Generator 函数不能作为构造函数使用,不能通过 new 关键字调用。
关于Webpack的核心配置,以下说法正确的是?
关于Webpack Dev Server的配置和功能,以下说法正确的有?
yarn最初发布时的主要优势之一是支持并行安装包,而npm 5之前的版本是串行安装包的,npm 5及以后版本也支持并行安装了。
关于npx命令的作用,以下说法正确的是?
关于事件委托(Event Delegation)的实现原理,以下说法正确的是?
addEventListener的passive选项设置为true时,表示监听函数不会调用preventDefault()阻止默认行为,浏览器可以不用等待监听函数执行完成就立即开始默认行为,从而提升滚动性能。
使用removeEventListener移除事件监听时,必须传入与addEventListener相同的________、________和useCapture参数。如果监听时使用了匿名函数,则无法移除该监听器。
关于BOM(Browser Object Model)的window对象,以下说法正确的是?
以下代码的输出结果是什么?
function Foo() {}
Foo.prototype.a = 1;
const foo = new Foo();
Foo.prototype = { b: 2 };
console.log(foo.a, foo.b);
当对象自身属性和原型链上存在同名属性时,访问该属性会返回原型链上的值。
在 ES Modules 中,重新导出另一个模块的所有导出内容,应使用语法:_____________ 'module-path';若要同时导入并重新导出,应使用:_______________ 'module-path';若要将默认导出转为命名导出重新导出,应使用:_____________________ newName from 'module-path'。
📝 发现内容有误?点击此处直接编辑
长按或扫描二维码,立即体验