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

vue菜鸟从业记:没准备好的面试,那叫尬聊

下面来区别一下同步和异步有什么不同: 异步:在异步模式下,当我们使用AJAX发送完请求后,可能还有代码需要执行。...我们可以想一下,同步是一步一步来操作,等待请求返回的数据,再执行下一步,那么一定会有一些情况,只有这一步执行完,拿到数据,通过获取到这一步的数据来执行下一步的操作。...这是异步没有办法实现的,因此同步的存在一定有他存在的道理。 正如这世界上大部分事物发展的规则一样,存在即合理。 如何选择同步还是异步模式?...为了不冷场,面试官继续拷问:如何设置ajax为同步? 此时那哥们心理活动肯定在想,mmp,看来这次面试要栽倒在ajax上面了。...这个问题思索了半天,知道躲不过了,然后前面那哥们直接委婉地说,我之前在公司项目里使用到ajax的地方比较少,没有做太多深入的了解。

1K30

异步与回调函数的作用域链

异步就是不等结果,直接进行下一步. setClock();//定闹钟执行完了之后直接进行下一步getUp();//起床 setClock();//定闹钟就是异步代码,不等待setClock()执行完就执行...异步:我让黄牛去买票(告诉黄牛买到票就call我一下),然后我继续去做别的事 这里:我让黄牛去买票,然后我继续去做别的事就是异步,括号里的(告诉黄牛买到票就call我一下)就是回调 callBack英文有回电话的意思....就是打电话回去告诉异步结果已经得到了,可以继续依照这个结果来做下面的事了.callBack就是这个意思 代码执行完在执行下面的代码就是同步,代码没有执行完就去执行下面的代码就是异步 使用回调函数 function...就是因为有了setTimeout才算异步 所以我们来看看ajax.如果$.ajax()是同步的,即我们发送请求,然后等待服务器发回的响应来到之后在继续执行下面的代码,那么有什么后果: 假设我们想直接拿到请求的结果...所以$.ajax()返回的结果是一个承诺,不是结果,因为结果还没有到来 使用回调函数 使用回调要用这样的形式 fn(参数1,参数2,()=>{ 回调函数(xxx,xxx,()=>{}) }) 不要用

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

    横扫 JS 面试核心考点

    递归实现深拷贝的原理:要拷贝一个数据,我们肯定要去遍历它的属性,如果这个对象的属性仍是对象,继续使用这个方法,如此往复。...我们设定一种场景,如下代码,一个中包含了若干个,而且还能继续增加。那如何快捷方便地为所有绑定事件呢?...Ajax与跨域 Ajax 是一种异步请求数据的一种技术,对于改善用户的体验和程序的性能很有帮助。 简单地说,在不需要重新刷新页面的情况下,Ajax 通过异步请求加载后台数据,并在网页上呈现出来。...常见运用场景有表单验证是否登入成功、百度搜索下拉框提示和快递单号查询等等。Ajax的目的是提高用户体验,较少网络数据的传输量。...简单点说,CSRF 攻击是利用用户的登录态发起恶意请求。 然后我们来考虑一个问题,请求跨域了,那么请求到底发出去没有? 请求必然是发出去了,但是浏览器拦截了响应。

    1.6K03

    每天10个前端小知识 【Day 4】

    前端面试基础知识题 1. js中如何判断一个值是否是数组类型?...Object的原型方法isPrototypeOf,判断两个对象的原型是否一样, isPrototypeOf() 方法用于测试一个对象是否存在于另一个对象的原型链上。...用户浏览了恶意页面 evil.com, 执行了页面中的恶意 AJAX 请求代码。...在创建执行上下文的过程中会做三件事:创建变量对象,创建作用域链,确定 this 指向,其中创建变量对象的过程中,首先会为 arguments 创建一个属性,值为 arguments,然后会扫码 function...应用场景 在了解了上述的前端的缓存方式后,我们可以看看针对不对场景的使用选择: 标记用户与跟踪用户行为的情况,推荐使用cookie 适合长期保存在本地的数据(令牌),推荐使用localStorage 敏感账号一次性登录

    27810

    HTML5 CSS3

    搜索引擎的爬虫依赖于标记来确定上下文和各个关键字的权重,利于 SEO。 使阅读源代码的人对网站更容易将网站分块,便于阅读维护理解。 30. HTML5的离线储存?...继续追问,那么如何确保Uesr总是能访问到func的上下文,即正确返回1。正确的方法是使用Function.prototype.bind。...使用它区别是什么? 意思是使用严格模式,使用严格模式,一些不规范的语法将不再支持 30、如何判断一个对象是否属于某个类?...eval(使用AJAX得到脚本内容,然后通过eval_r(xmlhttp.responseText)来运行脚本) 方案五:iframe方式 36、模块化开发怎么做?...eval(使用AJAX得到脚本内容,然后通过eval_r(xmlhttp.responseText)来运行脚本) 方案五:iframe方式 43、documen.write和 innerHTML的区别

    3.8K40

    整理了近期阿里携程的面试题,分享给大家(后期会慢慢完善)

    下一步操作称之为layout,顾名思义就是计算出每个节点在屏幕中的位置。 再下一步就是绘制,即遍历render树,并使用UI后端层绘制每个节点。...在哪里调用ajax,同步异步的区别 ajax是否有副作用? vue和react相比优点和缺点。 vue中与reducer effect相对应的部分是什么?...二.第二次电面 (一)问题: 1.基础知识: 性能:页面加载过程 怎么理解模块化 commentJs jq的ajax使用 正则表达式的使用 2.项目问题: 数据如何传输处理的?...cookie是网站为了标示用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密)。...Ajax 是什么? 如何创建一个Ajax? ajax的全称:Asynchronous javascript And XML。 异步传输+js+xml。

    1.9K21

    前端工程师面试题自检篇(二)

    以此将用户的请求均衡的分配到各个不同的服务器上,这样来实现负载均衡。DNS 为什么使用 UDP 协议作为传输层协议?...参考前端进阶面试题详细解答DNS完整的查询过程DNS服务器解析域名的过程:首先会在浏览器的缓存中查找对应的IP地址,如果查找到直接返回,若找不到继续下一步将请求发送给本地DNS服务器,在本地域名服务器缓存中查询...,如果查找到,就直接将查找结果返回,若找不到继续下一步本地DNS服务器向根域名服务器发送请求,根域名服务器会返回一个所查询域的顶级域名服务器地址本地DNS服务器向顶级域名服务器发送请求,接受请求的服务器查询自己的缓存...服务器将返回结果返回给浏览器比如要查询 IP 地址,首先会在浏览器的缓存中查找是否有该域名的缓存,如果不存在就将请求发送到本地的 DNS 服务器中,本地DNS服务器会判断是否存在该域名的缓存,如果不存在...核心思想:使用时间戳或标志来实现,立即执行一次,然后每 N 秒执行一次。如果N秒内触发则直接返回。应用:节流常应用于鼠标不断点击触发、监听滚动事件。

    56220

    《手把手教你》系列练习篇之9-python+ selenium自动化测试 -番外篇 - 最后一波

    这种方法简单粗暴,不管浏览器是否加载完,程序都要等待规定的xx时间,时间到了才继续执行下面的代码。 不建议总是用这种等待方式,会严重影响程序的执行速度。...,否则继续等待,直到超过设置的最长时间,然后抛出TimeoutException。...显式等待是你在代码中定义等待一定条件发生后再进一步执行你的代码。 A. 使用前,先引用相关库 B. 确定元素的定位表达式 C....确定元素的定位表达式 ele_locator = "TANGRAM__PSP_10__footerULoginBtn"#通过id,确定‘用户名登录’元素 # C....element,而这个方法传入locator alert_is_present:判断页面上是否存在alert """ 另外这里使用了until()函数也可以使用until_not()   until_not

    1.6K41

    前端高频面试题(三)(附答案)

    反向代理:服务器为了能够将工作负载分不到多个服务器来提高网站性能 (负载均衡)等目的,当其受到请求后,会首先根据转发规则来确定请求应该被转发到哪个服务器上,然后将请求转发到对应的真实服务器上。...常见的类数组转换为数组的方法有这样几种:通过 call 调用数组的 slice 方法来实现转换Array.prototype.slice.call(arrayLike);通过 call 调用数组的 splice...递归查询指的是查询请求发出后,域名服务器代为向下一级域名服务器发出请求,最后向用户返回查询的最终结果。使用递归 查询,用户只需要发出一次查询请求。...下一级的查询由用户自己请求。使用迭代查询,用户需要发出 多次的查询请求。...在这个对象上使用 open 方法创建一个 HTTP 请求,open 方法所需要的参数是请求的方法、请求的地址、是否异步和用户的认证信息。在发起请求前,可以为这个对象添加一些信息和监听函数。

    51720

    Selenium系列(六) - 详细解读强制等待、隐式等待、显式等待的区别和源码解读

    因为,目前大多数Web应用程序都是使用Ajax和Javascript开发的;每次加载一个网页,就会加载各种HTML标签、JS文件 但是,加载肯定有加载顺序,大型网站很难说一秒内就把所有东西加载出来,不仅如此...如果某些元素不是立即可用的,隐式等待是告诉WebDriver去等待一定的时间后去查找元素 默认等待时间是0秒,隐式等待对整个WebDriver的周期都起作用,所以只要设置一次即可 如何体现隐式等待?...【页面加载完成,才能执行下一步】 但可能页面加载未完成的时候,需要定位的元素已经加载完成了,但受限于某些JS文件、图片加载特别慢,我们不能执行下一步,必须得等到网页所有东西都加载完了才能下一步【增加不必要的加载时间...,继续等待; until_not()   如果抛出的是这个元组外的异常,则中断代码;   忽略的异常默认只有 NoSuchElementException until() 通俗易懂的 WebDriverWait...__(self, driver): return _find_element(driver, self.locator) 作用 检查当前DOM树种是否存在该元素(和是否可见没有关系),只要有一个元素加载出来则通过

    4.6K51

    50道JavaScript基础面试题(附答案)

    19 如何判断一个对象是否属于某个类? 使用instanceof 即if(a instanceof Person){alert('yes');} 20 new操作符具体干了什么呢?...异步不存在顺序性。 同步:浏览器访问服务器,用户看到页面刷新,重新发请求,等请求完,页面刷新,新内容出现,用户看到新内容之后进行下一步操作。...异步:浏览器访问服务器请求,用户正常操作,浏览器在后端进行请求。等请求完,页面不刷新,新内容也会出现,用户看到新内容。 25 什么是跨域问题 ,如何解决跨域问题?...在使用call()方法时,传递给函数的参数必须逐个列举出来。使用apply()时,传递给函数的是参数数组。...(7)XML中的图片必须有文字说明 44 渐进增强与优雅降级 渐进增强:针对低版本浏览器进行构建页面,保证最基本的功能,然后再针对高级浏览器进行效果、交互等改进,达到更好的用户体验。

    14.1K01

    Web前端知识体系精简

    Function对象还提供了call、apply和bind等方法来改变函数的this指向,其中call和apply主动执行函数,bind一般在事件回调中使用,而call和apply的区别只是参数的传递方式不同...关于call,apply和bind的用户请参考博客:详解JS的call,apply和bind 4、构造函数 new JS中的函数即可以是构造函数又可以当作普通函数来调用,当使用new来创建对象时,对应的函数就是构造函数...为了防止XSS攻击,浏览器对Ajax做了限制,不允许Ajax跨域请求服务器,就是只能访问当前域名下的url。 当然,如果确信你的站点不存在跨域的风险,可以在服务端主动开启跨域请求。...9、字体图标 iconfont 所谓字体图标就是将常用的图标转化为字体资源存在文件中,通过在CSS中引用该字体文件,然后可以直接通过控制字体的css属性来设置图标的样式。...,此时渲染引擎不会等待图片下载完毕,而是继续渲染后面的代码; 服务器返回图片文件,由于图片占用了一定面积,影响了后面段落的排版,因此引擎需要回过头来重新渲染这部分代码; 如果此时js脚本中运行了style.display

    1.5K30

    对ajax的理解面试题_javascript面试题大全

    同步的话,必须这个操作完了才会执行下一步,在等待期间浏览器会挂起不能执行任何接下来的js代码;异步则是【告诉】浏览器去做,【告诉】是一瞬间的事情,然后就继续执行下一步了,等到结果返回来了,浏览器会通知js...ajax所包含的技术 1.使用CSS和XHTML来表示。 2. 使用DOM模型来交互和动态显示。 3.使用XMLHttpRequest来和服务器进行异步通信。...并不是所有的用户请求都提交给服务器,像—些数据验证和数据处理等都交给Ajax引擎自己来做, 只有确定需要从服务器读取新数据时再由Ajax引擎代为向服务器提交请求。...Ajax的原理简单来说通过XmlHttpRequest对象来向服务器发送异步请求,从服务器获得数据,然后用javascript来操作DOM而更新页面。这其中最关键的一步就是从服务器获得请求数据。...通常的解决方案是,使用一个可视化的组件来告诉用户系统正在进行后台操作并且正在读取数据和内容。

    51740

    Cheat Engine 官方教程汉化

    单击下一次扫描后,您可能需要继续单击击中我,然后重新扫描,告诉找到的地址列表足够小,可以使用。 只需双击找到列表中的地址,即可将其添加到作弊表中。...在这里,我建议继续单击点击我按钮,只是为了查看值是如何减小的,以帮助确定要扫描的值类型。 请注意,该值减小了一个整数,即非小数。 因此,我将扫描仪设置为4个字节和未知的初始值。...现在,只需使用点击我按钮继续减小该值,然后扫描减小的值,直到找到的结果足够小,可以使用。 现在我们只需选择一个地址并更改值以查看它是否具有所需的效果,这就是它的工作原理。...现在将值更改为5000,然后下一步按钮应变为启用状态。然后单击下一步按钮以继续执行下一步。 第五步:代码查找器 当您开始步骤 5 时,您应该看到表单如下所示。...现在我们需要向脚本添加一些注入代码,然后添加一些代码来检查结构的团队变量,以确定哪些参与者是盟友,哪些是战斗员。 所以我们想要一些这样的。

    3.3K10
    领券