web前端面试题(2)

学人智库 时间:2018-02-08 我要投稿
【www.unjs.com - 学人智库】

  http_request.onreadystatechange = alertContents;

  http_request.open('GET', url, true);

  http_request.send(null);

  }

  function alertContents() {

  if (http_request.readyState == 4) {

  if (http_request.status == 200) {

  alert(http_request.responseText);

  } else {

  alert('There was a problem with the request.');

  }

  }

  }

  字符串拼接改良方案

  把要拼接的字符串写入数组arr,然后调用arr.join("");

  title和alt的区别?

  都是提示词。简单的说,title给人看,alt给引擎看

  CSS选择器有哪些?

  通配选择器(*),标签选择器(tag),类选择器(.class),id选择器(#id),属性选择器(selector[attr="val"]),后代选择器(selector1 selector2),子代选择器(selector1 > selector2),相邻选择器(selector1 ~ selector2),伪元素(selector:first-child等),伪类(selector:hover等)。叫法可能不大一样,所以举出一些例子供参考。

  function foo(){ console.log(this); }; foo.call(null);

  window。call第一个参数为null,所以调用者为全局,也就是window,而this指向调用者

  DOCTYPE作用及意义

  为了告诉浏览器以什么标准来解析文档。这是因为部分网页并没有遵循标准,或者遵循的是旧版本的标准。

  具体用法,可以参考:https://www.jb51.net/web/34217.html

  readyState有哪些值?各代表什么?

  0 - (未初始化)还没有调用send()方法

  1 - (载入)已调用send()方法,正在发送请求

  2 - (载入完成)send()方法执行完成,已经接收到全部响应内容

  3 - (交互)正在解析响应内容

  4 - (完成)响应内容解析完成,可以在客户端调用了

  js闭包概念

  js函数里声明的局部变量会在退出函数时被销毁。而闭包则是保留对局部变量的引用,使其久居内存。

  HTML5和HTML4相比多出哪些功能?CSS3和CSS2相比多出哪些功能?

  HTML5:表单验证、websocket、语义化标签等等

  CSS3:动画,计算,新的属性

  less是什么?有什么特点?如何判断less的兼容性

  less是一种CSS预编译器,在CSS原有基础上引入了变量、函数等元素,使得CSS更容易维护、扩充。

  less是靠less.js来解析的,所以,与浏览器没有关系。IE6+和其他主流浏览器都可以使用less

  JS的属性可以直接在构造函数中定义,也可以在原型中定义。两者有什么不同?

  前者定义是写在内存中,而后者是写在硬盘中

  Array(6).join('a')结果是多少?

  "aaaaa"。join是指数组每一项用join的参数隔开。

  123456['toString']['length'];

  1。Number.toString是一个函数,长度为1

  {}+'a'<{}+'b';

  false。{}+"a"会转化成数字相加,结果为NaN。NaN与NaN比较永远返回false

  var arr = [1,2,3,4,5,6];arr.splice(1,3);arr.toString();

  156。splice(index, length)。第一个参数表示开始切割的下标,第二个是切割的长度。注意这个切割是从原数组中去除

  var arr = [1,2,3,4,5,6];arr.slice(1,3)['toString']();

  23。和上例不同,slice(index1, index2)第一个参数表示开始切割的下标,第二个参数是结束切割的下标(不含)。且这个切割返回切除部分。

  ({a:1,b:2,c:3})[['b']];

  2、写一个hack样式实现 IE6、IE7、firefox 下分别使用不同颜色

  以下分别用条件注释和属性前缀法实现

  [css] view plaincopyprint?

  [css] view plaincopyprint?

  color: #67f; // firefox, IE6, IE7

  *color: #667; // IE6,IE7

  _color: #666; // IE6 only

  /* 只在IE6下生效 */

  /* 只在IE7下生效 */

  color: #777;

  /* 在非IE下生效 */

  项目规划题:

  假如你是项目负责人,你会如何规划整个项目的CSS文件?

  reset.css

  public.css

  各模块按文件夹分配CSS,或直接以模块划分CSS

  如何在项目中避免和其他小组冲突?例如类名的命名?

  在类名中加模块前缀,例如登录的提交按钮命名可以为"login-btn-submit"(个人用法,不一样的欢迎提出来交流)

  逻辑题:

  七点四十五分的时候,时针和分针之间的角度是多少?

  37.5°

  给你N个苹果和一座天平,其中一个苹果比较重,其他苹果一样重。假设其他因素完全一样,假设天平两侧可以放无限个苹果。现在要找出那个较重的苹果,需要使用几次天平。求最差情况的最优解。(设计一种算法,让平均次数最少)

  想说二分的都准备挂吧2333,不信想一下N=8的情况。

  我能想到的最好方案是三分,即N/3并向上取整*2,剩下的作为第三堆。即每次天平称的时候两边是ceil(N/3)。例如上面说的,N=8的时候,按二分的思路,第一次称是4,4,第二次称的时候是2,2,第三次是1,1,总共三次。而用三分的思路,第一次是3,3,2,第二次(最坏)是1,1,1,只需要两次。