首页
学习
活动
专区
圈层
工具
发布

某峰前端二阶段面试题

返回值:for 循环无返回值,需手动操作数组;map 循环返回一个新数组,新数组元素是原数组元素经过回调函数处理后的结果。...Promise:解决回调地狱,通过 then()/catch() 链式调用,支持多个异步操作的串行/并行处理。...特点:非阻塞 I/O:处理高并发请求性能优异。事件驱动:基于事件循环机制,异步处理请求。丰富的模块生态:通过 npm 管理大量第三方模块。跨平台:支持 Windows、Linux、macOS 等系统。...keys()/Object.values()/Object.entries():返回数组后遍历,可结合 for 循环打断。遍历字符串可打断的方法:for 循环、..of 循环。...节流和防抖防抖(Debounce):触发事件后,在指定时间内没有再次触发事件,才执行回调函数;若在指定时间内再次触发,则重新计时。适用于搜索框输入联想、窗口大小调整等场景。

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

    Ajax向服务器端发送请求

    Ajax是一种异步进程,程序不会等待异步代码执行完后再继续执行后续代码 当后续代码需要调用Ajax返回的数据时,可能会有数据未返回的问题 Ajax的实现步骤 创建Ajax对象 var xhr =...,通常响应中已经有部分数据可以使用了 4 响应已经完成,可以获取并使用服务器响应了 xhr.readyState;//获取Ajax状态值 onreadstatechange事件 Ajax状态码发生变化的时候触发...// 当Ajax状态码发生变化时触发事件 xhr.onreadystatechange = function () { // 判断当Ajax状态码为4时 if (xhr.readyState...t=' + Math.random()); 通过Math下的方法产生随机数,使请求地址不同 也可以使用Date下的方法,利用时间戳,也可以使值不同 Ajax的封装 给函数设定一些默认值 创建ajax对象...(); //处理用户传入的data数据,拼接成特定的数据格式传递给服务器端 var params = ''; // 循环参数 for (var attr in defaults.data) {

    3.1K20

    浏览器线程与进程

    进程是CPU分配资源的最小单位,分配独立内存,进程之间可通信,但是必须通过内核,使用IPC接口来做,代价比较大 线程是CPU调度的最小单位,同一个进程下面可以有多个线程。...浏览器渲染进程:包含多个线程 1.GUI线程:负责渲染浏览器界面,解析html、js、css,构建DOM树、CSS树,完成布局和绘制、回流、重绘等。...3.事件触发线程:归属于浏览器而不是JS引擎,用来控制事件循环。当执行setTimeout/鼠标点击/Ajax请求等事件时,会将对应异步任务添加到事件线程中。...4.定时触发器线程:比如setTimeout、setInterval 5.异步http请求线程:在XMLHttpRequest在连接后是通过浏览器新开一个线程进行请求的,检测到状态变更后,如果设置了回调...注意:position-absolute虽然脱离普通文档流,但是未脱离复合层,因此,即使设置了absolute,也还是在同一个复合层当中。

    79220

    JavaScript 开发者需要了解的15个 DevTools 技巧

    断点有的时候并不好用,例如,如果在运行 1000 次的循环的最后一次循环报错了。这时你可以添加一个条件断点,让它仅在满足特定条件时才触发断点,例如 i > 999 。...停止无限循环 触发无限循环是程序里很常见的 bug,它可能导致浏览器崩溃。要在 Chrome DevTools 中停止无限循环,可以打开 Sources 面板,然后单击调试暂停图标以停止脚本。...重新运行 Ajax 请求 浏览器 JavaScript Ajax 调用通常使用 Fetch 或 XMLHttpRequest API 发送请求。...这些请求会显示在 DevTools Network 面板中,可以使用 XHR 按钮进行过滤。 DevTools 显示了很多信息,但是有时你需要重新运行一次 Ajax 调用。...启用本地文件替代 Chrome 允许任何 HTTP 请求使用你的设备上的本地文件,而不是通过网络获取它。

    7K20

    WordPress Fontsy Plugin SQL注入漏洞深度剖析与防御指南

    :SQL注入(CWE-89)风险等级:高危(CVSS评分最高可达9.8,不同平台评分略有差异,Patchstack给出9.3分,Vulners给出9.8分)触发条件:无需登录(未授权),攻击者可直接通过...该漏洞并非单一接口存在问题,而是涉及插件内多个AJAX交互接口,这些接口均面向未授权用户开放,无需验证身份即可访问,具体包括:get_fonts接口:用于获取字体列表,通过id参数传入查询条件get_tag_fonts...但Fontsy插件的开发者未使用该安全方法,而是直接使用$wpdb->query()执行拼接后的SQL语句,忽略了WordPress内置的安全防护机制。...禁用相关AJAX接口:若暂时无法卸载插件,可通过修改网站代码,禁用存在漏洞的三个AJAX接口(get_fonts、get_tag_fonts、delete_fonts)。...拦截恶意请求:借助网站防火墙(WAF),添加SQL注入特征拦截规则,拦截包含union、sleep、concat、drop等关键字的请求,以及针对wp-admin/admin-ajax.php的异常POST

    10910

    JQuery_

    ) mouseout() 鼠标离开(离开子元素也触发) mouseenter() 鼠标进入(进入子元素不触发) mouseleave() 鼠标离开(离开子元素不触发) hover() 同时为mouseenter...和json ajax技术的目的是让javascript发送http请求,与后台通信,获取数据和信息。...同步和异步 同步:一件事情做完再去做另一件事情 异步:同时做多件事情 .ajax使用方法 常用参数: 1、url 请求地址 2、type 请求方式,默认是’GET’,常用的还有’POST’ 3、dataType...设置返回的数据格式,常用的是’json’格式,也可以设置为’html’ 4、data 设置发送给服务器的数据 5、success 设置请求成功后的回调函数 6、error 设置请求失败后的回调函数 7...; }); $.ajax的简写方式 $.ajax按照请求方式可以简写成$.get或者$.post方式 $.get("/change_data", {'code':300268}, function

    1.1K10

    JS的面试题(一)

    (function(){}) window.onload是在页面所有的元素都加载完成后才触发 (function(){})是在页面的dom结构加载完毕后就触发 dom里的内容不一定都已经加载完成 28...45、列举jquery的ajax请求,并说明作用 (“div”).load() 加载文档 .get() 获取数据 .post()传递数据 .getScript() 加载js文件 .getJSON()...0.建立xhr对象,未调用open 1.建立了链接未发送数据,未调用send 2.发送数据,但数据未解析 3.服务器开始解析数据 4.数据解析完成,前端可以获取解析之后的数据 52、ajax的状态码200...200:新请求成功 304:通过get请求但服务器文件没有变化,去本地缓存取数据 404:请求地址错误 28、jsonp的原理?...动态生成script标签,src设置成请求地址,通过callback参数向后台传递数据,callback的值就是window下的一个函数,后台获取到callback的值,会生成这个值的函数调用 53

    1K10

    医疗数字阅片-医学影像-Lodash 是一个一致性、模块化、高性能的 JavaScript 实用工具库。_.throttle(func, , [option

    John(5年前)建议的解决方案是,在 onScroll 事件外部,每 250ms 循环执行一次。简单的技巧,避免了影响用户体验。 现如今,有一些稍微高端的方式处理事件。...防抖动(Debounce) 防抖技术可以把多个顺序地调用合并成一次。 ? 假想一下,你在电梯中,门快要关了,突然有人准备上来。电梯并没有改变楼层,而是再次打开梯门。...基于 AJAX 请求的自动完成功能,通过 keypress 触发 为什么用户还在输入的时候,每隔50ms就向服务器发送一次 AJAX 请求?...节流阀实例 无限滚动 用户向下滚动无限滚动页面,需要检查滚动位置距底部多远,如果邻近底部了,我们可以发 AJAX 请求获取更多的数据插入到页面中。...涉及到 AJAX 请求,添加/移除 class (可以触发 CSS 动画),我会选择 _.debounce 或者 _.throttle ,可以设置更低的执行频率(例子中的200ms 换成16ms)。

    3K20

    深入理解Javascript单线程谈Event Loop

    例如ajax异步请求是由JS执行线程和异步http请求线程,事件触发线程共同完成的。 6.事件循环机制(Event Loop)   6.1:栈     函数调用形成一个栈帧。...13.ajax异步请求是否真的异步?   ...所以:ajax请求是异步。由浏览器新开一个线程请求,事件回调的时候放入Event loop任务队列等候处理。...详细的例子,可以参考MDN文档对ajax的描述:同步和异步 误解:事件循环类似栈或队列   这里顺带提一下:事件循环虽然涉及到类似队列的结构,并不是采用栈的方式处理任务。...事件循环作为一个进程被划分为多个阶段,每个阶段处理一些特定任务,各阶段轮询调度。这些阶段可以是定时器处理,dom事件处理,ajax异步处理......

    1.8K10

    JS监听中文输入

    在做第六个项目(根据输入框实时调用AJAX古诗匹配)时,当我们输入中文拼音,还在拼音字符状态未选择成中文时,一直在执行我编写的事件监听处理函数(当输入框里的值有变化时执行此函数, 调用AJAX在页面显示数据里包含这些字的古诗...而我想要的是在我们输入拼音未完成中文选择时,不让其执行我们的监听处理函数, 只有选择完中文后才去执行调用AJAX判断有没有包含输入的这些字的古诗。...请求...)。...而当我们输入框输入的文字还在待选状态时(如:输入拼音未选择完成时),便会触发compositionstart事件, 此时我们通过jquery的prop()方法给这个input元素添加自定义属性(cnStart...而当我们输入框输入的文字不在待选状态后(如:输入拼音后完成了中文选择时),便会触发compositionend事件, 此时我们再将cnStart这个自定义属性设置为false,代表我们已经完成了中文输入

    12.5K20

    小程序模板语法样式与页面配置

    通过事件可以将用户在渲染层产生的行为,反馈到逻辑层进行业务的处理。...小程序中常用的事件 类型 绑定方式 事件描述 tap bindtap 或 bind:tap 手指触摸后马上离开,类似于 HTML 中的 click 事件 input bindinput 或 bind:input...,可以使用一个 标签将多个组件包装起来,并在 标签上使用 wx:if 控制属性。...:for 可以根据指定的数组,循环渲染重复的组件结构,默认情况下,当前循环项的索引用 index 表示;当前循环项用 item 表示。...Ajax 技术的核心是依赖于浏览器中的 XMLHttpRequest 这个对象,由于小程序的宿主环境是微信客户端,所以小程序中不能叫做“发起 Ajax 请求”,而是叫做“发起网络数据请求”。

    1.1K10

    AJAX 与跨域通信(一):AJAX

    可以看作是一个构造函数,由此我们可以通过 const xhr = new XMLHttpRequest() 创建一个 XML 对象的实例,该实例有以下方法: open():准备启动一个 AJAX 请求;...:发出请求的页面URI; User-Agent:浏览器的用户代理字符串; 另外,我们还可以通过 setRequestHeader() 方法来设置请求头信息。...设想这么一种情况:我们正在上传一张图片(也就是发送一个 AJAX 请求),由于耗时过长,我们决定取消上传,那么取消上传其实就是取消 AJAX 请求,这是通过 abort() 方法实现的。...有以下6个进度事件: loadstart:在接受到响应数据的第一个字节时触发 progress:在接受响应期间持续不断地触发 error:在请求错误时触发 abort:在因为调用 abort() 方法而终止连接时触发...load:在接收到完整的响应数据时触发 loadend:在通信完成或触发 error、abort、load 事件后触发 每个请求都从触发 loadstart 事件开始,接下来是一或多个 progress

    1.2K20

    jQuery 基本语法

    七、Ajax支持 通用方式: $.ajax(prop)    通过一个ajax请求,回去远程数据,prop是一个hash表,它可以传递的key/value有以下几种。          ...可以参考$.ajaxTimeout          ((Boolean)global:是否为当前请求触发ajax全局事件,默认为true          ((Function)error:当请求失败时触发的函数...((Function)success:当请求成功时触发函数          ((Function)complete:当请求完成后出发函数 jQuery代码及说明 $.ajax({url: "ajax.htm...ajaxStart(callback) 当ajax请求发生错误是时执行函数callback ajaxComplete(callback)  当ajax请求完成时执行函数callback ajaxError...(callback)  当ajax请求发生错误时执行函数callback ajaxStop(callback)  当ajax请求停止时执行函数callback ajaxSuccess(callback

    4.8K40

    谈一谈javascript异步

    如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务,以此类推。...ajax的同步请求就会导致浏览器产生假死,因为它会锁定浏览器的UI(按钮,菜单,滚动条等),并阻塞所有用户的交互,jquery中的ajax有这样一个同步请求的功能,一定要慎用,尤其是在请求的数据量很大的时候...返回失败"); }) } } 我们通过添加一些js来看下效果, 异步-定时器 console.log...当产生用户交互(鼠标点击事件,页面滚动事件,窗口大小变化事件等等),ajax,定时器,计时器等,会向事件循环中的任务队列添加事件,然后等待执行, 前端异步有哪些场景?...定时任务:setTimeout,setInverval 网络请求:ajax请求,img图片的动态加载 事件绑定或者叫DOM事件,比如一个点击事件,我不知道它什么时候点,但是在它点击之前,我该干什么还是干什么

    1.1K20

    js的函数节流、函数防抖及其使用场景

    函数防抖:在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时 来看一下下面这个例子 //模拟一段ajax请求 function ajax(content) { console.log(...('keyup', function (e) { ajax(e.target.value) }) 上面的代码执行结果就是,我们只要按下键盘,就会触发这次ajax请求。...不仅从资源上来说是很浪费的行为,而且实际应用中,用户也是输出完整的字符后,才会请求。...下面我们优化一下: //模拟一段ajax请求 function ajax(content) { console.log('ajax request ' + content) } function...应用场景 函数防抖: 1. search搜索联想,用户在不断输入值时,用防抖来节约请求资源 2. window触发resize的时候,不断的调整浏览器窗口大小会不断的触发这个事件,用防抖来让其只触发一次

    1K20

    薛定谔的bug?不,是我还得练!

    原案例按钮按下触发clickEvent方法,执行一些操作后,触发请求访问再做一些其他操作.代码见下:console.log("按钮被点击");$.ajax({url: '/hello',type: 'GET...通过控制台-性能的录制,抽象出下图。最快的解决方法就是,在 Ajax 中添加async: false,变为同步访问。如何避免想要保留异步请求,又要保证顺序,就需要调整代码结构。...事件触发线程: 主要用于控制事件循环。...比如计时器(setTimeout/setlnterval),异步网络请求等等,会把任务添加到事 件触发线程,当任务符合触发条件触发时,就把任务添加到待处理队列的队尾,等JS引擎线程去处理。...异步 HTTP 请求线程: ajax的异步请求,fetch请求等。原案例中所说的解决方案,同步就不算在内。定时触发器线程: setTimeout 和 setlnteval 计时的线程。

    73130
    领券