前端——笔试

1.this

  • 定义:this就是一个对象,不同情况下指向不同
  • 指向
    • 对象调用,指向该对象
    • 直接调用函数,this指向全局window对象
    • New方式,this指向新创建的对象
    • 箭头函数,没有单独的this,与声明所在上下文相同。
  • 改变
    • 方式:call apply bind
    • 对比
      • 相同点
        • 功能都是可以改变this指向,第一个参数是this指向对象
        • 传参是采用后续传参的方式
      • 不同点
        • 传参:call是单个传入参数,apply是传入一个数组,bind是传入数组和单个参数都可以。
        • 执行:call和apply是立即执行,而bind是返回一个函数,想调用再执行。

2.前端新技术

3.流行框架及区别

  • Vue React Angular
  • 区别
    • 组件:都是基于组件,组件获取输入,内部计算,UI模板输出,提高代码可复用性
    • Angular依赖于TypeScript;React 专注于使用Javascript ES6; Vue则使用Javascript ES5和ES6。
    • 模板:Angular使用特殊的Angular语言; React模板是JSX;Vue的模板、脚本、样式在一个文件中 .vue后缀。
    • 数据绑定:Angular、Vue是双向数据绑定,React是单向数据绑定

5.Webpack理解

  • webpack 是一个模块打包器(module bundler),处理模块间的依赖关系,并进行打包。
  • webpack基本功能
    • 依赖管理:方便引用第三方模块,让模块更容易复用、避免全局注入导致的冲突、避免重复加载或者加载不必要的模块
    • 合并代码:把各个分散的模块集中打包成大文件,减少HTTP的链接的请求次数,配合uglify.js可以减少、优化代码的体积
    • 各种插件:babel把ES6+转化为ES5-,eslint可以检查编译时的各种错误

6.ES6新增

  • let const
  • 函数扩展:箭头函数和rest参数
  • class类的概念
  • 代理proxy
  • 新增数据类型
    • symbol:声明独一无二的值
    • Set:类似数组,成员唯一,无重复元素
    • Map:类似对象,键不局限于字符串,可以是任意类型
  • 字符串扩展
    • repeat()函数,平铺指定字符串指定次数
    • 模板字符串:``,不使用+号拼接
  • 模块:import导入,export导出
  • promise对象:异步编程的解决方案,解决回到地狱问题

7.标签语义化理解

  • HTML5 语义化标签是指正确的标签包含了正确的内容结构良好便于阅读,比如 nav 表示导航条,类似的还有 article、header、footer 等等标签。

8.异步编程

  • 回调函数
  • promise
  • async和await

9.Js基本数据类型

  • Number
  • String
  • Boolean
  • Null
  • Undefined
  • Symbol

10.Js内置对象

  • Math
  • Date
  • Array
  • String
  • RegExp

11.cookies,localStorage,sessionStorage区别

  • Cookie:cookie 数据始终在同源的 http 请求中携带,即 cookie 在浏览器和服务器间来回传递。而 sessionStorage 和 localStorage 不会自动把数据发给服务器,仅在本地保存。
  • cookie 数据还有路径(path)的概念,可以限制 cookie 只属于某个路径下,存储的大小很小只有 4K 左右,可以在浏览器和服务器端来回传递,存储容量小
  • sessionStorage:仅在当前浏览器窗口关闭前有效,自然也就不可能持久保持, localStorage:始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据;cookie 只在设置的 cookie 过期时间之前一直有效,即使窗口或浏览器关闭。
  • localStorage:localStorage 在所有同源窗口中都是共享的;cookie 也是在所有同源窗口中都是共享的。

12.原型,原型链,特点

  • 原型:每一个构造函数都拥有一个属性(prototype),指向一个对象,指向这个对象的属性和方法,可以被所有该函数的实例所共享。
  • 原型链:对象查找属性,首先会在当前对象中进行查找, 如果找不到则会去对象的原型对象中去查找, 如果找不到则去原型对象的原型对象中去查找, 依次类推,这样形成了一个链式结构,为原型链。
  • 特点:JavaScript 对象是通过引用来传递的,我们创建的每个新对象实体中并没有一份属于自己的原型副本。当我们修改原型时,与之相关的对象也会继承这一改变。 当我们需要一个属性时,JavaScript 引擎会先看当前对象中是否有这个属性,如果没有的话,就会查找它的 prototype 对象是否有这个属性,如此递推下去,一直检索到有 object 内建对象

13.HTTP状态码

  • 200:成功
  • 204:成功,但是返回的响应报文中不包含实体的主体部分,无资源
  • 206:客户端进行范围请求
  • 301:永久重定向
  • 302:临时重定向
  • 303:引导向新的URI
  • 304:未修改
  • 307:临时重定向
  • 400:语法错误
  • 401:需要HTTP认证
  • 403:拒绝访问
  • 404:未找到
  • 500:服务器错误
  • 503:服务器超载

14.HTTP请求方法

  • POST:传输实体主体
  • GET:获取资源,请求访问已经被URI识别的资源
  • PUT:传输文件
  • DELETE:删除文件,
  • OPTIONS:询问支持的方法,查询针对请求URI指定的资源支持的方法
  • TRACK:追踪路径,将之前的请求通信回环给客户端的方法
  • HEAD:获得报文首部,不返回报文主体部分
  • CONNECT:要求在与代理服务器通信时建立隧道,实现用隧道协议进行TCP通信。
  • TCL和SSL协议把通信内容加密后经网络隧道传输。

15.事件委托

  • 事件委托指的是,不在事件的发生地(直接 dom)上设置监听函数,而是在其父元素上设置监听函数,通过事件冒泡,父元素可以监听到子元素上事件的触发,通过判断事件发生元素 DOM 的类型,来做出不同的响应。

16.Ajax原理

  • ①在用户和服务器之间加了—个中间层(AJAX引擎)
  • ②通过XMLHttpRequest对象来向服务器发异步请求,从服务器获得数据
  • ③用javascript来操作DOM而更新页面。使用户操作与服务器响应异步化。
    这其中最关键的一步就是从服务器获得请求数据

17.Flex

  • Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。 布局的传统解决方案,基于盒状模型,依赖 display 属性 + position 属性 + float 属性。

18.隐藏元素方法

  • opacity=0,该元素隐藏起来了,但不会改变页面布局,该元素已经绑定的事件也能触发
  • visibility=hidden,该元素隐藏起来了,但不会改变页面布局,但是不会触发该元素已经绑定的事件
  • display=none,把元素隐藏起来,并且会改变页面布局,可以理解成在页面中把该元素删除掉一样。

19.display的值及作用

  • block:块级元素
  • inline:行内元素
  • inline-block: 行内块元素
  • flex:弹性布局
  • none:隐藏元素

20.为什么要初始化CSS样式

  • 因为浏览器的兼容问题,不同浏览器对有些标签的默认值也是不同的,所以,如果没对CSS初始化,那么往往就很容易出现浏览器之间的页面显示差异的问题
  • 初始化CSS样式主要是提高编码质量,如果不初始化整个页面,做完的东西是会很糟糕,重复的CSS样式很多
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值