进来做几道 JavaScript 基础题找找自信?


大家好,我是若川。持续组织了8个月源码共读活动,感兴趣的可以 点此加我微信ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。历史面试系列。另外:目前建有江西|湖南|湖北籍前端群,可加我微信进群。


天天推送各种框架和库的,看起来也挺累的。。。今天放松一下,做几道 JavaScript 基础题找找自信吧!

可以先投票做题,然后翻到后面看答案。

第1题 — 原型

function Animal(){ this.type = "animal"
}function Dog(){ this.name = "dog"
}Dog.prototype = new Animal()var PavlovPet = new Dog(); console.log(PavlovPet.__proto__ === Dog.prototype)
console.log(Dog.prototype.__proto__ === Animal.prototype)

console.log 打印出的值是?

第2题 — 小心“排序”

var arr = [5, 22, 14, 9];console.log(arr.sort());

console.log 打印出的值是?

第3题 — 异步循环

for (let i = 0; i < 3; i++) {const log = () => {console.log(i)}setTimeout(log, 100)
}

console.log 打印出的值是?

第4题 — numbers里面有啥?

const length = 4
const numbers = []
for (var i = 0; i < length; i++);{numbers.push(i + 1)
}console.log(numbers)

console.log 打印出的值是?

第5题 — 长度为0

const clothes = ['shirt', 'socks', 'jacket', 'pants', 'hat']
clothes.length = 0console.log(clothes[3])

console.log 打印出的值是?

第6题 — 变量定义

var a = 1
function output () {console.log(a)var a = 2console.log(a)
}
console.log(a)
output()
console.log(a)

console.log 打印出的值是?

第7题 — 找到值了吗

function foo() {let a = b = 0a++return a
}foo()
console.log(typeof a)
console.log(typeof b)

console.log 打印出的值是?

第8题 — 类型转换

console.log(+true)
console.log(!"ConardLi")

console.log 打印出的值是?

第9题 — ESM

// module.js 
export default () => "Hello world"
export const name = "c"// index.js 
import * as data from "./module"console.log(data)

console.log 打印出的值是?

第10题 — 对象做 key

const a = {};
const b = { key: "b" };
const c = { key: "c" };a[b] = 123;
a[c] = 456;console.log(a[b]);

console.log 打印出的值是?

答案 - 第1题

把原型的基础知识记清楚这道题就错不了:

所有的对象都有 [[prototype]] 属性(通过 _proto_ 访问),该属性对应对象的原型;所有的函数对象都有 prototype 属性,该属性的值会被赋值给该函数创建的对象的 _proto_ 属性。

答案是:

true
true

答案 - 第2题

抱歉,答案不是 [5, 9, 14, 22] 。如果不传入排序函数,sort 函数会将每个元素转换成字符串,然后根据它们的 UTF-16 值排序。

答案是:

[14, 22, 5, 9]

答案 - 第3题

这题我会,因为:

定时器是异步执行,浏览器会优先执行同步任务,在遇到定时器时会先把它们暂存在一个宏任务队列中,待当前宏任务队列的所有任务执行完毕后才会去执行队列中的任务,此时循环已执行完毕,i 已经是 3。

所以答案是:

0
1
2

哎不对?答案为啥不是 3、3、3

因为循环里的 i 是用 let 声明的,而不是用 var 声明的!

let 声明的变量拥有块级作用域。即在 for 循环或 if 中用 let 定义变量,在外面是访问不到的。

形如 for (let i...) 的循环在每次迭代时都为 i 创建一个新变量,并以之前迭代中同名变量的值将其初始化,所以上面的代码实际上相当于:

for (let i = 0) {const log = () => {console.log(i)}setTimeout(log, 100)
}
for (let i = 1) {const log = () => {console.log(i)}setTimeout(log, 100)
}
for (let i = 2) {const log = () => {console.log(i)}setTimeout(log, 100)
}

答案 - 第4题

要看仔细啊,看到小括号和大括号之间有个吗?

答案是:

[5]

答案 - 第5题

将数组的长度赋值为 0 就相当于从数组中删除所有元素。

答案是:

undefined

答案 - 第6题

  • 第一个输出:全局的 var a

  • 第二个输出:output 函数中声明的 var a变量提升,还未赋值

  • 第三个输出:output 函数局部作用域的 a 已赋值

  • 第四输出:全局的 var a 没有变

答案是:

1
undefined
2
1

答案 - 第7题

let a 是一个局部变量。typeof a 检查的是未声明的变量。

b 是个全局变量,它在 foo 函数中被赋值。

答案是:

undefined
number

答案 - 第8题

+ 运算符首先会尝试将 boolean 类型转换为数字类型,true 被转换为 1false 被转换为 0

字符串 'ConardLi' 是一个真值,所以 !'ConardLi' 为 false。

答案是:

1
false

答案 - 第9题

考察下你对 ES Module 的认识

答案是:

{ default: function default(), name: "c" }

答案 - 第10题

对象能做对象的 key 吗?当然不能,两次赋值实际上是:

a["Object object"] = 123;
a["Object object"] = 456;

答案是:

456

怎么样,找到自信了吗?💯💯💯 全对的来这里集合!!!

09fdc6a296e5544b72ea1cd2d8d2ccbd.gif

················· 若川简介 ·················

你好,我是若川,毕业于江西高校。现在是一名前端开发“工程师”。写有《学习源码整体架构系列》20余篇,在知乎、掘金收获超百万阅读。
从2014年起,每年都会写一篇年度总结,已经坚持写了8年,点击查看年度总结。
同时,最近组织了源码共读活动,帮助4000+前端人学会看源码。公众号愿景:帮助5年内前端人走向前列。

754ef0ac274811b0eb5519a1bc0323b0.png

扫码加我微信 ruochuan02、拉你进源码共读

今日话题

目前建有江西|湖南|湖北 籍 前端群,想进群的可以加我微信 ruochuan12 进群。分享、收藏、点赞、在看我的文章就是对我最大的支持~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/274691.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人物肖像速写_骄傲家庭:肖像项目

人物肖像速写2020 has been a solemn, transformative year. Pride month takes place in the context of a groundswell up-rising against racism and police brutality and in the continued isolation of COVID-19.2020年是庄严&#xff0c;变革的一年。 骄傲月的发生是在反…

答读者问:钱和成长,哪个更重要?

大家好&#xff0c;我是若川。持续组织了8个月源码共读活动&#xff0c;感兴趣的可以 点此加我微信ruochuan12 参与&#xff0c;每周大家一起学习200行左右的源码&#xff0c;共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。历史面试系列。另外…

ui设计颜色的使用_UI设计中颜色使用的10条原则

ui设计颜色的使用重点 (Top highlight)1.颜色术语 (1. Color Terminology) Color terminology forms our foundation of color knowledge. Think of color terms like hue, tint, and shade as tools that we can employ to develop unique color palettes.颜色术语构成了我们颜…

Chrome插件:网易云音乐听歌识曲

大家好&#xff0c;我是若川。持续组织了8个月源码共读活动&#xff0c;感兴趣的可以 点此加我微信ruochuan12 参与&#xff0c;每周大家一起学习200行左右的源码&#xff0c;共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。历史面试系列。另外…

五大常用算法之四:回溯法

1、概念 回溯算法实际上一个类似枚举的搜索尝试过程&#xff0c;主要是在搜索尝试过程中寻找问题的解&#xff0c;当发现已不满足求解条件时&#xff0c;就“回溯”返回&#xff0c;尝试别的路径。 回溯法是一种选优搜索法&#xff0c;按选优条件向前搜索&#xff0c;以达到目标…

如何设置ad18捕捉图标_图标设计中的像素捕捉

如何设置ad18捕捉图标More in the iconography series:• Foundations of Iconography• 7 Principles of Icon Design• 5 Ways to Create a Settings Icon• Icon Grids & Keylines Demystified• 3 Classic Icon FamiliesWe all want our designs to display sharp on a…

React Hooks 原理与最佳实践

大家好&#xff0c;我是若川。持续组织了8个月源码共读活动&#xff0c;感兴趣的可以 点此加我微信ruochuan12 参与&#xff0c;每周大家一起学习200行左右的源码&#xff0c;共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。历史面试系列。另外…

BW:BW增量更新方法(假增量)

1 说说假增量 我们都知道&#xff0c;对于BW来说&#xff0c;很多ECC的标准数据源自带了增量更新功能&#xff0c;每天各种凭证产生的增量数据会自动堆积到增量队列里&#xff0c;然后BW端做一个增量信息包按天把这些增量抽取到数据仓库里&#xff0c;非常轻松自然&#xff0c;…

插图 引用 同一行两个插图_为什么插图是产品的重要组成部分

插图 引用 同一行两个插图“Hi, my name is Ludmila and I’m a UX/UI designer”“嗨&#xff0c;我叫Ludmila&#xff0c;我是UX / UI设计师” “Hi, Ludmila”“嗨&#xff0c;路德米拉” “Welcome”“欢迎” Not anonymously at all, I’ve been doing UX/UI design fo…

如果是你你会如何重新设计和定义维基百科(wikipedia)?

日期&#xff1a;2012-8-11 来源&#xff1a;GBin1.com 最近一家设计公司发布了一个关于如何重新定义和设计维基百科的网站&#xff0c;在这里网站里详细的刨析了如何重新设计维基百科的话&#xff0c;如何做品牌设计和网站设计&#xff0c;整个设计过程都使用非常详细的文档说…

祖父元素_帮助祖父母建立Skype帐户的UX经验教训

祖父元素“Empathy is a key part of a UX designers arsenal”, they say. It’s drilled into our heads that we need to be thinking about our user, about their journey, about what works best for them. And it does feel empowering to boast of empathy, inside vis…

ECSHOP批量添加商品到购物车

Ecshop是一款开源的网上商店系统&#xff0c;在我心目中可以算得上网上商城界的Wordpress了。 本文介绍如何实现在ecshop中批量添加商品到购物车。 大家都知道&#xff0c;默认的ecshop只能单件点击“添加到购物车”&#xff08;Add to Cart&#xff09;实现一件一件的添加商品…

2022年CSS的发展如何?

大家好&#xff0c;我是若川。持续组织了8个月源码共读活动&#xff0c;感兴趣的可以 点此加我微信ruochuan12 参与&#xff0c;每周大家一起学习200行左右的源码&#xff0c;共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。历史面试系列。另外…

分布式实物实现方式_这是您完成实物产品设计任务的方式

分布式实物实现方式You’ve come to the last stages of an interview. There’s only one thing left to do: the dreaded take home design assignment.您已经到达面试的最后阶段。 只剩下一件事要做&#xff1a; 可怕的带回家的设计任务。 This is the hard part of any in…

TP-Link路由器下的多种接入模式

无线AP&#xff1a;把LAN转成WLAN 客户端&#xff1a;把WLAN转成LAN 中继&#xff1a;简单放大上一个无线路由器的WLAN信号&#xff0c;SSID与上一个无线路由器一样 桥接&#xff1a;与上一个无线路由器的WLAN信号连接&#xff0c;SSID与上一个无线路由器不同&#xff0c;又叫W…

type 和 interface 傻傻分不清楚?

大家好&#xff0c;我是若川。持续组织了8个月源码共读活动&#xff0c;感兴趣的可以 点此加我微信ruochuan12 参与&#xff0c;每周大家一起学习200行左右的源码&#xff0c;共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。历史面试系列。另外…

上帝公式_感谢上帝的空白

上帝公式Do you ever walk into a room cluttered with discarded papers and leftover takeout and feel comfortable?您是否曾经走进过乱七八糟的房间&#xff1f; Yes, you might if you’re a sophomore at college. That’s just dorm life. Back in the late 90’s to …

POJ 1325 Machine Schedule(二分图最小点集覆盖)

题目链接&#xff1a;http://poj.org/problem?id1325 题意&#xff1a;A机器有n个模式&#xff0c;B机器有m个模式&#xff0c;有k个任务&#xff0c;第i个任务可以用A机器的ai模式或者B机器的bi模式&#xff0c;换模式需要重启&#xff0c;开始两个机器都在模式0&#xff0c;…

figma下载_在Figma上进行原型制作的各种触发选项

figma下载Prototypes are model versions of digital products. They’re used to measure usability by testing with potential users of a product. When making prototypes with Figma, it is necessary that the actions that trigger reactions aren’t strangers and th…

通过动画让你深入理解 ES modules

大家好&#xff0c;我是若川。持续组织了8个月源码共读活动&#xff0c;感兴趣的可以 点此加我微信ruochuan12 参与&#xff0c;每周大家一起学习200行左右的源码&#xff0c;共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。历史面试系列。另外…