首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

2023前端面试知识点总结_2023-02-24

GET 的重定向 304 未修改:自从上次请求后,请求的网页未修改过 307:307 和 302 一样,除了不允许 POST 到 GET 的重定向 4xx 客户端错误状态码 400 客户端参数错误 401...没有登录 403 登录了没权限 比如管理系统 404 页面不存在 405 禁用请求中指定的方法 5xx 服务端错误状态码 500 服务器错误:服务器内部错误,无法完成请求 502 错误网关:服务器作为网关或代理出现错误...promise with a TypeError as the reason....备注2:购物车商品除了存储localStorage,根据产品的需求不同,也可以存储sessionStorage、cookie、session,或者直接向服务器接口发起请求存储服务器上。...渐进式网络应用(PWA)是谷歌2015年底提出的概念。基本上算是web应用程序,但在外观和感觉上与原生app类似。支持PWA的网站可以提供脱机工作、推送通知和设备硬件访问等功能。

74820

try..catch 不能捕获错误有哪些?注意事项又有哪些?

JS 代码,例如try块的以下代码语法上是错误的,但它不会被catch块捕获。...,也会执行finally块 如果没有catch块,错误将不能被优雅地处理,从而导致捕获错误 1.4 try..catch..finally 建议使用try...catch块和可选的finally块。...异步代码错误处理 对于异步代码的错误处理可以Promise和async await。...2.1 Promise 的 then..catch 我们可以使用then()和catch()链接多个 Promises,以处理链单个 Promise错误,如下所示: Promise.resolve...JS 的内置错误 3.1 Error JavaScript 有内置的错误对象,它通常由try块抛出,并在catch块捕获,Error 对象包含以下属性: name:是错误的名称,例如 “Error”

2.5K20
您找到你想要的搜索结果了吗?
是的
没有找到

JavaScript 错误处理大全【建议收藏】

代码主要用 Error 和 TypeError 这两种最常见的类型来创建自己的错误对象。...如果异常是捕获的,也就是说程序员没有采取任何措施来捕获它,则程序将会崩溃。 你什么时候及什么地方捕获代码的异常取决于特定的用例。 例如,你可能想要在栈传播异常,使程序完全崩溃。...另外无论函数的执行结果如何,不管是成功还是失败,finally 的所有代码都会被执行。 请记住:try/catch/finally 是一个同步结构:它可以捕获来自异步代码的异常。...如果失败了,或者决定不去捕获它,则异常可以冒泡。 从本质上讲,这还不错,但是不同的环境下对捕获的 rejection 的反应不同。...总结 本文中,我们介绍了从简单的同步代码到高级异步原语,以及整个 JavaScript 的错误处理。 JavaScript 程序,可以通过多种方式来显示异常。 同步代码的异常是最容易捕获的。

6.2K50

一篇文章教你如何捕获前端错误

常见错误的分类 对于用户访问页面时发生的错误,主要包括以下几个类型: 1、js运行时错误 JavaScript代码在用户浏览器执行时,由于一些边界情况、本地环境的不可控等因素,可能会存在js运行时错误...3、未处理的promise错误 使用catch捕获promise错误,往往都会存在比较大的风险。而编码时有可能覆盖的不够全面,因此有必要监控未处理的promise错误并进行上报。...e.g: 下图是promise请求接口发生错误后,未进行catch时的上报数据: ?...像axios和jQuery等库就是xhr上的封装,而有些情况也可能会使用原生的fetch,因此对这两种情况都要进行捕获。 e.g: 下图是xhr请求接口返回400时捕获后的上报数据: ?...('error')都能捕获,但是window.onerror含有详细的error堆栈信息,存在error.stack,所以我们选择使用onerror的方式对js运行时错误进行捕获

3.6K40

一篇文章教你如何捕获前端错误

e.g: 下图是图片资源不存在时的上报数据: 3、未处理的promise错误 使用catch捕获promise错误,往往都会存在比较大的风险。...e.g: 下图是promise请求接口发生错误后,未进行catch时的上报数据: 4、异步请求错误(fetch与xhr) 异步错误捕获分为两个部分:一个是传统的XMLHttpRequest,另一个是使用...e.g: 下图是xhr请求接口返回400时捕获后的上报数据: 各个类型错误捕获方式 1、window.onerror与window.addEventListener('error')捕获js运行时错误...// true代表捕获阶段调用,false代表冒泡阶段捕获。...当网站请求并执行一个托管第三方域名下的脚本时,就可能遇到该错误。最常见的情形是使用 CDN 托管 JS 资源。 其实这并不是一个 JavaScript Bug。

3.1K90

不只是离线缓存! - 论如何善用ServiceWorker

第二张图中,用户在被ServiceWorker控制的页面,无论向哪个服务器发起请求,其过程都会被SW捕获,SW可以仿佛不存在一般单纯地请求服务器,返回原本应该返回的内容【透明代理】;也可以对当前服务器返回的内容进行随意的捏造...实际上,SW确实是PWA的核心与灵魂,但SWPWA起的主要作用是缓存文件,提供给离线访问。并没有完整地发挥出SW的巧妙用法。...其并行处理后,只要有任何一个返回正确,就直接返回哪个最快的请求结果,返回错误的直接忽视,除非所有的请求失败了,才会返回reject 这是一段同时请求jquery的package.json代码,它将从四个镜像同时请求...除非所有源都炸了,否则此请求不会失败。 但是,我们会额外地发现,当知乎镜像返回最新版本后,其余的请求依旧继续,只是没有被利用到而已。 这会堵塞浏览器并发线程数,并且会造成额外的流量浪费。...如果没有,就返回从缓存拿到的错误网页。

3.2K21

JavaScript错误处理完全指南

1 什么是编程错误我们的程序,事物并非总是一帆风顺的。 特别是某些情况下,我们可能希望 停止程序或在发生意外错误时通知用户。...代码,你将主要使用 Error 和 TypeError 这两种最常见的类型来创建自己的错误对象。...如果这个异常 捕获,即程序员没有采取任何措施来捕获它,则程序将崩溃。 何时何地捕获代码的异常取决于具体的用例。 例如,你可能想在堆栈传播一个异常,以使程序完全崩溃。...如果我们失败了,或者决定不在这里捕获它,那么 异常就可以堆栈冒泡了。这本身并不坏,但是不同的环境对捕获的拒绝的反应是不同的。...即使数组只有一个 Promise 拒绝,Promise.all 也会返回失败;而 Promise.any 始终为我们提供第一个已解析的 Promise(如果存在于数组),不管发生了什么拒绝。

4.8K20

PWA 方案相关技术分享

开发过程,发现 PWA 方案的主要核心技术在于 Service Worker,我下面将从 PWA 方案的简介、PWA 方案的相关技术等2个方向简单介绍一下我对于本次开发的收获。...介绍完这些技术后,我将在最后的篇幅里介绍一个简单 PWA 方案的详细实现。 什么是 PWA?...用线把整个流程链接起来: 其中任何一个步骤失败都将进入销毁(redundant)。...clients.claim() 可替换此默认值,并控制控制的页面。 简单的 PWA 方案 通过以上介绍,我们就可以来实现一个简单的支持 PWA 的网站啦!下面我将把实现的代码一一罗列出来。... Service Worker 可以捕获到 fetch 事件, 编写代码如何响应资源的请求; 最后一步是更新静态资源的功能。

72820

前端异常的捕获与处理

TypeError 类型 JavaScript 中会经常遇到,变量中保存着意外类型时,或者访问不存在的方法时,都会导致这种错误。...xiaoming.girlfriend.name; // 抛出 TypeError 代码错误一般开发和测试阶段就能发现。...try-catch 捕获到,不过语法错误我们开发阶段就可以看到,应该不会顺利上到线上环境。...5.3 Promise 异常 Promise 的异常不能被 try-catch 和 window.onerror 捕获,这时候我们就需要监听 unhandledrejection 来帮我们捕获这部分错误...为了弥补这一点,React 实现了所谓的错误边界。错误边界是 React 组件,它“捕获子组件树的任何地方的 JavaScript 错误”,同时还记录错误并显示回退用户界面。

3.3K30

如何及时发现网页的隐形错误

ReferenceError: 引用了未定义的变量或对象 TypeError: 类型错误 URIError: URI操作错误 SyntaxError: 语法错误 (这个错误WebIDL故意省略,保留给...可以帮助我们捕获意料之外的错误,而 try-catch 则是用于可预见的情况下监控特定的错误。...); Promise.then().catch(cb) 优点: 可以捕获 Promise 的拒绝(失败)状态,并执行相应的错误处理逻辑 可以很方便地处理 Promise 的成功和失败回调 缺点: 无法捕获...Promise 内部的同步异常,只能捕获Promise 对象本身的异常 无法捕获到其他异步操作错误,例如网络请求失败等。...可以捕捉请求过程的各个阶段的错误,如请求失败、超时等 缺点: 需要编写更多的代码来处理请求细节,容易出现回调地狱。 需要手动处理跨域问题 不支持 Promise,需要使用回调函数来处理响应结果。

15200

关于 JavaScript 错误处理的最完整指南(下半部)

如果我们失败了,或者决定不捕获它,异常可以堆栈自由冒泡。 使用 Promise 来处理定时器的异常 使用定时器或事件无法捕获从回调引发的异常。...来处理错误 Promise.all(iterable) 方法返回一个 Promise 实例,此实例 iterable 参数内所有的 promise 都“完成(resolved)”或参数不包含 promise...] 如果参数 promise 有一个失败(rejected),此实例回调失败(reject),失败的原因是第一个失败 promise 的结果。...如果可迭代对象没有一个 promise 成功(即所有的 promises 都失败/拒绝),就返回一个失败promise 和AggregateError类型的实例,它是 Error 的一个子类,用于把单一的错误集合在一起...JavaScript程序,可以通过多种方式来捕获异常。 同步代码的异常是最容易捕获的。相反,异步的异常需要一些技巧来处理。

2.2K20

常见的8个前端防御性编程方案

关于前端防御性编程 我们大多数情况可能遇到过,后端的由于同时请求人数过多,或者数据量过大,又或者是因为异常导致服务异常,接口请求失败,然后前端出现白屏或者报错 还有一种情况,是前端自身写的代码存在一些缺陷...js对象初始化属性值是undefined,从undefined读取属性就会导致这个错误(同理,null也一样) 如何避免?...遇到是空值的时候便会返回undefined. 2.前端接口层面的错误机制捕获 前端的接口调用,一般都比较频繁,我们这时候可以考虑使用单例模式,将所有的axios请求都用一个函数封装一层。...统一可以在这个函数catch捕获接口调用时候的未知错误,伪代码如下: function ajax(url,data,method='get'){ const promise = axios[method...错误边界渲染期间、生命周期方法和整个组件树的构造函数捕获错误

1K20

腾讯前端一面常考面试题_2023-03-13

简单请求服务器内,至少需要设置字段:Access-Control-Allow-Origin(2)非简单请求过程非简单请求是对服务器有特殊要求的请求,比如请求方法为DELETE或者PUT等。...CORSCookie相关问题:CORS请求,如果想要传递Cookie,就要满足以下三个条件:在请求设置 withCredentials默认情况下在跨域请求,浏览器是不带 cookie 的。...3)Promise缺点1、无法取消Promise,一旦新建它就会立即执行,无法中途取消。2、如果不设置回调函数,Promise内部抛出的错误,不会反应到外部。...http请求携带(即使不需要),即cookie浏览器和服务器间来回传递。...虽然捕获阶段规范规定不允许响应事件,但是实际上还是会执行,所以有两次机会获取到目标对象。<!

1K40

浅析前端异常及降级处理

复制代码 2.动机 用来捕获promise代码错误 3.范围 使用Promise.prototype.catch()我们可以方便的捕获到异常,现在我们来测试一下常见的语法错误、代码错误以及异步错误...错误边界渲染期间、生命周期方法和整个组件树的构造函数捕获错误。...特定的错误信息,比如错误所在的生命周期钩子 // 只 2.2.0+ 可用 } 复制代码 指定组件的渲染和观察期间捕获错误的处理函数。...(error) } ) 复制代码 2.动机 用来专门捕获HTTP请求异常 五、项目实践 提出了这么多的解决方案之后,相信大家对具体怎么用还是存在一些疑惑。...语法错误 事件异常 HTTP请求异常 静态资源加载异常 Promise 异常 Iframe 异常 页面崩溃 捕获异常是我们的最终目标吗?

1.4K10

剖析前端异常及其降级处理和防范方案

复制代码 2.动机 用来捕获promise代码错误 3.范围 使用Promise.prototype.catch()我们可以方便的捕获到异常,现在我们来测试一下常见的语法错误、代码错误以及异步错误...错误边界渲染期间、生命周期方法和整个组件树的构造函数捕获错误。...特定的错误信息,比如错误所在的生命周期钩子 // 只 2.2.0+ 可用 } 复制代码 指定组件的渲染和观察期间捕获错误的处理函数。...(error) } ) 复制代码 2.动机 用来专门捕获HTTP请求异常 五、项目实践 提出了这么多的解决方案之后,相信大家对具体怎么用还是存在一些疑惑。...语法错误 事件异常 HTTP请求异常 静态资源加载异常 Promise 异常 Iframe 异常 页面崩溃 捕获异常是我们的最终目标吗?

1.1K40
领券