45道JS面试题【整理篇】

0.下面代码输出是什么?
// 0 '' null false undefined
console.log(0 == '',0 == null,0 == false,0 == undefined)
console.log('' == null,'' == false,'' == undefined)
console.log(null == false,null == undefined,false == undefined)
console.log(!0,!'',!null,!false,!undefined)
console.log(+0,+'',+null,+false,+undefined)
console.log(-0,-'',-null,-false,-undefined)
console.log(~0,~'',~null,~false,~undefined)
console.log(~~0,~~'',~~null,~~false,~~undefined)
1.下面代码输出是什么?
function sayHi(){
    console.log(name);
    console.log(age);
    var name = 'me';
    let age = 18;
}
sayHi()
2.下面代码输出是什么?
let name = 'me';
{
    console.log(name);
    let name = 'code';
}
3.下面代码输出是什么?
const shape = {
    radius: 10,
    diameter(){
        return this.radius * 2
    },
    perimeter: () => 2 * Math.PI * this.radius
}
console.log(shape.diameter());
console.log(shape.perimeter());
4.下面代码输出是什么?
console.log(+true);
console.log(!'linda');
5.下面代码输出是什么?
const bird = {
    size: 'small'
}
const mouse = {
    name: 'Mickey',
    small: true
}
console.log(mouse.bird.size)
console.log(mouse[bird.size])
console.log(mouse[bird['size']])
6.下面代码输出是什么?
let c = {
    greeting: 'hey',
}
let d;
d = c;
c.greeting = 'hello';
console.log(d.greeting);
7.下面代码输出是什么?
let a = 3;
let b = new Number(3);
let c = 3;
console.log(a == b);
console.log(a === b);
console.log(b === c);
console.log(a === c);
8.下面代码输出是什么?
class Chameleon {
    static colorChange(newColor){
        this.newColor = newColor
    }
    constructor({newColor='green'} = {}) {
        this.newColor = newColor
    }
}
const freddie = new Chameleon({newColor:'purple'});
console.log(freddie.colorChange('orange'));
9.下面代码输出是什么?
// 'use strict'
let greeting;
greetign = {};
console.log(greetign)
10.下面代码输出是什么?
function bark(){
    console.log('Woof')
}
bark.animal = 'dog'
console.log(bark.animal)
11.下面代码输出是什么?
function Person(firstName,lastName){
    this.firstName = firstName;
    this.lastName = lastName;
}
const member = new Person('Linda','Harlin');
Person.getFullName = () => this.firstName + this.lastName;
// Person.prototype.getFullName = function(){
//  return `${this.firstName} ${this.lastName}`
// }
console.log(member.getFullName());
12.下面代码输出是什么?
function Person(firstName,lastName){
    this.firstName = firstName;
    this.lastName = lastName;
}
const Linda = new Person('Linda','Harlin');
const Sarah = Person('Sarah','Smith');
console.log(Linda)
console.log(Sarah)
13.事件传播的三个阶段是什么?
// 捕获->目标->冒泡
14.所有对象都有原型?
// 错误
// 除基础对象外,所有对象都有原型。基础对象的原型是null
15.下面代码输出是什么?
function sum(a,b){
    return a + b;
}
console.log(sum(1,'2'))
16.下面代码输出是什么?
let number = 0;
console.log(number++);
console.log(++number);
console.log(number);
17.下面代码输出是什么?
function getPersonInfo(one,two,three){
    console.log(one)
    console.log(two)
    console.log(three)
}
const person = 'Linda';
const age = 18;
console.log(getPersonInfo`${person} is ${age} year old`)
18.下面代码输出是什么?
function checkAge(data){
    if(data==={age:18}){
        console.log('A')
    } else if(data=={age:18}){
        console.log('B')
    }else{
        console.log('C')
    }
}
console.log(checkAge({age:18}))
19.下面代码输出是什么?
function getAge(...args){
    console.log(args)
    console.log(typeof args)
} 
console.log(getAge(21));
20.下面代码输出是什么?
function getAge(){
    'use strict';
    age = 18;
    console.log(age)
}
console.log(getAge());
21.下面代码输出是什么?
const sum = eval('10*10+5')
console.log(sum)
22.cool_secret可以访问多长时间?
sessionStorage.setItem('cool_secret',123);
// 用户关闭选项卡时清除
23.下面代码输出是什么?
var num = 8;
var num = 10;
console.log(num);
24.下面代码输出是什么?
const obj = {1:'a',2:'b',3:'c'};
const set = new Set([1,2,3,4,5]);
console.log(obj.hasOwnProperty('1'));
console.log(obj.hasOwnProperty(1));
console.log(set.has('1'));
console.log(set.has(1));
25.下面代码输出是什么?
const obj = {a:'one',b:'two',a:'three'};
console.log(obj)
// 如果对象有两个具有相同名称的键,则将替换前面的键。它仍将处于第一个位置,但具有最后指定的值
26.JavaScript全局执行上下文为你创建了两个东西...
// 全局对象和this关键字
27.下面代码输出是什么?
for (let i = 0; i < 5; i++) {
    if(i===3) continue;
    console.log(i)
}
// 如果某个条件返回 true ,则 continue 语句跳过迭代
28.下面代码输出是什么?
String.prototype.giveLindaPizza = () => {
    return 'ddd'
}
const name = 'Linda';
console.log(name.giveLindaPizza())
29.下面代码输出是什么?
const a = {};
const b = {key:'b'};
const c = {key:'c'};
a[b] = 123;
a[c] = 456;
console.log(a[b]);
// a["[object Object]"] = 123
// a["[object Object]"] = 456
30.下面代码输出是什么?
const foo = () => console.log('1')
const bar = () => setTimeout(() => console.log('2'))
const baz = () => console.log('3')
console.log(foo())
console.log(bar())
console.log(baz())
31.单击按钮时 event.target 是什么?
<div onclick="console.log('1')">
    <div onclick="console.log('2')">
        <button onclick="console.log('3')">
            Click!
        </button>
    </div>
</div>
// button
32.单击下面 html 片段打印的内容是什么?
<div onclick="console.log('div')">
    <p onclick="console.log('p')">
        Click here!
</div>
// p div
33.下面代码输出是什么?
const person = {name:'Linda'};
function sayHi(age){
    console.log(`${this.name} id ${age}`)
}
console.log(sayHi.call(person,18));
console.log(sayHi.bind(person,18));
34.下面代码输出是什么?
function sayHi() {
    return (() => 0)();
}
// console.log(sayHi());
console.log(typeof sayHi());
35.以上哪些是假值?
0;
new Number(0);
('');
(' ');
new Boolean(false);
undefined;
// JavaScript 中只有6个假值:
undefined null NaN 0 '' false
36.下面代码输出是什么?
console.log(typeof typeof 1);
37.下面代码输出是什么?
const numbers = [1,2,3];
numbers[10] = 11;
console.log(numbers)
38.下面代码输出是什么?
(() => {
    let x,y;
    try{
        throw new Error();
    }catch(x){
        (x=1),(y=2);
        console.log(x);
    }
    console.log(x);
    console.log(y);
})()
39.JavaScript 中的所有内容都是...
// 原始和对象
// JavaScript 只有原始类型和对象
// 原始类型是 
Boolean null undefined BigInt Number String Symbol
40.下面代码输出是什么?
[[0,1],[2,3]].reduce(
    (acc,cur) => {
        return acc.concat(cur);
    },
    [1,2]
)
41.下面代码输出是什么?
console.log(!!null);
console.log(!!'');
console.log(!!1);
42.下面方法返回值是什么?
setInterval(() => console.log('Hi'),1000);
// 一个唯一的id 可使用 claerInterval(id) 清除定时器
43.下面代码输出是什么?
console.log([...'Linda']);
44.TypeError、ReferenceError、SyntaxError的区别
// ReferenceError是跟作用域判别失败有关 
// TypeError是作用域判别成功后对结果非法操作或者不合理

// TypeError 对一个变量的值做不合理的操作,如对非函数的变量进行函数调用 
// 或者引用null或undefined类型的值得属性
let a = {};
console.log(a.list.name); //这种情况也比较常出现
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,284评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,115评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,614评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,671评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,699评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,562评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,309评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,223评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,668评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,859评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,981评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,705评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,310评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,904评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,023评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,146评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,933评论 2 355