A、function fn(name, ...args) {...} B、function fn(...args) {...} C、function fn(...args, name) {...} D、function fn(...name, ...args) {...}
答案:AB C问题:剩余参数只能出现在参数列表的最后一个位置 D问题:函数的参数中,剩余参数只能有一个
A、class Person() {} B、class Person {} C、function Person () {} D、function Person {}
答案:BC A问题,class语法中没有类型名称后面的括号 D问题,function语法中,类型名称后面包含一个括号,使用函数模拟的类型
A、类型中的构造函数,用来在创建对象的同时初始化对象属性 B、创建指定类型的对象时,会自动调用执行 C、类型中的构造函数,需要手工调用执行 D、类型中的普通函数,需要手工调用执行
答案:ABD C问题:构造函数是创建对象的时候自动执行,不需要手工调用
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问题:箭头函数中使用错误了箭头符号
A、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问题:多个参数出现时,不能省略括号
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关键词可以直接返回数据
A、类表示类型的意思 B、对象是包含数据的、实际存在的物体 C、一个类型只能创建一个对象 D、多个对象可以属于一个类型
ABD C问题:一个类型可以创建多个互相独立的对象
A、静态属性是声明在类型内部、类型方法外部的、使用let声明的变量 B、静态属性是声明在类型内部、类型方法外部的、使用static声明的变量 C、静态属性是属于类型的属性,所以只能被类型名称调用 D、静态属性是属于类型的属性,所以可以被类型名称和该类型创建的所有对象调用
BC
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语法的默认值
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中的继承是单继承机制,不能同时继承多个类型
let name = "TOM"
function fn() {
console.log(name) // ?
let name = "JERRY"
}
fn()
输出错误,let声明的变量存在暂时性死区,变量声明之前不能使用该变量
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报错
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个不同的作用域中执行,最终输出了差异化的数据
// 公司员工数据
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) // 涨薪后的数组