155个JavaScript基础问题(126-135)

简介: 155个JavaScript基础问题(126-135)

这是我参与更文挑战的第11天,活动详情查看:更文挑战

大家好,我是@Always_positive,一个认真学习,坚持梦想的博主,希望和大家一起学习,一起进步。

126. 输出什么?

function getFine(speed, amount) {
  const formattedSpeed = new Intl.NumberFormat({
    'en-US',
    { style: 'unit', unit: 'mile-per-hour' }
  }).format(speed)
  const formattedAmount = new Intl.NumberFormat({
    'en-US',
    { style: 'currency', currency: 'USD' }
  }).format(amount)
  return `The driver drove ${formattedSpeed} and has to pay ${formattedAmount}`
}
console.log(getFine(130, 300))

image.png

答:B,本题主要考察Intl.NumberFormat的用法,意在输出指定类型的字符串,所以选B。

127. 输出什么?

const spookyItems = ["👻", "🎃", "🕸"];
({ item: spookyItems[3] } = { item: "💀" });
console.log(spookyItems);


image.png

答:B,本题在解构对象的时候,对数组进行了赋值,所以选B。

128. 输出什么?

const name = "Lydia Hallie";
const age = 21;
console.log(Number.isNaN(name));
console.log(Number.isNaN(age));
console.log(isNaN(name));
console.log(isNaN(age));

image.png

答:C,本题主要是考查我们对Number.isNaN和isNaN这两种API的用法区别的认识,前者不仅要检查是否是非数字,还要检查是否等于NaN,后者则只用检查是否是非数字,所以最终的结果选C。

129. 输出什么?

const randomValue = 21;
function getInfo() {
  console.log(typeof randomValue);
  const randomValue = "Lydia Hallie";
}
getInfo();

image.png

答:D,这种问题属于考查临时性死区的问题,在const形成的块级作用域中,变量声明提升了,但是并未初始化,此时调用会产生一个临时性死区,一旦调用就会报错。

130. 输出什么?

const myPromise = Promise.resolve("Woah some cool data");
(async () => {
  try {
    console.log(await myPromise);
  } catch {
    throw new Error(`Oops didn't work`);
  } finally {
    console.log("Oh finally!");
  }
})();

image.png

答:C,本题并没有太多的坑,只要知道正常的async和await的用法,即可知道选C。

131. 输出什么?

const emojis = ["🥑", ["✨", "✨", ["🍕", "🍕"]]];
console.log(emojis.flat(1));


image.png

答:B,这里的flat(1),我们可以理解为将数组降维处理,去掉数组里面的一维数组,测试案例看这个图:,所以选B。

132. 输出什么?

class Counter {
  constructor() {
    this.count = 0;
  }
  increment() {
    this.count++;
  }
}
const counterOne = new Counter();
counterOne.increment();
counterOne.increment();
const counterTwo = counterOne;
counterTwo.increment();
console.log(counterOne.count);
复制代码


答:D,本题中counterTwo和counterOne指向的是同一片对象,所以对counterTwo的加就是对counterOne的加,所以最终的结果是3.

133.输出什么?

const myPromise = Promise.resolve(Promise.resolve("Promise!"));
function funcOne() {
  myPromise.then(res => res).then(res => console.log(res));
  setTimeout(() => console.log("Timeout!"), 0);
  console.log("Last line!");
}
async function funcTwo() {
  const res = await myPromise;
  console.log(await res);
  setTimeout(() => console.log("Timeout!"), 0);
  console.log("Last line!");
}
funcOne();
funcTwo();
复制代码


答:D,本题主要是考查事件循环机制,详情请看我的专栏,首先调用栈执行第一个函数中的同步代码,然后微任务Promise,然后开始执行第二个函数,因为await关键字的存在,函数会一直等到Promise的状态变为resolved才会继续执行同步代码,所以打印了Promise,然后执行同步代码Last line,当调用栈为空的时候,最后执行两个宏任务setTimeout,先1后2.

134. 如何在index.js中调用sum.js中的sum方法?

// sum.js
export default function sum(x) {
  return x + x;
}
// index.js
import * as sum from "./sum";
复制代码


答:C,本题主要是考查我们对通过import * 导入一个默认暴露函数的理解,只有通过C是可以的。

135. 输出什么?

const handler = {
  set: () => console.log("Added a new property!"),
  get: () => console.log("Accessed a property!")
};
const person = new Proxy({}, handler);
person.name = "Lydia";
person.name;
复制代码


答:C,本题主要考查我们对Proxy对象的用法熟悉程度,通过该API,我们可以给对象添加自定义行为,当给对象设置值的时候,set方法会被调用,当调用对象的时候,get方法将会被调用。

题目来源

github.com/lydiahallie…



相关文章
|
JavaScript
JS基础之解构赋值
解构赋值 在js中,我们经常会将对象或者数组里面的一部分数据作为参数传递给函数,如果我们使用传统的.方法会很麻烦。
|
移动开发 JavaScript 前端开发
JavaScript基础知识梳理-上
对JavaScript基础知识梳理-上
228 31
JavaScript基础知识梳理-上
|
存储 JavaScript 前端开发
JavaScript基础(一篇入门)
JavaScript基础(一篇入门)
217 0
JavaScript基础(一篇入门)
|
JavaScript 前端开发
2021琴理工作室JS基础教学(三)
当网页被加载的时候,浏览器就会创建文档对象模型,也就是dom 而dom可以看做一颗树
80 3
2021琴理工作室JS基础教学(三)
|
JavaScript 前端开发
JavaScript 入门基础 - 运算符(三)
文章目录 JavaScript 入门基础 - 运算符(三) 1.什么是运算符 2.表达式和返回值 3.算术运算符概述 4. 赋值运算符 5.递增和递减运算符 5.1 递增和递减运算符概述 5.2 递增运算符 5.2.1 前置递增运算符 5.2.2 后置递增运算符 5.2.3 后置和前置运算符的区别 6. 比较运算符 7. 逻辑运算符 7.1 逻辑运算符概述 7.2 逻辑与 7.3 逻辑或 7.4
152 0
JavaScript 入门基础 - 运算符(三)
|
存储 JSON JavaScript
JavaScript 入门基础 - 变量 / 数据类型(二)
JavaScript 入门基础 - 变量 / 数据类型(二)
107 0
JavaScript 入门基础 - 变量 / 数据类型(二)
|
JavaScript 前端开发 物联网
JavaScript 入门基础 / 概念介绍(一)
JavaScript 入门基础 / 概念介绍(一)
140 0
JavaScript 入门基础 / 概念介绍(一)
|
JavaScript 前端开发 Java
JavaScript的基础使用
JavaScript的基础 一、javascript简介 JavaScript简称js,最初由网景(现在的Mozilla)公司创建,由于商标冲突原因,其标准版本命名为ECMAScript,但是一般人们还是叫JavaScript,只在谈标准的时候说到ECMAScript这个名字。值得注意的是JavaScript与java没有任何关系,就像雷峰塔(神话中镇压白娘子的塔)和雷锋。此外js(JavaScript)和jsp(java servlet pages)也没有关系。   js的工作分为两部分,一部分属于js语言本身的特性,而另一部需要依靠宿主环境(web浏览器)才能完成。 二、javascri
JavaScript的基础使用
|
JavaScript 前端开发
vue js文字跑马灯基础版本
提供两种解决思路
286 1
|
JavaScript 前端开发
原生js制作选项卡详解,适合无基础的人学习
原生js制作选项卡详解,适合无基础的人学习
138 0
原生js制作选项卡详解,适合无基础的人学习