前端面试(一)

前端面试的门槛越来越高,前端的知识点多而零散,前端框架层出不穷,怎么做才能全面的复习知识,怎么做才能掌握前端技能,怎么做才能更好的通过面试?
  1. 大部分公司(创业公司)都趋向于招一个牛逼的前端而不是三四个平庸的前端
    性能优化、ES6必问
  2. 招聘要求上清一色的要求有一门后端语言的经验,但似乎面试的时候并没有一个公司问过我后端语言方面的东西
  3. 招聘要求写的和面试相关性并不是很高
  4. 招人的要求越来越高,不要轻易离职,特别是裸辞

谈谈对前端安全的理解,有什么,怎么防范

1. 前端安全问题主要有XSS、CSRF攻击。

XSS:跨站脚本攻击

它允许用户将恶意代码植入到提供给其他用户使用的页面中,可以简单的理解为一种javascript代码注入。

XSS的防御措施:

过滤转义输入输出
避免使用eval、new Function等执行字符串的方法,除非确定字符串和用户输入无关
使用cookie的httpOnly属性,加上了这个属性的cookie字段,js是无法进行读写的
使用innerHTML、document.write的时候,如果数据是用户输入的,那么需要对象关键字符进行过滤与转义
CSRF:跨站请求伪造
其实就是网站中的一些提交行为,被黑客利用,在你访问黑客的网站的时候进行操作,会被操作到其他网站上

CSRF防御措施:

检测http referer是否是同域名
避免登录的session长时间存储在客户端中
关键请求使用验证码或者token机制

其他的一些攻击方法还有HTTP劫持、界面操作劫持

2. 使用箭头函数需要注意的地方

当要求动态上下文的时候,你就不能使用箭头函数,比如:定义方法,用构造器创建对象,处理时间时用 this 获取目标。

3. webpack.load的原理

loaders是你用在app源码上的转换元件。他们是用node.js运行的,把源文件作为参数,返回新的资源的函数。

4. ES6 let、const

let是更完美的var
  • let声明的变量拥有块级作用域,let声明仍然保留了提升的特性,但不会盲目提升。
  • let声明的全局变量不是全局对象的属性。不可以通过window.变量名的方式访问
    形如for (let x…)的循环在每次迭代时都为x创建新的绑定
  • let声明的变量直到控制流到达该变量被定义的代码行时才会被装载,所以在到达之前使用该变量会触发错误。
const

定义常量值,不可以重新赋值,但是如果值是一个对象,可以改变对象里的属性值

const OBJ = {"a":1, "b":2}; 
OBJ.a = 3;
OBJ = {};// 重新赋值,报错! console.log(OBJ.a); // 3

5. CSS3 box-sizing的作用

设置CSS盒模型为标准模型或IE模型。标准模型的宽度只包括content,二IE模型包括border和padding。

box-sizing属性可以为三个值之一:

  • content-box,默认值,border和padding不计算入width之内
  • padding-box,padding计算入width内
  • border-box,border和padding计算入width之内

你可能感兴趣的:(前端面试(一))