2019前端面试常问

面试项目简介:

Vue:hash(散列算法)DOM Diff算法(React)
Node.js
https://www.cnblogs.com/DCL1314/p/7903085.html
路由传参:
https://www.jianshu.com/p/4debd60d3187#!/xh
一、直接在路由中写参数
二、通过prams传参
三、通过query传参
Vue数据双向绑定:
https://www.cnblogs.com/alongup/p/9022180.html
如果要实现数据绑定,需要将数据设置对象的set,get方法属性,这样当数据发生变化的时候,会执行set函数,在set函数中,重新渲染页面。
vue数据双向绑定是通过数据劫持结合发布者-订阅者模式的方式来实现的.1)数据劫持、vue是通过Object.defineProperty()来实现数据劫持,其中会有getter()和setter方法;当读取属性值时,就会触发getter()方法,在view中如果数据发生了变化,就会通
过Object.defineProperty( )对属性设置一个setter函数,当数据改变了就会来触发这个函数;

4、什么是Promise?
Promise可以帮助我们更好地处理异步操作,resolve(请求成功回调函数)和reject(请求失败回调函数)

面试必问:

// vue中可以给组件添加生命周期函数(钩子函数),分别在组件的各个周期阶段执行
// 当组件创建完毕并渲染完毕时调用,可以通过this操作当前组件对象, 当组件创建完毕时调用(未渲染),当组件被销毁时调用,当data发生变化时导致组件需要重新渲染时调用

1.Doctype作用?标准模式与兼容模式各有什么区别?

(1)<!DOCTYPE>声明位于位于HTML文档中的第一行,处于 <html> 标签之前。告知浏览器的解析器用什么文档标准解析这个文档。
	DOCTYPE不存在或格式不正确会导致文档以兼容模式呈现。
(2)标准模式的排版 和JS运作模式都是以该浏览器支持的最高标准运行。在兼容模式中,页面以宽松的向后兼容的方式显示,模拟老式浏览器的行为以防止站点无法工作。

3.页面导入样式时,使用link和@import有什么区别?

(1)link属于XHTML标签,除了加载CSS外,还能用于定义RSS, 定义rel连接属性等作用;而@import是CSS提供的,只能用于加载CSS;
(2)页面被加载的时,link会同时被加载,而@import引用的CSS会等到页面被加载完再加载;
(3)import是CSS2.1 提出的,只在IE5以上才能被识别,而link是XHTML标签,无兼容问题;
6.Label的作用是什么?是怎么用的?

label标签来定义表单控制间的关系,当用户选择该标签时,浏览器会自动将焦点转到和标签相关的表单控件上。

10.介绍一下标准的CSS的盒子模型?低版本IE的盒子模型有什么不同的?

(1)有两种, IE 盒子模型、W3C 盒子模型;
(2)盒模型: 内容(content)、填充(padding)、边界(margin)、 边框(border);
(3)区  别: IE的content部分把 border 和 padding计算了进去;

Es6新语法:https://www.jianshu.com/p/ac1787f6c50f
https://www.jianshu.com/p/87008f4f8513

  1. 不一样的变量声明:const和let
    ES6推荐使用let声明局部变量,相比之前的var(无论声明在何处,都会被视为声明在函数的最顶部)
    let和var声明的区别:
    let表示声明变量,而const表示声明常量,两者都为块级作用域;const 声明的变量都会被认为是常量,意思就是它的值被设置完成后就不能再修改了:
    如果const的是一个对象,对象所包含的值是可以被修改的。抽象一点儿说,就是对象所指向的地址没有变就行:
    2.模板字符串
    在ES6之前,我们往往这么处理模板字符串:
    通过“\”和“+”来构建模板
  2. 基本的字符串格式化。将表达式嵌入字符串中进行拼接。用${}来界定;
  3. ES6反引号(``)直接搞定;

3.箭头函数(Arrow Functions)
ES6 中,箭头函数就是函数的一种简写形式,使用括号包裹参数,跟随一个 =>,紧接着是函数体;
箭头函数最直观的三个特点。
• 不需要 function 关键字来创建函数
• 省略 return 关键字
• 继承当前上下文的 this 关键字
细节:当你的函数有且仅有一个参数的时候,是可以省略掉括号的。当你函数返回有且仅有一个表达式的时候可以省略{} 和 return;
4. 函数的参数默认值
5.Spread / Rest 操作符
Spread / Rest 操作符指的是 …,具体是 Spread 还是 Rest 需要看上下文语境。
当被用于迭代器中时,它是一个 Spread 操作符:
当被用于函数传参时,是一个 Rest 操作符
6.二进制和八进制字面量
ES6 支持二进制和八进制的字面量,通过在数字前面添加 0o 或者0O 即可将其转换为八进制值:
7.对象和数组解构
8.对象超类
ES6 允许在对象中使用 super 方法:
9.for…of 和 for…in
for…of 用于遍历一个迭代器,如数组:
for…in 用来遍历对象中的属性
10.ES6中的类
ES6 中支持 class 语法,不过,ES6的class不是新的对象继承模型,它只是原型链的语法糖表现形式。
H5新特性:https://www.jianshu.com/p/cddb84a31bfa
新的特殊内容
• 增加的标签及描述

-----------定义页面独立的内容区域。
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值