阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      蘑菇街 前端工程师面试题

      蘑菇街 前端工程师面试题

      以下关于 HTTP 的状态码中描述错误的是:

      正确答案: B

      200 OK 客户端请求成功
      302 Moved Permanently 请求永久重定向
      403 Forbidden 服务器收到请求,但是拒绝提供服务
      500 Internal Server Error 服务器发生不可预期的错误,导致无法完成客户端的请求
      

      对于以下 HTML,下列选项中哪一个 CSS 选择器效果与其他的不同:

      <p><span>A</span><span>B</span><span>C</span></p>
      

      正确答案: B

      span:first-child
      span:nth-child(0)
      span:nth-child(-n+1)
      span:nth-last-child(3)
      

      以下关于原型链的描述正确的是:

      正确答案: C

      通过原型链继承的属性和对象自己定义的属性等效
      通过原型链可以模拟对象的私有属性
      在对象上访问不存在的属性时,会依次遍历整条原型链
      所有 JavaScript 中的对象都是位于原型链顶端的 `Object` 的实例
      

      攻击者使用无效IP地址,利用TCP连接的三次握手过程,连续发送会话请求,使受害主机处于开放会话的请求之中,直至连接超时,最终因耗尽资源而停止响应。这种攻击被称为:

      正确答案: D

      DNS欺骗攻击
      DDoS攻击
      XSS攻击
      SYN Flooding攻击
      

      以下Javascript代码执行后的输出结果依次是:

      ```javascript
      console.log(typeof undefined == typeof NULL);
      console.log(typeof function () {} == typeof class {});
      ```
      

      正确答案: C

      false, true
      false, false
      true, true
      true, false
      

      以下Javascript代码执行后的输出结果依次是:()

      var tmp = {};
      var A = function() {};
      A.prototype = tmp;
      
      var a = new A();
      A.prototype = {};
      
      var b = Object.create(tmp);
      b.constructor = A.constructor;
      
      console.log(a instanceof A);
      console.log(b instanceof A);
      

      正确答案: D

      true, false
      false, true
      true, true
      false, false
      

      在Javascript中限制只能输入零和非零开头的数字,正确的正则表达式是:

      正确答案: A

      • ^(0|[1-9][0-9]*)$
      • ^(0|[1-9][0-9])$
      • ^\+[1-9][0-9]*$
      • ^(0|[1-9][1-9]*)$

      以下Javascript代码执行后的输出结果是:

      function a(m, n) {
          var b = function (l) {
              return l <= m ? l * b(l + 1) : 1;
          }
      
          return b(m - n + 1);
      }
      
      console.log(a(4, 2));
      

      正确答案: C

      0
      8
      12
      24
      

      以下Javascript代码执行后的结果是:()

      [ 'a', ,'b', ,].length
      

      正确答案: C

      2
      3
      4
      5
      

      关于cookie、sessionStorage和localStorage,以下哪个说法是错误的:

      正确答案: C

      sessionStorage和localStorage的存储空间比cookie的存储空间更大
      sessionStorage和localStorage比cookie有更多丰富易用的接口
      cookie、sessionStorage和localStorage都可以在浏览器和服务器间来回传递
      sessionStorage和localStorage都有各自独立的存储空间
      

      以下哪些HTML标签属于行内元素:

      正确答案: B D E

      • p
      • span
      • canvas
      • label
      • img

      以下描述正确的是:

      正确答案: A B D

      • inline-block 可以设置高度,inline 不可以设置高度
      • inline-blockinline 都可以设置 padding-left
      • inline-block 可以设置 margin-left,inline 不可以
      • block 会独占一行,inline-block 不会

      以下关于跨域的描述哪些是正确的:

      正确答案: B C D

      • Web字体,图片等资源文件加载都不受浏览器跨域限制
      • CSS文件的加载不受跨域限制
      • window.onerror方法默认情况下无法获取跨域脚本的报错详情
      • canvas中使用drawImage贴图会受跨域限制

      以下关于闭包的描述哪些是正确的:

      正确答案: A B C D

      函数内再嵌套函数
      参数和变量不会被垃圾回收机制回收
      内部函数可以引用外层的参数和变量
      闭包会导致原始作用域链不释放,造成内存泄漏
      

      在 ECMAScript6 中,promise的状态有:

      正确答案: A C D

      Pending
      Pause
      Fulfilled
      Rejected
      

      以下关于let和const的说法中正确的是:

      正确答案: A B C

      let声明的变量值和类型都可以改变
      const声明的常量不可以改变
      两者都不存在变量提升,同时存在暂时性死区,只能在声明的位置后面使用
      const可以先声明再初始化,可以后赋值
      

      对以下Javascript代码运行结果的描述错误的是:()

      var a = {},
          b = { key: 'b' },
          c = { key: 'c' };
      
      a[b] = 123;
      a[c] = 456;
      

      正确答案: A B D

      • 变量 a 有两个属性
      • console.log(a[b]) 输出 123
      • console.log(a[c]) 输出 456
      • console.log(a[a]) 输出 undefined

      假设以下div

          <div class="a">hello</div>
      

      绑定的click事件如下

          let a = document.querySelector('.a');
          a.addEventListener('click', ()=>{
              console.log(1);
          });
      

      以下哪些方法在点击上面的div后,输出1之前输出2:()

      正确答案: B C D

      • javascript<br>a.addEventListener('click', ()=&gt;{<br>console.log(2);<br>});<br>
      • javascript<br>a.addEventListener('click', ()=&gt;{<br>console.log(2);<br>}, true);<br>
      • javascript<br>a.addEventListener('touchstart', ()=&gt;{<br>console.log(2);<br>});<br>
      • javascript<br>a.addEventListener('touchend', ()=&gt;{<br>console.log(2);<br>});<br>

      以下哪些方法可以优化滚动性能:

      正确答案: A B C D

      在滚动中对滚动函数进行节流处理
      滚动中减少导致重绘的操作
      滚动中减少导致重排的操作
      通过给滚动内的子元素开启硬件加速
      

      以下请求是一个订单提交的请求,请观察该请求包,说出你认为可能存在的安全风险点:()

      POST http://test.mogujie.com/insert.html HTTP/1.1
      Host: test.mogujie.com
      Referer: http://test.mogujie.com/index.php?data=58
      Cookie: uid=1504174654; 
      addressid=1&productid=123&num=1&price=120
      

      正确答案: A B C D

      CSRF
      订单金额篡改
      越权操作
      SQL 注入
      

      实现一个弹出对话框组件, 如下图(可以使用vue, jquery, react等框架)

      https://uploadfiles.nowcoder.com/images/20180919/300823_1537347122363_D375460951577D587A2D848B6E862450

      你的答案

      编写一个Javascript函数,传入一个数组,对数组中的元素进行去重并返回一个无重复元素的数组,数组的元素可以是数字、字符串、数组和对象。

      举例说明:

      1. 如传入的数组元素为[123, "meili", "123", "mogu", 123],则输出:[123, "meili", "123", "mogu"]
      2. 如传入的数组元素为[123, [1, 2, 3], [1, "2", 3], [1, 2, 3], "meili"],则输出:[123, [1, 2, 3], [1, "2", 3], "meili"]
      3. 如传入的数组元素为[123, {a: 1}, {a: {b: 1}}, {a: "1"}, {a: {b: 1}}, "meili"],则输出:[123, {a: 1}, {a: {b: 1}}, {a: "1"}, "meili"]
      

      参考

      目录
      本文目录
      目录