numbers; console.log(y); A: [[1, 2, 3, 4, 5]] B: [1, 2, 3, 4, 5] C: 1 D: [1] 答案: C 我们可以通过解构赋值来解析来自对象的数组或属性的值...,比如说: [a, b] = [1, 2]; a的值现在是1,b的值现在是2.而在题目中,我们是这么做的: [y] = [1, 2, 3, 4, 5]; 也就是说,y等于数组的第一个值就是数字1.我们输出
num1的值是10, 因为increaseNumber函数首先返回num的值,也就是10,随后再进行 num的累加。...num2是10因为我们将 num1传入increasePassedNumber. number等于10(num1的值。同样道理,++ 先返回 操作值, 再累加 操作值。)
" console.log(name()) A: SyntaxError B: ReferenceError C: TypeError D: undefined 答案: C 变量name保存字符串的值...但它是一个字符串,因此抛出TypeError:name is not a function 当你编写了一些非有效的JavaScript时,会抛出语法错误,例如当你把return这个词写成retrun时。...当JavaScript无法找到您尝试访问的值的引用时,抛出ReferenceErrors。
console.log(newList.push(5)); A: [1,2,3,4,5] B: [1,2,3,5] C: [1,2,3,4] D: Error 参考答案: D 解析: .push()方法返回数组的长度...,而不是数组的本身。
for (let i = 1; i < 5; i++) { if (i === 3) continue; console.log(i); } A: 1 ...
Person.prototype.getFullName = function () { return `${this.firstName} ${this.lastName}`; } 这样会使member.getFullName()是可用的,...为什么样做是对的?...这会浪费大量内存空间,因为它们仍然具有该属性,这占用了每个实例的内存空间。相反,如果我们只将它添加到原型中,我们只需将它放在内存中的一个位置,但它们都可以访问它!
使用new时,它指的是我们创建的新空对象。但是,如果你不添加new它指的是全局对象! 我们指定了this.firstName等于'Sarah和this.lastName等于Smith。...我们实际做的是定义global.firstName ='Sarah'和global.lastName ='Smith。 sarah本身的返回值是undefined。
args); } getAge(21); A: "number" B: "array" C: "object" D: "NaN" 参考答案: C 解析: 扩展运算符(...args )返回一个带参数的数组
(acc) (累计器) Current Value (cur) (当前值) Current Index (idx) (当前索引) Source Array (src) (源数组) reducer 函数的返回值将会分配给累计器...,该返回值在数组的每个迭代中被记住,并最后成为最终的单个结果值。...reducer 函数还有一个可选参数initialValue, 该参数将作为第一次调用回调函数时的第一个参数的值。如果没有提供initialValue,则将使用数组中的第一个元素。...在上述例子,reduce方法接收的第一个参数(Accumulator)是x, 第二个参数(Current Value)是y。...例子中我们的回调函数没有返回任何值,只是打印累加器的值和当前值。如果函数没有返回值,则默认返回undefined。
} C: { name: "Lydia", age: 21, city: undefined } D: "Amsterdam" 答案: A 我们将变量city设置为等于person对象上名为city的属性的值...这个对象上没有名为city的属性,因此变量city的值为undefined。 请注意,我们没有引用person对象本身,只是将变量city设置为等于person对象上city属性的当前值。...这不会更改person对象:没有对该对象的引用。 因此打印person对象时,会返回未修改的对象。
age: 21 } B: "name", "age" C: "Lydia", 21 D: ["name", "Lydia"], ["age", 21] 答案: B 在for-in循环中,我们可以通过对象的key...来进行迭代,也就是这里的name和age。...在底层,对象的key都是字符串(如果他们不是Symbol的话)。在每次循环中,我们将item设定为当前遍历到的key.所以一开始,item是name,之后 item输出的则是age。
Mara","Woof I am Mara" C: "Woof I am Mara", undefined D: TypeError, TypeError 答案: A 我们可以用delete关键字删除对象的属性...,对原型也是适用的。...删除了原型的属性后,该属性在原型链上就不可用了。在本例中,函数bark在执行了delete Dog.prototype.bark后不可用, 然而后面的代码还在调用它。...当我们尝试调用一个不存在的函数时TypeError异常会被抛出。在本例中就是 TypeError: pet.bark is not a function,因为pet.bark是undefined.
const sum = eval("10*10+5"); A: 105 B: "105" C: TypeError D: "10*10+5" 答案: A eval会为字符串传递的代码求值。
null; console.log(members); A: null B: [null] C: [{}] D: [{ name: "Lydia" }] 答案: D 首先我们声明了一个拥有name属性的对象...(注意一点,他们的引用 并不相同!) 接下来我们让person等于null。 我们没有修改数组第一个元素的值,而只是修改了变量person的值,因为元素(复制而来)的引用与person不同。...members的第一个元素仍然保持着对原始对象的引用。当我们输出members数组时,第一个元素会将引用的对象打印出来。
typeof 1 返回 "number". typeof "number" 返回 "string"
name: "Sarah" }, "1998" C: { name: "Lydia" }, "1998" D: { name: "Sarah" }, "1997" 答案: A 普通参数都是 值 传递的,...当我们对参数进行值传递时,会创建一份该值的 复制 。 变量birthYear有一个对"1997"的引用,而传入的参数也有一个对"1997"的引用,但二者的引用并不相同。...当我们通过给 year赋值"1998"来更新year的值的时候我们只是更新了year(的引用)。此时birthYear仍然是"1997". 而person是个对象。...参数member引用与之 相同的 对象。当我们修改member所引用对象的属性时,person的相应属性也被修改了,因为他们引用了相同的对象. person的 name属性也变成了 "Lydia".
设定了 进制 后 (也就是第二个参数,指定需要解析的数字是什么进制: 十进制、十六机制、八进制、二进制等等……),parseInt 检查字符串中的字符是否合法....一旦遇到一个在指定进制中不合法的字符后,立即停止解析并且忽略后面所有的字符。 *就是不合法的数字字符。所以只解析到"7",并将其解析为十进制的7. num的值即为7.
}); A: [] B: [null, null, null] C: [undefined, undefined, undefined] D: [ 3 x empty ] 答案: C 对数组进行映射的时候...,num就是当前循环到的元素....在这个例子中,所有的映射都是number类型,所以if中的判断typeof num === "number"结果都是true.map函数创建了新数组并且将函数的返回值插入数组。 但是,没有任何值返回。...当函数没有返回任何值时,即默认返回undefined.对数组中的每一个元素来说,函数块都得到了这个返回值,所以结果中每一个元素都是undefined.
console.log(data.getStatus.call(this)) }, 0) A: "" and "" B: "" and "" C: "" and "" D: "" and "" 答案: B this关键字的指向取决于使用它的位置...在函数中,比如getStatus,this指向的是调用它的对象,上述例子中data对象调用了getStatus,因此this指向的就是data对象。...当我们打印this.status时,data对象的status属性被打印,即""。 使用call方法,可以更改this指向的对象。...data.getStatus.call(this)是将this的指向由data对象更改为全局对象。在全局对象上,有一个名为status的变量,其值为”“。因此打印this.status时,会打印“”。
控制台会输出空对象,因为我们刚刚在全局对象上创建了一个空对象!当我们错误地将greeting输入为greetign时,JS解释器实际上在浏览器中将其视为glob...
领取专属 10元无门槛券
手把手带您无忧上云