秋招前端面试题总结
1、this指向问题,以前总是迷糊,现在总算是一知半解了。应当遵循以下原则,应该就能做对题目了。
- 如果一个标准函数,也就是非箭头函数,作为某个对象的方法被调用时,那么这个this指向的就是这个对象。涉及到闭包函数时,非严格模式下,this指向window(ES module浏览器),严格模式指向undefined
- 箭头函数的this是继承上一个函数作用域,this在函数定义的那一刻才确定的,不能通过call、apply、bind改变this指向。
看这些文字可能会很迷糊,直接上例子吧!
例1
var arr = [4, 5, 6]
let obj = {arr: [1, 2],inArr() {this.arr.push(3);},outArr: () => {this.arr.pop();}, resetArr() {() => { // 注意这个箭头函数并没有执行,容易被坑console.log(this)this.arr = [7, 8, 9]}}
}obj.inArr()
obj.outArr()
obj.resetArr()
console.log(arr) // [4, 5]
console.log(obj.arr) // [1, 2, 3]
例2
var name = 'window';
var person1 = {name: 'person1',show1: function() {console.log(this.name)},show2: () => console.log(this.name),show3: function() {return function() {console.log(this);}},show4: function() {return () => console.log(this.name);}
}
var person2 = { name: 'person2' };person1.show1(); // person1
person1.show1.call(person2); // person2person1.show2() // window
person1.show2.call(person2); // window,箭头函数不能改变this指向person1.show3()(); // window对象 {} 闭包情况,非严格模式下this指向window
person1.show3().call(person2); // person2对象 {}
person1.show3.call(person2)(); // window对象 {}person1.show4()(); // person1
person1.show4().call(person2); // person1
person1.show4.call(person2)(); // person2// 这个例子如果没看懂,可以看看这个视频
// https://www.bilibili.com/video/BV1JL411P752/?spm_id_from=333.337.search-card.all.click&vd_source=121d5b82e74c8de735f9bfb588f1044b
2、对象字面量创建对象 与 Object.create(null) 创建对象有什么区别?
- 对象字面量创建对象 ,new Object() 和 { } 效果是一样。
- 通过Object.create(null)创建的对象是非常纯净的,原型链的属性和方法都不会携带。这就非常适合数组对象开发的时候,从对象中取值,提高循环效率。
var obj = Object.create(null) ;
console.log(obj); // 打印可以发现,obj 没有__proto__ 属性
- 如果需要使用到对象的继承属性和方法,那就使用 obj = {} 或 obj = new Object() 这种方式。
3、哈夫曼树带权路径长度(WPL)计算,做笔试的时候经常碰到。参考这篇文章,很快就能学会。
哈夫曼树带权路径长度(WPL)计算 - 掘金
相关文章:
秋招前端面试题总结
1、this指向问题,以前总是迷糊,现在总算是一知半解了。应当遵循以下原则,应该就能做对题目了。 如果一个标准函数,也就是非箭头函数,作为某个对象的方法被调用时,那么这个this指向的就是这个对象。涉及到闭…...
【入门篇】ClickHouse 数据类型
文章目录 1. 引言2. ClickHouse 数据类型2.1 基本数据类型2.1.1 整型2.1.2 浮点型2.1.3 字符串型 2.2 复合数据类型2.2.1 数组2.2.2 枚举类型2.2.3 元组2.2.4 Map2.2.5 Nullable 2.3 特殊数据类型2.3.1 日期和时间类型2.3.2 UUID2.3.3 IP 地址2.3.4 AggregateFunction 2.4 数据…...
关于Python数据分析,这里有一条高效的学习路径
无处不在的数据分析 谷歌的数据分析可以预测一个地区即将爆发的流感,从而进行针对性的预防;淘宝可以根据你浏览和消费的数据进行分析,为你精准推荐商品;口碑极好的网易云音乐,通过其相似性算法,为不同的人…...
基于 json-server 工具,模拟实现后端接口服务环境
文章目录 本地配置后端接口一、安装json-server1、安装 JSON 服务器 安装 JSON 服务器2、创建一个db.json包含一些数据的文件(重点)3、启动 JSON 服务器 启动 JSON 服务器4、现在如果你访问http://localhost:3000/posts/1,你会得到 本地配置后…...
想要精通算法和SQL的成长之路 - 课程表II
想要精通算法和SQL的成长之路 - 课程表 前言一. 课程表II (拓扑排序)1.1 拓扑排序1.2 题解 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 课程表II (拓扑排序) 原题链接 1.1 拓扑排序 核心知识: 拓扑排序是专…...
【sgGoogleTranslate】自定义组件:基于Vue.js用谷歌Google Translate翻译插件实现网站多国语言开发
sgGoogleTranslate源码 <template><div :id"$options.name"> </div> </template> <script> export default {name: "sgGoogleTranslate",props: ["languages", "currentLanguage"],data() {return {//…...
论文总结《A Closer Look at Few-shot Classification Again》
原文链接 A Closer Look at Few-shot Classification Again 摘要 这篇文章主要探讨了在少样本图像分类问题中,training algorithm 和 adaptation algorithm的相关性问题。给出了training algorithm和adaptation algorithm是完全不想关的,这意味着我们…...
Postman使用_参数设置和获取
文章目录 参数引用内置动态参数手动添加参数脚本设置参数脚本获取参数 参数就像变量一样,它可以是固定的值,也可以是变化的值,比如:会根据一些条件或其他参数进行变化。我们如果要使用该参数就需要引用它。 参数引用 引用动态参数…...
【SQL】优化SQL查询方法
优化SQK查询 一、避免全表扫描 1、where条件中少使用! 或 <>操作符,引擎会放弃索引,进行全表扫描 2、in \or ,用between 或 exist 代替in 3、where 对字段进行为空判断 4、where like ‘%条件’ 前置百分号 5、where …...
Linux-相关操作
2.2.2 Linux目录结构 /:根目录,一般根目录下只存放目录,在Linux下有且只有一个根目录。所有的东西都是从这里开始。当你在终端里输入“/home”,你其实是在告诉电脑,先从/(根目录)开始…...
二十、MySQL多表关系
1、概述 在项目开发中,在进行数据库表结构设计时,会根据业务需求以及业务模块之间的关系,分析并设计表结构,由于业务之间相互关联,所以各个表结构之间也存在着各种对应关系 2、多表关系分类 (1࿰…...
HarmonyOS/OpenHarmony应用开发-DevEco Studio新建项目的整体说明
一、文件-新建-新建项目 二、传统应用形态与IDE自带的模板可供选用与免安装的元服与IDE中自带模板的选择 三、以元服务,远程模拟器为例说明IDE整体结构 1区是工程目录结构,是最基本的配置与开发路径等的认知。 2区是代码开发与修改区,是开发…...
去耦电路设计应用指南(三)磁珠/电感的噪声抑制
(三)磁珠/电感的噪声抑制 1. 电感1.1 电感频率特性 2. 铁氧体磁珠3. LC 型和 PI 型滤波 当去耦电容器不足以抑制电源噪声时,电感器&磁珠/ LC 滤波器的结合使用是很有效的。扼流线圈与铁氧体磁珠 是用于电源去耦电路很常见的电感器。 1. …...
Spring Bean的获取方式
参考https://juejin.cn/post/7251780545972994108?searchId2023091105493913AF7C1E3479BB943C80#heading-12 记录并补充 1.通过BeanFactoryAware package com.toryxu.demo1.beans;import org.springframework.beans.BeansException; import org.springframework.beans.facto…...
4795-2023 船用舱底水处理装置 学习记录
声明 本文是学习GB-T 4795-2023 船用舱底水处理装置. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本文件规定了船用舱底水处理装置(以下简称处理装置)中舱底水分离器(以下简称分离器)和舱底 水报警装置(以下简称报警装置)的要求、试验方法…...
[框架设计之道(二)]设备、任务设置及业务流程
[框架设计之道(二)]设备、任务设置及业务流程 说明 此文档是开发中对设备设置项的管理。因为硬件在使用的过程中涉及大量设置项,因此需要单独开一篇文档说明设备的设置和任务的设置。 一、设备设置 1.基础接口 /// <summary> /// 配置…...
Nuxt3+Vite批量引入图片
通过计算属性获取images文件夹所有层级下所有静态资源 <script name"MarketplaceHeader" setup lang"ts"> //批量导入静态资源图片 const importImage: any computed(() > (name: string, type png, folder images) > {const glob: Record…...
采用nodejs + socket.io实现简易聊天室功能(群聊 + 私聊)
项目演示 支持群聊以及私聊 项目代码 index.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport…...
消息队列(一):需求分析
为什么要做这样一个项目? 首先,我们在之前学习的时候,就认识了一下 生产者消费者模式,这样一个模式有两大好处: 解耦合 本来有个分布式系统,A服务器 调⽤ B服务器(A给B发请求,B给A…...
ImageViewer技术实现细节
第1章 ImageViewer工具使用方法 1.1. 图像加载 1.1.1. 单图像加载 左上角菜单,“File”->“单图像”,或者Ctrl-S,弹出文件对话框,选择图像文件,当前支持bmp,png,jpg格式。 结果如下图所示: 1.1.2. 多图像加载 左上角菜单,“File”->“多图像”,或者Ctrl-M…...
跨平台模组获取:Steam创意工坊资源的多引擎下载方案
跨平台模组获取:Steam创意工坊资源的多引擎下载方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 诊断访问障碍:游戏模组获取的系统性问题分析 识别用…...
KeyPass深度解析:打造完全离线的现代密码管理解决方案
KeyPass深度解析:打造完全离线的现代密码管理解决方案 【免费下载链接】KeyPass KeyPass: Open-source & offline password manager. Store, manage, take control securely. 项目地址: https://gitcode.com/gh_mirrors/ke/KeyPass 在数字时代࿰…...
QT项目实战:zlib数据压缩与解压缩的集成与应用
1. 为什么QT项目需要zlib数据压缩 在开发QT应用程序时,我们经常会遇到需要处理大量数据的场景。比如网络传输中的文件发送、本地日志文件的存储、或者游戏资源包的打包。这时候数据压缩就显得尤为重要了。zlib作为一个轻量级的高效压缩库,可以帮助我们将…...
解决Ubuntu18.04网络共享中的常见问题:从Permission denied到外网访问失败
Ubuntu 18.04网络共享全攻略:从静态IP配置到外网访问故障排查 当你需要在两台Ubuntu 18.04设备间共享网络连接时,可能会遇到各种意料之外的障碍。无论是权限问题、静态IP配置错误还是NAT转发失效,每个环节都可能成为网络共享路上的绊脚石。本…...
BilibiliDown:专业B站Hi-Res音频下载工具全攻略
BilibiliDown:专业B站Hi-Res音频下载工具全攻略 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors/bi/Bili…...
【java --mybatis-flex】
基本信息 https://mybatis-flex.com/zh/others/codegen.html 基于mybatis,支持 Entity 的增删改查、以及分页查询的同时,MyBatis-Flex 提供了 Db Row^灵活 工具,可以无需实体类对数据库进行增删改查以及分页查询。 与此同时,MyBa…...
手把手教你搞定VMware vSphere 7.0全家桶:从服务器RAID配置到vCenter上线的保姆级避坑指南
企业级虚拟化平台部署实战:从硬件配置到vSphere 7.0全栈落地指南 当企业IT基础设施面临数字化转型时,服务器虚拟化技术往往成为关键突破口。作为业界标杆的VMware vSphere解决方案,其7.0版本在性能、安全性和管理便捷性方面都有显著提升。本文…...
【FastAPI 2.0流式AI响应实战指南】:3步接入、5大避坑点、性能提升300%的工业级落地方案
第一章:FastAPI 2.0流式AI响应的核心演进与工业价值FastAPI 2.0 将原生流式响应能力从实验性支持升级为一级公民特性,彻底重构了高吞吐 AI 服务的构建范式。其核心在于深度整合 ASGI 3.0 的异步流语义与 Starlette 的 StreamingResponse 基础设施&#x…...
深入解析C语言中的Stream(流)操作与文件处理实践
1. 揭开C语言Stream(流)操作的神秘面纱 第一次接触C语言文件操作时,我被各种f开头的函数搞得晕头转向。直到有一天调试程序到凌晨三点,突然意识到所有文件操作本质上都是在和"流"打交道。这个顿悟让我对C语言的理解直接上了一个台阶。今天我就…...
【STM32F407VET6开发】第二章 Keil 5环境配置与Pack Installer实战指南
1. Keil 5环境配置全流程解析 第一次接触STM32开发的朋友,安装完Keil 5后往往会遇到各种环境配置问题。我当年用STM32F407VET6做第一个项目时,光是让开发环境跑起来就折腾了两天。现在回头看,其实只要掌握几个关键步骤,整个过程可…...
