ES6
对象
- 下面代码的输出结果是?
const student = {name: 'ZhangSan'} Object.defineProperty(student, 'age', {value: 22}) console.log(student) console.log(Object.keys(student)) 复制代码
generator
- 下列程序的输出结果是多少?为什么?
function * cb(x, y) { for(let i = Math.ceil(x); i <= y; i++) { yield i; } } var a = cb(6, 9); console.log(a.next()); console.log(a.next()); 复制代码
扩展运算符
- 下面程序的输出结果是:
function fn(...args) { console.log(typeof args); } fn(21); 复制代码
promise
Promise.reject(0) .catch(e => e) .catch(e => console.log(e)) 复制代码
class
- 请写出下面ES6代码编译后所生成的ES5代码
class Person { constructor (name) { this.name = name; } greet () { console.log(`Hi, my name is ${this.name}`); } greetDelay (time) { setTimeout(() => { console.log(`Hi, my name is ${this.name}`); }, time); } } 复制代码
标签模板
- 下面程序的输出结果是多少?
function getPersonInfo (one, two, three) { console.log(one) console.log(two) console.log(three) } const person = 'Lydia' const age = 21 getPersonInfo `${person} is ${age} years old` 复制代码
module
- 请写出index里面的输出结果
// module.js export default () => "Hello world" export const name = "nowcoder" // index.js import * as data from "./module" console.log(data) 复制代码
- 有a.js和b.js两个文件,请写出b文件中代码的输出
// a.js let a = 1 let b = {} setTimeout(() => { a = 2 b.b = 2 }, 100) module.exports = { a, b } // b.js const a = require('./a') console.log(a.a) console.log(a.b) setTimeout(() => { console.log(a.a) console.log(a.b) }, 500) 复制代码
其他
- 输出结果是:
<div id="box1"> <div id="box2"> content </div> </div> <script> const $ = document.querySelector.bind(document); const box1 = $('#box1'); const box2 = $('#box2'); box1.addEventListener('click', () =>{ console.log('box1 true'); }, true); box1.addEventListener('click', () =>{ console.log('box1 false'); }, false); box2.addEventListener('click', () =>{ console.log('box2 true'); }, true); box2.addEventListener('click', () =>{ console.log('box2 false'); }, false); </script> 复制代码
- 输出结果是:
$(function () { function fn1( value ) { alert( value ); } function fn2( value ) { fn1("A"); return false; } var callbacks = $.Callbacks(); callbacks.add( fn1 ); callbacks.fire( "B" ); callbacks.add( fn2 ); callbacks.fire( "C" ); }) 复制代码
- 实现在p元素后添加“Hello World!”,则横线处应使用的方法为( )?
<html> <head> <script type="text/javascript" src="/jquery/jquery.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("button").click(function(){ $("<b>Hello World!</b>").______("p"); }); }); </script> </head> <body> <p>This is a paragraph.</p> <p>This is another paragraph.</p> <button>在每个p元素的结尾添加内容</button> </body> </html> 复制代码
- 输出结果是:
<div id="box1"> <div id="box2"> content </div> </div> <script> const $ = document.querySelector.bind(document); const box1 = $('#box1'); const box2 = $('#box2'); box1.addEventListener('click', () => { console.log('box1 true'); }, true); box1.addEventListener('click', () => { console.log('box1 false'); }, false); box2.addEventListener('click', () => { console.log('box2 true'); }, true); box2.addEventListener('click', () => { console.log('box2 false'); }, false); </script> 复制代码
- 请选择下面代码输出1的次数
var vm = new Vue({ el: '#example', data: { message: 'Hello' }, computed: { test: function () { console.log(1) return this.message } }, created: function (){ this.message = 'World' for (var i = 0; i < 5; i++) { console.log(this.test) } } }) 复制代码
JavaScript进阶系列
- JavaScript进阶之彻底理解原型与原型链
- JavaScript进阶之预编译学习
- JavaScript进阶之彻底理清JS中this指向问题 |《2w字大章 38道面试题》
- JavaScript进阶之彻底理解EventLoop
- JavaScript进阶之作用域与作用域链