面试记录2

1. Ajax的原理,和进程相关

2. 进程和线程的关系

进程和线程的区别

3. css选择器的优先级

  1. 不同级别

!important > 行内样式>ID选择器 > 类选择器 > 标签 > 通配符 > 继承 > 浏览器默认属性

  1. 相同级别

后面覆盖前面的

4. 闭包相关

闭包的作用:

  • 在函数外部读取函数内部局部变量;
  • 在函数外部读取函数内部局部变量,变量被封装到局部作用域,只提供接口获取该变量,就像传统oop的私有变量,公有方法一样,这样可以避免污染全局变量;
  • 让这些值始终保存在内存中。

使用场景

  • 由于setTimeout方法不能传递参数,可以用闭包来解决
    function func(param) {
        return function() {
            alert(param);
        }
    }
    var f = func(1)
    setTimeout(f, 1000);
  • 节流函数
    function debounce(func, delay) {
        let timer;
        //该函数是一个闭包,所以timer会一直存在于内存中,并且timer只能在函数内部访问
        return function (...args) {
            if (timer) {
                clearTimeout(timer);
            }
            timer = window.setTimeout(() => {
                func.apply(this, args);
            }, delay);
        }
    }

5. html5新特性

  • Canvas Api
  • <audio> <vedio>
  • Geolocation Api
  • Websocket Api
  • Form Api
  • Storage Api
  • 离线应用

6. 垂直居中

垂直居中
用弹性盒子实现水平垂直居中

<div class="parent">
  <div class="children">我是通过flex的水平垂直居中噢!</div>
</div>
html,body{
  width: 100%;
  height: 200px;
}
.parent {
  display:flex;
  align-items: center;/*垂直居中*/
  justify-content: center;/*水平居中*/
  width:100%;
  height:100%;
  background-color:red;
}
.children {
  background-color:blue;
}

7. Promise

两个作用

  1. 避免回调地狱
  2. 为了我们的代码更加具有可读性和可维护性,我们需要将数据请求与数据处理明确的区分开来

8. alert(1&&2) alert(1||2)

alert(1 && 2)  //2 括号里面先计算,var a = 1 && 2; alert(a)
alert(1 || 2)  //1 括号里面先计算,var a = 1 || 2; alert(a)

9. display: none 和 visibility:hidden

display:none //隐藏元素,不占据文档流
visibility:hidden   //隐藏元素,不占据文档流

10. 对象先会先找自身的属性,然后再去找原型上的属性

function C1(name) {
    if (name) this.name = name;
};
C1.prototype.name = 'weilei';
console.log(new C1().name);  // weilei

function C2(name) {
    this.name = name;
};
C2.prototype.name = 'weilei';
console.log(new C2().name);  // undefined

function C3(name) {
    this.name = name || 'sam';
};
C3.prototype.name = 'weilei';
console.log(new C3().name);  // sam

11. mouseover和mouseenter区别

唯一的区别是 onmouseenter 事件不支持冒泡

12. js改变html的title

document.title = 'xxx'

韦磊
90 声望11 粉丝

沉稳,踏实,坚持,这正是我所欠缺的


« 上一篇
面试记录1
下一篇 »
js 工具函数