JS-Web-Api面试题

2018-05-07  本文已影响0人  石燕平_Leo

这篇主要是说JS的一些api,其中包括DOM,BOM,事件,ajax,存储,都是实际开发会用到的,但是这些都是JS的哦,不涉及jquery,vue框架等。

一、DOM操作

知识点

1. 事件模型
2. 事件流
3. Event对象的常见用法
4. DOM结构操作
var p = document.createElement('p')
p.innerHTML = 'new P';
var div1 = document.getElementById('div1');
div1.appendChild(p);
var div1 = document.getElementById('div1');
var div2 = document.getElementById('div2');
div1.appendChild(div2);
var div1 = document.getElementById('div1');
console.log(div1.parentNode);
console.log(div1.childNodes);
var div1 = document.getElementById('div1');
div1.removeChild(div1.childNodes[1]);

问题

1. DOM是哪种基本的数据结构

树型结构

2. DOM操作常用的api有哪些
3. DOM中attr和property有何区别

attribute是对html标签属性的修改
property是对一个JS对象的属性的修改

二、BOM操作

1. 检测浏览器类型

navigator.userAgent

2. url不同部分的拆解

在控制台通过location去查看对象有哪些属性
如下图:

location.png

3. history

4. screen

三、事件

1. 编写一个通用的事件监听

function bindEvent(ele, type, selector, fn) {
  // 没有事件代理时,将第三个参数赋值给fn
  if (fn == null) {
    fn = selector;
    selector = null;
  }
  ele.addEventListener(type, function (e) {
    var target = e.target;
    if (selector) {
      // 使用事件代理
      if (target.matches(selector)) {
        fn.call(target, e);
      }
    } else {
      // 不使用事件代理
      fn(e);
    }
  });
}

2. 事件冒泡

3. 对于一个有无限下拉的图片的操作,怎么给每个图片绑定事件

四、ajax及http

知识点

1. readyState
2. status
3. 跨域
4. http的特点

问题

1. 手动编写一个ajax,不依赖其他库
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
  if(xhr.readyState === 4) {
    if(xhr.status === 200) {
      alert(xhr.responseText);
    }
  }
}
xhr.send(null)
2. 跨域的几种实现方式
3. POST和GET的区别

五、存储

描述一下cookie,localStorage,sessionStorage的区别

上一篇 下一篇

猜你喜欢

热点阅读