Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

interview #2

Open
itboos opened this issue Jan 23, 2018 · 10 comments
Open

interview #2

itboos opened this issue Jan 23, 2018 · 10 comments

Comments

@itboos
Copy link
Owner

itboos commented Jan 23, 2018

一些常见的面试题:

@itboos
Copy link
Owner Author

itboos commented Jan 23, 2018

  1. 常见的排序算法:
  • 冒泡排序 时间复杂度: (o(n^2)) 空间复杂度( o(1) ) 速度一般 但是稳定 ,
  • 选择排序(o(n^2))
  • 快速排序(O(nlog2n)(速度最快,但是不稳定)
  • 希尔排序
  • 堆排序
  1. HTTP 状态码:
1.1xx:信息性状态码, 

100 Continue 101 Switching Protocols

2. 正确响应类 : 成功状态码,表示服务器已成功接收到请求并进行处理。200 OK 表示客户端请求成功

3. 重定向类  表示服务器要求客户端重定向。
    301 Moved Permanently 永久性重定向,响应报文的Location首部应该有该资源的新URL

    302 Found 临时性重定向,响应报文的Location首部给出的URL用来临时定位资源

    303 See Other 请求的资源存在着另一个URI,客户端应使用GET方法定向获取请求的资源

    304 Not Modified 服务器内容没有更新,可以直接读取浏览器缓存


4. 客户端错误: 客户端错误状态码,表示客户端的请求有非法内容。
    400 Bad Request 表示客户端请求有语法错误,不能被服务器所理解

    401 Unauthonzed 表示请求未经授权,该状态代码必须与 WWW-Authenticate 报头域一起使用

    403 Forbidden 表示服务器收到请求,但是拒绝提供服务,通常会在响应正文中给出不提供服务的原因

    404 Not Found 请求的资源不存在,例如,输入了错误的URL



5. 服务器内部错误
5xx:服务器错误状态码,表示服务器未能正常处理客户端的请求而出现意外错误。

500 Internel Server Error 表示服务器发生不可预期的错误,导致无法完成客户端的请求

503 Service Unavailable 表示服务器当前不能够处理客户端的请求,在一段时间之后,服务器可能会恢复正常


3. 从浏览器输入网址, 到正确显示网页,经历了什么:
1、输入地址
2、浏览器查找域名的 IP 地址
3、浏览器向 web 服务器发送一个 HTTP 请求
4、服务器的永久重定向响应
5、浏览器跟踪重定向地址
6、服务器处理请求
7、服务器返回一个 HTTP 响应
8、浏览器 渲染显示 HTML
9、浏览器发送请求获取嵌入在 HTML 中的资源(如图片、音频、视频、CSS、JS等等)
    [原文地址]('http://web.jobbole.com/91239/')

原文地址:
http://web.jobbole.com/91239/

码云网页简历:

简历模板-1
简历模板索引
(简历模板-2)[http://xiaodan_yu.gitee.io/resume.io/]

@itboos
Copy link
Owner Author

itboos commented Jan 23, 2018

我的问题:
1.公司企业文化是什么? 2. 公司的主要产品有哪些? 未来的发展重点是在哪个方向 3. 小组里前端人员大概多少

This was referenced Jan 25, 2018
@itboos
Copy link
Owner Author

itboos commented Apr 10, 2018

      // 数组去重:
      // 1.利用Object 的键不重复
      var obj = {};
      var arr = [1,1,2,2,4,5,6,5];
      var newArr = [];
      var temp = 0;
      for (var i = 0, len = arr.length; i < len; i++) {
        temp = arr[i];
        if (!obj[temp]) {
          obj[temp] = temp;
        }
      }
      Object.keys(obj).forEach(function(key,value, arr) {
        newArr.push(obj[key]);
      });
      console.log('arr:', newArr); // [1,2,4,5,6]

    // 方法2: 利用Set集合元素不可重复的特性
     var newArr = new Set(arr);

@itboos
Copy link
Owner Author

itboos commented Apr 14, 2018

跨域的相关文章:

  1. 不要再问我跨域问题了
    https://segmentfault.com/a/1190000015597029
  2. 浏览器的同源策略
    https://developer.mozilla.org/zh-CN/docs/Web/Security/Same-origin_policy
  3. Web测试之安全小坦克
    https://www.cnblogs.com/TankXiao/archive/2012/03/21/2337194.html
  4. JSONP 的优缺点和原理:
    原文
  5. MDN跨域资源共享-cors 强
  原理就是:
  AJAX 无法跨域是受到“同源政策”的限制,
但是带有src属性的标签(例如<script>、<img>、<iframe>)是不受该政策限制的,
因此我们可以通过向页面中动态添加<script>标签来完成对跨域资源的访问,
这也是 JSONP 方案最核心的原理。
通常我们使用<script>都是引用的静态资源(主要是js 文件),
其实它也可以用来引用动态资源(php、jsp、aspx等),
后台服务被访问后返回一个“JavaScript函数调用”形式的字符串,
由于是字符串,因此在后台的时候不会起到任何作用,但到了前台,
放入<script>标签之内,就成了一个合法的 JavaScript 函数调用,
实参是我们真正需要的数据,被调用的回调函数也已经实现了,因此就会顺利的被调用。
 JSON with Padding,
这里的 Padding 指的就是包裹在 JSON 外层的回调函数,这么一来,是不是印象就非常深刻了呢。
 JSONP 最大的优点就是兼容性非常好,其原理决定了即便在非常古老的浏览器上也能够很好的被实现。
 JSONP 的主要缺点有两个,
一是只能 GET 不能 POST,因为是通过<script>引用的资源,参数全都显式的放在URL里,和 AJAX 没有半毛钱关系。
二是存在安全隐患,动态插入<script>标签其实就是一种脚本注入,XSS听过没?需要多留个心眼。

跨域资源共享 CORS 详解-阮一峰
2. http状态码: 503, 304
维基百科-HTTP状态码

@itboos
Copy link
Owner Author

itboos commented May 15, 2018

点击穿透的问题:

点击穿透(👍 )
也来说说touch事件与点击穿透问题

第三方的库:

github 源码:fastclick
fastclick
fastclick 是如何解决点击穿透的? 其实现思路是,取消 click 事件(参看源码164-173行),用touchend 模拟 快速点击行为(参看源码 521-610 行)。
fastclick的源码以自己模拟事件的创建-强

@itboos
Copy link
Owner Author

itboos commented May 28, 2018

collection:
大杂烩:
Interview-Notebook
前端:
FE-interview
英文版面试题
Node相关

@itboos
Copy link
Owner Author

itboos commented Aug 20, 2018

@itboos
Copy link
Owner Author

itboos commented Aug 23, 2018

1.从发起请求到浏览器的显示页面发生的过程
2. http 1.1 和 http2.0 的区别
3. 多个promise 的同步执行方法.
4. iP 地址是如何联系上 服务器的
5. tcp 的丢包重试机制, 和 udp 的区别

@itboos
Copy link
Owner Author

itboos commented Sep 11, 2018

Chrome浏览器下如何设置小于12px的字体?

Chrome浏览器默认情况下的字体最小为12px,如果你要设置某字体大小为10px的话,你会在Chrome发现还是12px
解决办法:
 给要显示小于12px 像素的元素设置属性:

  -webkit-text-size-adjust: none;

存在的问题:
当你放大网页时,一般情况下字体也会随着变大,而针对html或者body设置了以上代码后,字体只会显示你当前设置的字体大小,不会随着网页放大而变大了,这样对有需要放大网页观看的用户造成了不好的用户体验,所以不建议全局应用该属性,而是在需要的情况单独使用就好了。
打开缩放功能:

*{-webkit-text-size-adjust:auto !important;}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant