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

web前端面试都问什么-JS篇

这两个私有项无法在匿名函数外部直接访问,必须通过匿名包装器返回的对象的三个公共函数访问。 闭包的缺点 由于闭包会是的函数中的变量都被保存到内存中,滥用闭包很容易造成内存消耗过大,导致网页性能问题。...ES6:find()& findIndex() 根据条件找到数组成员 这两个方法都可以识别NaN,弥补了indexOf的不足. [1, 4, -5, 10,NaN].find((n) => Object.is...(NaN, n)); // 返回元素NaN [1, 4, -5, 10].findIndex((n) => n < 0); // 返回索引2 8....传统的回调有五大信任问题: 调用回调过早 调用回调过晚(或者没有被调用) 调用回调次数过多或过少 未能传递所需的环境和参数 涂掉可能出现的错误和异常 3. Promise 如何使用?..., error); }); 上面代码中,getJSON方法返回一个 Promise 对象,如果该对象状态变为resolved,则会调用then方法指定的回调函数;如果异步操作抛出错误,状态就会变为rejected

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

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

    4) 发送http请求 xhr.send(data); 5) 获取异步调用返回的数据 注意: 1) 页面初次加载时,尽量在web服务器一次性输出所有相关的数据,只在页面加载完成之后,用户进行操作时采用ajax...(当前被传递的元素); index(当前被传递的元素的索引); array(调用map方法的数组) parseInt方法接收两个参数 第三个参数["1", "2", "3"]将被忽略。...parseInt("3", 2)执行时,由于"3"不属于二进制字符,解析结果为NaN。 15、关于事件,IE与火狐的事件机制有什么区别?如何阻止冒泡?...$.getJSON方法会自动判断是否跨域,不跨域的话,就调用普通的ajax方法;跨域的话,则会以异步加载js文件的形式来调用JSONP的回调函数。...如果没有引用指向该对象(零引用),对象将被垃圾回收机制回收。 该算法有个限制:无法处理循环引用。两个对象被创建,并互相引用,形成了一个循环。

    1.1K10

    【ECMAScript6】es6 要点(二)Promise | 自个写一个Promise | Generator | AsyncAwait

    Promise:一种解决回调问题的技术 首先我们要理解同步与异步的含义: 同步:函数在执行时会阻塞调用者,并在执行完毕后返回结果。 异步:函数在执行时不会阻塞调用者,但是一旦执行完毕就会返回结果。...否则最后会返回undefined。原因:Generator犹如一种序列,一旦序列中的值被消费,你就不能再次消费它。即,序列为空后,再次调用就会返回undefined!。...第一次调用Generator实例时,yield将函数置于暂停模式并返回值。当下一次调用Generator实例时,Generator函数将从它中断的地方恢复执行。...何为惰性求值: 它指的是:代码直到调用时才会执行。即,当我们需要时,相应的值才会被计算并返回。...相反,它创建了一个新的迭代器,通过该迭代器我们才能从生成器中请求值。在生成器生成了一个之后,生成器会进入挂起执行并等待下一个请求到来的状态。从某种方面上说,生成器的工作更像一个状态机。

    27320

    关于js基础easy忘记的那些事儿「建议收藏」

    1.Number() 通过这个函数转化后的值仅仅有两个:数值和NaN,通过parseInt也能转化为数值。...则仅仅有在第一个是true的情况下才会返回第二个数 假设当中一个是null,则返回null 假设当中一个是NaN,则返回NaN 假设当中一个是undefined,则返回undefined 5.逻辑或...|| 假设第一个是对象,则返回第一个操作数 假设第一个是false,则返回第二个操作数 假设两个都是对象,则返回第一个操作数 剩下的NaN,undefined。...不同的是这时须要两个操作数都是NaN或undefined或null 6.关系操作符(>,=) 假设两个操作数都是数值。...而且大写字母的字符编码所有的字符编码 假设一个操作数是数值,要把另外一个也转化为数值,然后比較 假设有一个是对象,则调用该对象的valueOf方法,没有的话调用toString方法,之后依据前面的规则进行比較

    20910

    ES6的语法

    ,没有则返回undefined arr.findIndex(function(){})返回第一个符合条件的索引,没有则返回-1 indexOf()不能查找NAN (arr.includes)能查找...链式调用时判断,如果是null和undefined直接返回undefined a?.b 属性调用 m?.[1] 索引调用 xiaoming.say?....2、WeakSet的成员只能是对象,而不能是其他类型的值 3、WeakSet中的对象都是弱引用,即垃圾回收机制不考虑WeakSet对该对象的引用。...也就是说,如果其他对象都不再引用该对象,那么垃圾垃圾回收机制会自动回收该对象所占用的内存,不考虑该对象是否还存在于WeakSet之中。...,接收promise的resolve和reject then里的resolve返回结果,作为下一个then的resolve参数(链式调用) Promise.prototype.catch catch接收错误

    13910

    ES6中的Promise对象作用

    fns || fns.length==0){ //如果没有订阅该消息,则返回 27 return false; 28 } 29 30...需要注意的是,在getJSON内部,resolve函数和reject函数调用时,都带有参数。 如果调用resolve函数和reject函数时带有参数,那么它们的参数会被传递给回调函数。..., error); 6}); 上面代码中,getJSON方法返回一个 Promise 对象,如果该对象状态变为resolved,则会调用then方法指定的回调函数;如果异步操作抛出错误,状态就会变为rejected...对象:一个由getJSON产生,两个由then产生。...所以一般总是建议,Promise 对象后面要跟catch方法,这样可以处理 Promise 内部发生的错误。catch方法返回的还是一个 Promise 对象,因此后面还可以接着调用then方法。

    82220

    web前端如何准备面试工作??

    我们可以把 HTML 代码看作浏览器页面 UI 构建初始 DOM 的蓝图。为了正确构建每个 DOM,浏览器还会修复它在蓝图中发现的问题。...我们在给函数传参数的时候,除了有我们显示传入的实参之外,其实还包含了两个隐士参数 this 和 arguments。this 表示被调用函数的上下文(在什么环境下调用,就指向什么)。...function getJSON(url){ return new Promise((resolve,reject)=>{//创建并返回一个新的promise对象 const request...,则对该promise执行reject方法” reject(this.status+' '+ this.statusText) } request.send()//发送请求...be here:" + e));   //←--- 使用由getJSON函数创建的promise来注册resolve和reject回调函数” 如果你看到了最后,打扰一下,我想再来一个小小广告,哈哈 坐标上海

    62910

    【面试题】846- 44道比较难的 JS 面试题

    实际上返回的结果是 [1, NaN, NaN] ,因为 parseInt 函数只需要两个参数 parseInt(value, radix) ,而 map 的回调函数需要三个参数 callback(currentValue...如果该参数小于2或者大于36,则 parseInt 返回 NaN。此外,转换失败也会返回 NaN。 现在来分析问题。...ES5规范11.9.3.1-f指出:如果比较的两个对象指向的是同一个对象,就返回 true,否则就返回 false,显然,这是两个不同的数组对象。...MDN规范关于 reverse 的描述: reverse 方法颠倒数组中元素的位置,并返回该数组的引用。...数组也是对象,ES5规范指出如果两个对象进行相等比较,只有在它们指向同一个对象的情况下才会返回 true,其他情况都返回 false。

    69510

    Promise 对象

    这时,前一个回调函数,有可能返回的还是一个Promise对象(即有异步操作),这时后一个回调函数,就会等待该Promise对象的状态发生变化,才会被调用。..., error); }); 上面代码中,getJSON方法返回一个 Promise 对象,如果该对象状态变为resolved,则会调用then方法指定的回调函数;如果异步操作抛出错误,状态就会变为rejected...# Promise.prototype.finally() finally方法用于指定不管 Promise 对象最后状态如何,都会执行的操作。该方法是 ES2018 引入标准的。...方法,该方法返回的是一个新的 Promise 实例,p2指向的实际上是这个实例。...该实例执行完catch方法后,也会变成resolved,导致Promise.all()方法参数里面的两个实例都会resolved,因此会调用then方法指定的回调函数,而不会调用catch方法指定的回调函数

    1.3K20

    javascript跨域

    特别注意两点: 第一,如果是协议和端口造成的跨域问题“前台”是无能为力的, 第二:在跨域问题上,域仅仅是通过“URL的首部”来识别而不会去尝试判断相同的ip地址对应着两个域或两个域是否在同一个ip上。...下面来看看我们都是如何处理跨域请求的: 动态创建script 虽然浏览器默认禁止了跨域访问,但并不禁止在页面中引用其他域的JS文件,script标签的src属性引用指向接收方的一个处理地址(后台),该地址返回的...javascript方法会被执行,另外URL中可以传入一些参数,该方法只支持GET方式提交参数。...使用Jquery中getScript和getJson方法实现跨域 Jquery 的getScript 和 getJson方法都可以调用跨域的js或服务端脚本,但是它们的实现原理不一样。...我们在平时开发过程又不得不用post方式,因为get方式对请求的数量有大小限制,那在这种情况下如何保证用户良好的页面体验,又能解决跨域问题呢?

    1.5K40

    jQuery进阶前言

    比如一般的网站登录的时候要输验证码,当你输完验证码,就会立即提示验证码正确还是错误,而不需要点击“登录”按钮后再去判断,这就用到了Ajax。接下来就看看如何使用。...3、$.getScript(): 用法和$.getJSON()基本一样,区别在于url不是返回json格式数据的url,而是指向一个js文件,比如statis/js/sport.js,还有就是没有data...4、$.get(): 使用get()方法时,采用GET方式向服务器请求数据,并通过方法中回调函数的参数返回请求的数据,它的调用格式如下: $.get(url,function(data){...})...5、$.post(): 与get()方法相比,post()方法多用于以POST方式向服务器发送数据,服务器接收到数据之后,进行处理,并将处理结果返回页面,调用格式如下: $.post(url,data...它的调用格式如下: $.ajax([settings]) 其中参数settings为发送ajax请求时的配置对象,在该对象中,url表示服务器请求的路径,data为请求时传递的数据,dataType

    2.4K20

    前端基础进阶(十五):详解 Promise对象

    这时,前一个回调函数,有可能返回的还是一个Promise对象(即有异步操作),这时后一个回调函数,就会等待该Promise对象的状态发生变化,才会被调用。..., error); }); 上面代码中,getJSON()方法返回一个 Promise 对象,如果该对象状态变为resolved,则会调用then()方法指定的回调函数;如果异步操作抛出错误,状态就会变为...Promise.prototype.finally() finally()方法用于指定不管 Promise 对象最后状态如何,都会执行的操作。该方法是 ES2018 引入标准的。...方法,该方法返回的是一个新的 Promise 实例,p2指向的实际上是这个实例。...该实例执行完catch方法后,也会变成resolved,导致Promise.all()方法参数里面的两个实例都会resolved,因此会调用then方法指定的回调函数,而不会调用catch方法指定的回调函数

    45020

    「面试基础小册」数据类型及其延伸

    引用数据类型在栈中存储了指针,该指针指向堆中该实体的起始地址。当解释器寻找引用值时,会首先检索其在栈中的地址,取得地址后从堆中获得实体。...==:同时对比类型和值,两个都为真才返回真 拓展:是否 === 判断两者是否一致 就完全靠谱?...重要提示:即使两个操作数都是 NaN,相等操作符也返回 false 了;因为按照规则, NaN 不等于 NaN (NaN 不等于任何值,包括他本身) 6、如果两个操作数都是对象,则比较它们是不是同一个对象...,如果两个操作数都指向同一个对象,则相等操作符返回 true;否则,返回 false 7、 !...(这种只限于找出数组中单独存在的一个数) 实现两个值的交换,而不必使用临时变量。

    67420

    前端基础进阶(十五):详解 Promise对象

    这时,前一个回调函数,有可能返回的还是一个Promise对象(即有异步操作),这时后一个回调函数,就会等待该Promise对象的状态发生变化,才会被调用。..., error); }); 上面代码中,getJSON()方法返回一个 Promise 对象,如果该对象状态变为resolved,则会调用then()方法指定的回调函数;如果异步操作抛出错误,状态就会变为...Promise.prototype.finally() finally()方法用于指定不管 Promise 对象最后状态如何,都会执行的操作。该方法是 ES2018 引入标准的。...方法,该方法返回的是一个新的 Promise 实例,p2指向的实际上是这个实例。...该实例执行完catch方法后,也会变成resolved,导致Promise.all()方法参数里面的两个实例都会resolved,因此会调用then方法指定的回调函数,而不会调用catch方法指定的回调函数

    1.1K20
    领券