zoukankan      html  css  js  c++  java
  • 面试题总结

    什么是闭包?为什么使用?简述闭包的优点和缺点

    外部函数嵌套内部函数,内部函数在外部调用

    重用一个变量,并且保证该变量不被污染

    解决全局变量和局部变量都具有不可兼得的优缺点

    全局变量:可重用但是容易被污染

    局部变量:仅在函数内部可用,不会被污染,不可重用

    闭包的缺点:

       比普通函数占用更多的内存。

       解决:闭包不在使用时,要及时释放。

       将引用内层函数对象的变量赋值为null

    什么是回流(reflow)和重绘(repaint)?

    回流:浏览器在渲染页面的时,某个部分发生了变化影响了网页的布局

    重绘:不改变元素的内部布局

    重排:DOM的结构发生改变

    浏览器渲染器页面的过程

    1.解析HTML文件,创建DOM

    2.解析CSS

    3.CSSDOM合并,构建渲染树

    4.进行布局和绘制(重排和重绘)

    什么是同源策略

    域名,协议,端口号相同,所有支持javascript的浏览器都会执行这个策略

     

    什么是跨域

    一个域的页面去请求另一个域的资源

    jsonp的原理

    动态添加一个script标签,通过scriptsrc属性,向服务器请求数据,返回数据并执行回调函数

    什么是内存泄露,怎么防止

    垃圾回收机制就是为了防止内存泄漏的,内存泄漏的含义就是不需要某块内存时他依旧还存在,垃圾回收机制就是寻找不在使用的变量并释放他们的内存,当一个变量的生命周期结束之后他的内存就应该被释放,变量分为全局变量和在函数中产生的局部变量,局部变量在函数调用完成之后它的内存就释放的,而全局变量的生命周期会一直持续到浏览器关闭,所以说使用全局变量过多就会内存泄漏

    1. 当页面中的元素移出时,他绑定的事件没有被移除,就会造成内存泄漏,必须手动将事件解绑  btn.onclick = null;
    2. 当原有的DOM节点移除后,它的子节点没有被移除,解决的办法是先移除子节点,在移除父节点
    3. setTimeout 的第一个参数使用字符串而非函数的话

    解释高内聚,低耦合

    模块独立性就指的是每个模块完成系统独立的功能

    高内聚指的是一个模块内部的各个元素联系紧密

    低耦合指的是尽量让各个模块之间独立,互不影响,降低模块与模块之间的联系

    AJAX的步骤

    1. 创建xmLhttpRequest对象
    2. 设置请求的方式
    3. 调用回调函数
    4. 发送请求

    创建XMLHttpRequest对象

    function getXhr(){

    var xhr = null

    if(window.XMLHttpRequest){

    除了ie5ie6以外的浏览器XMLHttpRequestwindow的对象

    xhr = new XMLHttpReques();

    }else{

    ie5ie6以外的浏览器

    xhr = new ActiveXObject(‘Microsoft.XMLHttp’);

    }

    return xhr;

    }

    function getAjax(url,fn){

    var xhr = getXhr();

    设置请求的方式

    xhr.open(‘get’,url,true)

    Xhr.onreadystatuschange = function(){

    If(xhr.readyStatus === 4 && xhr.status ===200){

    Var datajson =eval(‘(’+xhr.responestText+’)’)

    Fn(datajson)

    }

    }

    Xhr.send(null) 如果请求不成功则重置xhr的值

    }

    getAjax(“data.json”,function(data){

    Console.log(data)

    })

    解决AJAX不能前进,后退的问题

    通过h5history属性解决,h5新增加了一个window.onpopstate,当用户点击前进,后退按钮时就会触发该事件,返回之前的页面时就会知道那个页面的pageIndexpushStatuspageIndex)就会把当前的pageIndex存起来,在返回这个页面时获取到pageIndex

    雅虎公司了解吗

    雅虎是第一家提供英特网导航服务的网站,创始人是杨致远和大卫·费罗,2005年由阿里巴巴集团全资收购

    前端的三大框架以及前端的其他框架

    Vue.js    Angular.js   React.js   Jquery

    Bootstrap  mui   easyUI 

  • 相关阅读:
    Java String, StringBuffer和StringBuilder实例
    java中字符串的比较
    java中子类继承父类时是否继承构造函数
    Java中抽象类和接口的用法和区别
    与(&)、非(~)、或(|)、异或(^)
    Linux03
    Linux02
    Linux01
    力扣算法题
    算法 栈、队列、二分查找
  • 原文地址:https://www.cnblogs.com/zhangyue690811/p/11919204.html
Copyright © 2011-2022 走看看