2021-10-27-前端开发面试题-006

一、多选题

1、关于剩余参数的使用,正确的是?AB

A、function fn(name, ...args) {...}
B、function fn(...args) {...}
C、function fn(...args, name) {...}
D、function fn(...name, ...args) {...}
答案:AB
C问题:剩余参数只能出现在参数列表的最后一个位置
D问题:函数的参数中,剩余参数只能有一个

2、声明类型的语法,正确的是?BC

A、class Person() {}
B、class Person {}
C、function Person () {}
D、function Person {}
答案:BC
A问题,class语法中没有类型名称后面的括号
D问题,function语法中,类型名称后面包含一个括号,使用函数模拟的类型

3、关于ES6中constructor()的描述,正确的是?

A、类型中的构造函数,用来在创建对象的同时初始化对象属性
B、创建指定类型的对象时,会自动调用执行
C、类型中的构造函数,需要手工调用执行
D、类型中的普通函数,需要手工调用执行
答案:ABD
C问题:构造函数是创建对象的时候自动执行,不需要手工调用

4、箭头函数的使用,操作语法正确的是?

A、let fn = ()-> console.log("hello")
B、let fn = ()=> console.log("hello")
C、let fn = name -> console.log("params")
D、let fn = name => console.log("params")
答案:BD
AC问题:箭头函数中使用错误了箭头符号

5、箭头函数中的参数的使用,正确的是?

A、let func = name, age => console.log(名称:${name}, 年龄:${age})
B、let func = (name, age) => console.log(名称:${name}, 年龄:${age})
C、let func = name, age => {console.log(名称:${name}, 年龄:${age})}
D、let func = (name, age) => {console.log(名称:${name}, 年龄:${age})}
答案:BD
AC问题:多个参数出现时,不能省略括号

6、箭头函数中返回值的操作,正确的是?

A、let fc = (x, y) => {x++; y++; return x + y;}
B、let fc = (x, y) => {x++; y++; x + y;}
C、let fc = (x, y) => return x + y
D、let fc = (x, y) => x + y
答案:AD
B问题:函数代码部分,带有花括号的情况下需要通过return才能返回数据
C问题:函数代码部分,省略花括号的情况下不需要添加return关键词可以直接返回数据

7、关于类和对象的描述,正确的是?

A、类表示类型的意思
B、对象是包含数据的、实际存在的物体
C、一个类型只能创建一个对象
D、多个对象可以属于一个类型
ABD
C问题:一个类型可以创建多个互相独立的对象

8、ES6类型中,对于静态属性和静态函数的操作正确的是?

A、静态属性是声明在类型内部、类型方法外部的、使用let声明的变量
B、静态属性是声明在类型内部、类型方法外部的、使用static声明的变量
C、静态属性是属于类型的属性,所以只能被类型名称调用
D、静态属性是属于类型的属性,所以可以被类型名称和该类型创建的所有对象调用
BC

9、关于函数中使用默认值,操作方式正确的是?

A、function fct(name) { name = name || 'default';... }
B、function fct(name) {name = "default";...}
C、function fct(name="defeult") {...}
D、let fct = (name="default")=> {...}
ACD
A-原生JS中默认值的添加
B-数据覆盖,不是默认值
C-ES6语法中给形式参数添加默认值
D-箭头函数中使用ES6语法的默认值

10、面向对象的继承关系中,正确的操作语法是?

A、class Student extends Person {...}
B、class Student(Person) {...}
C、class Student extends Person() {...}
D、class Student extends Person, Job {...}
A
B问题:继承语法,不是类型后面添加括号的语法
C问题:继承的父类不能添加括号
D问题:JS中的继承是单继承机制,不能同时继承多个类型

二、简答题

1、观察下面的代码,最终控制台会输出什么结果呢?请说明原因?

let name = "TOM"
function fn() {
console.log(name) // ?
let name = "JERRY"
}
fn()

输出错误,let声明的变量存在暂时性死区,变量声明之前不能使用该变量

2、梳理下面的代码,最终输出的数据是什么呢?请说明原因?

let person = {'pName': 'OFFCN', 'pAge': 20, 'pGender': 'male'}
let {pName: name, pAge} = person
console.log(name) // ①
console.log(pName) // ②
console.log(pAge) // ③

① 输出OFFCN,别名输出,给pName的值赋值到了一个名称为name的变量中
② 错误,一旦出现了别名赋值,原来的属性名称就不能使用
③ 20
解构赋值中,如果给一个属性添加了别名,属性名称就不能再使用了,所以pName报错

3、解析下面的代码,最终输出什么结果?为什么?
for ( var i = 0; i < 10; i ++ ) {
setTimeout(function() {
    console.log(i);  // ① 10, 10, 10, 10, 10, 10, 10...
})
}
for ( let j = 0; j < 10; j ++ ) {
setTimeout(function() {
    console.log(j);  // ②
})
}

① 10,var声明的变量的作用域只有全局和局部,for循环中多次循环使用的是同一个作用域空间,setTimeout()延时函数会在循环全部执行完成后输出,循环中最后一次判断时i=10<10跳出循环,此时最终i的值是10;
② 0.1.2.3....9,let声明的变量存在块级作用域,for循环每次循环都是一个独立的作用域,延时函数执行的时候相当于在10个不同的作用域中执行,最终输出了差异化的数据

三、编程题

1、公司要给员工涨薪,并重新记录到一个新的变量中,请编写代码实现

// 公司员工数据
let emps = [
{name: 'Jams Gosling', job: 'Java工程师', salary: 12000},
{name: 'Guido Van Rossum', job: 'Python工程师', salary: 11000},
{name: 'Brendan Eich', job: 'JavaScript工程师', salary: 12500},
{name: 'John Resig', job: '前端工程师', salary: 12800},
{name: 'Dennis Ritchie', job: 'C工程师', salary: 9000},
{name: 'Bjarne Stroustrup', job: 'C++工程师', salary: 10000},
{name: 'Tim Berners Lee', job: 'WEB工程师', salary: 13000},
{name: 'Alan Cooper', job: 'VB工程师', salary: 8000},
{name: 'Rob Pick', job: 'Go工程师', salary: 13000}
]

请编写代码实现员工的涨薪操作:

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

推荐阅读更多精彩内容