美文网首页
记录这段时间的前端面试笔记

记录这段时间的前端面试笔记

作者: 思考的嘤嘤 | 来源:发表于2017-09-17 12:20 被阅读13次

    前端面试笔记--JS篇
    在这里本萌妹想把最近面试经历过的都记录下来,让自己更深刻理解,希望也能帮助同样在面试的你!
    1.js数据类型?
    string, number, boolean, array, object, null, undefined
    2.写一个方法,计算字符串的字节长度?
    var str = '我是萌逼';
    var bytesCounts = 0;
    for(var i = 0; i< str.length; i++){
    var c = str.charAt(i);
    if(/^[\u0000-\u00ff]$/.test(c)){
    bytesCounts += 1;
    } else {
    bytesCounts += 2;
    }
    }
    console.log(bytesCounts);
    3.ajax跨域?
    问题:跨域主要是由于浏览器的同源策略引起。
    解决:
    (1)jsonp;<script>具有跨域能力
    客户端网页通过添加一个<script>元素=》向服务器请求json数据=》请求时接口地址作为脚本标签的src=>jsonp只能用于get。
    (2)CORS,全球跨域资源共享,
    原理:服务器A在响应头加上Access-control-Allow-Origin(权限控制允许来源),其他客户端就能向服务器A发送跨域请求。
    (3)websocket;这是HTML5的新标签,是一种新协议,允许服务器主动向客户端发送信息。

    4.闭包?以及闭包的应用场景?
    闭包就是由函数创造的一个词法作用域,里面创建的变量被引用后,可以在词法作用环境之外被使用。
    闭包通常用来创建内部变量,使得这些变量不能被外部随意修改。
    注意:由于闭包会使得函数中的变量都保存在内存中,内存消耗很大,所以不能滥用闭包,
    解决:将不使用的局部变量全局变量删除。

    5.webpack?
    webpack 是一种模块化方案,将js,css和图片等资源都当作模块来处理,提供一个入口文件,它会把该文件以及该文件所依赖的其他模块都打包成一个文件。

    6.ajax?
    ajax=>asynchronous javascript and XML;
    一种创建交互网页应用的网页开发技术;
    通过异步模式,提升了用户体验;
    优化了浏览器和服务器之间的传输,减少不必要的数据往返,减少带宽占用;
    特点:实现动态不刷新(布局刷新);
    核心:XMLHttpRequest对象;

    7.箭头函数与非箭头函数?
    (1)this;
    普通函数:this总是代表它的直接调用者,默认情况下没找打直接调用者,则指window,使用call,apply,bind绑定的,this指的是绑定的对象。
    箭头函数:默认指向定义时所处的对象。
    (2)箭头函数不可以当做构造函数,也就是说不可以使用new,否则会抛出一个错误。
    (3)箭头函数不可以使用arguments对象,该对象在函数体内不存在(可以使用...rest替代);

    8.let和var?
    (1)声明后未赋值,表现相同。
    (2)使用未声明的变量,表现不同,let报错
    (3)声明同一个变量时,let报错,
    (4)变量作用域,let表现不同,let内部和外部不是同一个变量

    相关文章

      网友评论

          本文标题:记录这段时间的前端面试笔记

          本文链接:https://www.haomeiwen.com/subject/nnvpsxtx.html