首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

字节前端面试题_2023-03-15

它的所有子元素自动成为容器成员,称为Flex项目(flex item),简称"项目"。...3、DNS解析: 下一步首先需要获取的是输入的 URL 中的域名的 IP 地址,首先会判断本地是否有该域名的 IP 地址的缓存,如果有则使用,如果没有则本地 DNS 服务器发起请求。...// splice:移除,splice方法从array中移除一个或多个数组,并用新的item替换它们。...当渲染对象被创建添加到树中,它们并没有位置和大小,所以当浏览器生成渲染树以后,就会根据渲染树来进行布局(也可以叫做回流)。这一阶段浏览器要做的事情是要弄清楚各个节点在页面中的确切位置和大小。...通常这一行为也被称为“自动重排”。布局阶段结束后是绘制阶段,遍历渲染树调用渲染对象的 paint 方法将它们的内容显示在屏幕上,绘制使用 UI 基础组件。

1.1K20

JavaScript中的Promises

你有没有在JavaScript中遇到过promises想知道它们是什么?它们为什么会被称为promises呢?它们是否和你以任何方式对另一个人做出的承诺有关呢?...此外,你为什么要使用promises呢?与传统的JavaScript操作回调(callbacks)相比,它们有什么好处呢? 在本文中,你将学习有关JavaScript中promises的所有内容。...通过类比会更好地解析JavaScript promise的概念,所以我们来这样做(类比),使其概念更加清晰。 想象一下,你准备下周为你的侄女举办生日派对。...同样地,你客户收费。如果收费成功,则通过调用then将其信息添加到数据库中。...为此,你使用Promise.all方法,然后传入一组你想要等待的promises。then的参数将会是一个数组,其包含你promises返回的结果。

78420

【译】JavaScript中的Promises

你有没有在JavaScript中遇到过promises想知道它们是什么?它们为什么会被称为promises呢?它们是否和你以任何方式对另一个人做出的承诺有关呢?...此外,你为什么要使用promises呢?与传统的JavaScript操作回调(callbacks)相比,它们有什么好处呢? 在本文中,你将学习有关JavaScript中promises的所有内容。...通过类比会更好地解析JavaScript promise的概念,所以我们来这样做(类比),使其概念更加清晰。 想象一下,你准备下周为你的侄女举办生日派对。...同样地,你客户收费。如果收费成功,则通过调用then将其信息添加到数据库中。...为此,你使用Promise.all方法,然后传入一组你想要等待的promises。then的参数将会是一个数组,其包含你promises返回的结果。

1.4K20

JavaScript 权威指南第七版(GPT 重译)(五)

当完整的 HTTP 响应主体可用时,.json()方法可以解析使用解析后的值来实现p4。当p4被实现时,p2也会自动被实现,具有相同的解析 JSON 值。...这个 API 对于库作者尤为重要,因为: 它允许他们原型对象添加方法使它们不可枚举,就像内置方法一样。 它允许它们“锁定”它们的对象,定义不能被更改或删除的属性。...如果你Object.create()传递一组属性描述符,那么它们将用于新创建的对象添加属性。...有两种情况下您可能想使用这个 Symbol: 如果您创建一个类似数组的对象(参见§7.9),希望在传递给concat()时表现得像真正的数组,您可以简单地您的对象添加这个符号属性: let arraylike...标记模板字面量是一种函数调用语法,定义一个新的标签函数有点像语言添加新的文字语法。定义一个解析其模板字符串参数的标签函数允许您在 JavaScript 代码中嵌入 DSL。

16910

ES2017 异步函数的最佳实践(`async` `await`)

回想一下前一篇文章(https://dev.to/somedood/best-practices-for-es6-promises-36da),我们注意到的是,使用多个 promises它们的内存占用量和计算成本相对较高...Promises,event listeners 和 callbacks 促进了这种“非阻塞”并发模型。相反,await关键字在语义上意味着阻止执行。...这样做的结果是反复阻止执行,从而又累积了函数的空闲时间。不考虑 for 循环,两个连续的 sleep 调用共同阻止执行至少3秒钟。..., // `Array#map` 将会返回一个包含 promise 的数组而不是期望的数字数组 const promises: Promise[] = stuff .map(async...首先,await关键字将解开解析的值,然后将其立即由return关键字再次包装。 此外,使用await关键字可以避免 async 函数快速"弹出"当前调用堆栈。

1.7K30

阿里前端常见面试题(附答案)

Keep-Alive的建立过程:客户端服务器在发送请求报文同时在首部添加发送Connection字段服务器收到请求并处理 Connection字段服务器回送Connection:Keep-Alive字段给客户端客户端接收到...Connection字段Keep-Alive连接建立成功服务端自动断开过程(也就是没有keep-alive):客户端服务器只是发送内容报文(不包含Connection字段)服务器收到请求并处理服务器返回客户端请求的资源关闭连接客户端接收资源...,发现没有Connection字段,断开连接客户端请求断开连接过程:客户端服务器发送Connection:close字段服务器收到请求并处理connection字段服务器回送响应资源断开连接客户端接收资源断开连接开启...首先要知道,JS在拿到一个变量或者一个函数的时候,会有两步操作,即解析和执行。在解析阶段,JS会检查语法,对函数进行预编译。...在解析的过程中,还会为函数生成预编译代码。在预编译时,会统计声明了哪些变量、创建了哪些函数,对函数的代码进行压缩,去除注释、不必要的空白等。

38120

前端面试题(附答案)持续更新中

(2)在域名解析的时候使用UDP协议客户端DNS服务器查询域名,一般返回的内容都不超过512字节,用UDP传输即可。不用经过三次握手,这样DNS服务器负载更低,响应更快。...+ password + salt)))但是加盐并不能阻止别人盗取账号,只能确保即使数据库泄露,也不会暴露用户的真实密码。...为什么要使用它们?预处理器, 如:less,sass,stylus,用来预编译sass或者less,增加了css代码的复用性。层级,mixin, 变量,循环, 函数等对编写以及开发UI组件都极为方便。...目前最常做的是给css属性添加浏览器私有前缀,实现跨浏览器兼容性的问题。...(promises)) { if(promises.length === 0) return resolve(promises); let result =

53310

前端面试查漏补缺

除此之外,语义类还支持读屏软件,根据文章可以自动生成目录;对开发者友好,使用语义类标签增强了可读性,结构更加清晰,开发者能清晰的看出网页的结构,便于团队的开发与维护。...总结:强缓存策略和协商缓存策略在缓存命中时都会直接使用本地的缓存副本,区别只在于协商缓存会服务器发送一次请求。它们缓存不命中时,都会服务器发送请求来获取资源。...但是,HTTPOnly的应用仍存在局限性,一些浏览器可以阻止客户端脚本对Cookie的读操作,但允许写操作;此外大多数浏览器仍允许通过XMLHTTP对象读取HTTP响应中的Set-Cookie头。...(promises)) { if(promises.length === 0) return resolve(promises); let result =...⽤户浏览器接收到响应后解析执⾏,前端 JavaScript 取出 URL 中的恶意代码执⾏。恶意代码窃取⽤户数据并发送到攻击者的⽹站,或者冒充⽤户的⾏为,调⽤⽬标⽹站接⼝执⾏攻击者指定的操作。

56210

通过 20 个棘手的ES6面试问题来提高咱们的 JS 技能

Promises: Promises 提供了一种机制来处理异步操作的结果和错误。可以使用回调来完成相同的事情,但是Promises 通过方法链接和简洁的错误处理来提高可读性。 ?...就像展开语法的逆过程一样,它将数据放入填充到数组中而不是展开数组,并且它在函数变量以及数组和对象解构分中也经常用到。 ? 问题 6: ES6 类和 ES5 函数构造函数有什么区别?...如果咱们创建一个继承Person类的Student子类添加一个studentId字段,以下是两种方式的使用: ? 在 ES5 中使用继承要复杂得多,而且 ES6 版本更容易理解和记住。...这是一个不同于原型设计的用例,它们并不是相互排斥,咱们可以同时使用它们(例如,将一个构造函数放在一个模块中,使用new MyNamespace.MyModule.MyClass(arguments)...对于手动编写的 Map,数组将保留对键对象的引用,以防止被垃圾回收。但在WeakMap中,对键对象的引用被“弱”保留,这意味着在没有其他对象引用的情况下,它们不会阻止垃圾回收。

1.4K10

50道JavaScript详解面试题,你需要了解一下

在这种情况下,只有一个唯一的对象,它具有两个常量x和y,它们指向内存中的唯一对象,并在控制台上返回True。 6、数组对象是JavaScript中的原始对象吗?...在JavaScript中,我们处理的大多数事物都是对象,类似地,数组只是JavaScript中的特殊对象,它们具有其他对象所没有的属性。 7、以下函数的返回类型是什么?...答案,是B,因为异步函数在JavaScript中返回Promises 。 8、等待关键字会阻止应用程序中的所有JavaScript代码执行,直到返回等待的Promises?...控制台输出将为10和5,因为该函数在Promise中没有异步的内容,并且Promise同步解析。 32、在浏览器下一次重画显示内容之前,哪个函数会执行指定的代码块?...它防止添加新属性。 它可以防止更改对象的原型。 它防止更改属性的值。 它防止更改属性的可写性。 40、event.target与event.currentTarget有何不同?

3.5K40

了不起的 rollup 之插件机制解析

这可以阻止其他插件执行它。 钩子函数 rollup 插件的核心是钩子函数,rollup 钩子函数分为两类: 构建钩子函数 为了与构建过程交互,你的插件对象需要包含一些构建钩子函数。...构建钩子函数在构建阶段执行,它们被 rollup.rollup(inputOptions) 触发。它们主要关注在 Rollup 处理输入文件之前定位、提供和转换输入文件。...它们和构建钩子函数拥有一样的工作原理和相同的类型,但是不同的是它们分别被 ·bundle.generate(output) 或 bundle.write(outputOptions) 调用。...hookPromise) continue; promises.push(hookPromise); } return Promise.all(promises).then(() =>...source-map-support:这个模块通过 V8 堆栈追踪 API 支持 堆栈 sourcemap 支持 总结 Rollup 的插件和其他大型框架大同小异,都是提供统一的接口贯彻了约定优于配置的思想

1.8K20

社招前端经典手写面试题合集

decimal : '');}正则表达式(运用了正则的前声明和反前声明):function parseToMoney(str){ // 仅仅对位置进行匹配 let re = /(?...在任何情况下,Promise.all 返回的 promise 的完成状态的结果都是一个数组Promise.all = function(promises) { return new Promise((...} })}实现promise.allsettleMDN: Promise.allSettled()方法返回一个在所有给定的promise都已经fulfilled或rejected后的promise,带有一个对象数组...创建一个 Event Bus(本质上也是 Vue 实例)导出:const EventBus = new Vue()export default EventBus在主文件里引入EventBus,挂载到全局...arr;}思想: 双重 for 循环是比较笨拙的方法,它实现的原理很简单:先定义一个包含原始数组第一个元素的数组,然后遍历原始数组,将原始数组中的每个元素与新数组中的每个元素进行比对,如果不重复则添加到新数组

68340

JavaScript是如何工作的:事件循环和异步编程的崛起+ 5种使用 asyncawait 更好地编码方式!

这将阻止任何用户交互,这是一种可怕的做法。 以下是同步 Ajax 地,但是请千万不要这样做: ? 这里使用Ajax请求作为示例,你可以让任何代码块异步执行。...最为常见在Promises 处理的异步方式。 现在只讨论这个概念,以便在讨论带有Promises的异步行为时,能够了解 Promises 是如何调度和处理。...一个常见的建议是,Promise 应该添加一个 done(…),这实际上是将 Promise 链标记为 “done”。done(…) 不会创建返回 Promise ,因此传递给 done(..)...当这个函数返回一个值时,这个值只是一个普通值而已,这个函数内部将自动创建一个承诺,使用函数返回的值进行解析。当这个函数抛出异常时,Promise 将被抛出的值拒绝。...使用 async 声明函数时可以包含一个 await 符号,await 暂停这个函数的执行等待传递的 Promise 的解析完成,然后恢复这个函数的执行返回解析后的值。

3.1K20
领券