前端面试问题总结-第四篇

综述:对于2018年3/4月份的面试总结,面试中的问题是对自己平时工作内容的思考和积累,一定要平时思考,面试前总结,且不可临时抱佛脚。大公司对于基础知识,网络安全,数据结构和算法,后端基础知识有较高的要求,自己要有自己的认识和思考。并尽可能将其应用到工作中,不断提高自己的能力。

1.阻止冒泡和阻止默认时间的js代码?

2.求最小公倍数,最大公约数的js算法实现?

3.css中的尺寸单位有哪些?px pt em rem cm ?

4.递归实现N!算法,怎样防止栈溢出?

5.数据双向绑定的原理是什么?使用代码实现?在vue中有关于object.defineProperty()的应用,这就是数据双向绑定的核心思想;在vue中也是这样实现的;

6.jq中扩展方法的两种方法的实现?及其实现思路?

7.jq源码解读?和vue源码进行比对?

8.html中的viewport和meta具体有哪些作用?显安的代码中为什么会出现那么多的meta标签,具体作用是什么?

9.现在的稍微高级一点的前端不在进行页面的开发,而是进行页面组件的开发,和框架的开发?要尽快形成一种理解框架,理解组件的能力,当代码高度耦合时,怎样来理清楚思路十分关键;

10、var a="test"; var b=new String("test");之间的区别?感觉一些js的基础知识非常的不扎实,没有透彻理解语言的深层次的含义。要转变学习方法了。

//前者是定义一个普通的js字符串变量,后者是创建一个成员,可以对这个成员进行扩展;
a.sex=1;
alert(a.sex);//输出未定义,因为不是成员,没有这属性
b=new String('123');
b.sex=1;
alert(b.sex);  //输出1,成员的属性

11.编写组件和框架代码的能力是在一点一滴中积累的,其中对于继承和this比较重要?

12.在hybrid APP中涉及到前端和安卓的合作,怎样让两者之间能够毫无阻碍的进行语言间的交流十分的重要,weex前端框架项目中,安卓负责对页面的元素进行解析并展示到页面上。实际的核心思想是进行多个json文件、js文件的切换; 当在new元素的时候,是利用玉军构建的ltsdk来进行构建的。这个时候就和安卓之间没有啥关系了;

页面布局由安卓来布局,后来的操作全部由前端来解决;

13.对于对象中的键值对格式的数据进行获取的方法是通过类似数组的下标方式来获取值的。如图所示;和框架相比,自己的实在需要学习的东西太多了;js的基础内容和深层次的东西还没有学习到;

14.在调试手机端的页面时,由于没有f12调试工具,非常需要和微信小程序一样的调试工具,将下属代码加入到页面中即可;非常的方便;特别是在做单页面应用的时候,非常的好,比如vue页面。如果是多个页面,则直接放到公共的js文件即可;

// 加载控制台,将微信小程序的手机端调试工具加入到自己的页面的一段代码,十分的好
export const loadScript = (url, callback) => {
const script = document.createElement('script')
script.onload = () => callback()
script.src = url
   document.body.appendChild(script)
}

loadScript(
'https://res.wx.qq.com/mmbizwap/zh_CN/htmledition/js/vconsole/3.0.0/vconsole.min.js',
() => {
// eslint-disable-next-line
new VConsole(); //微信那边定义的一个对象,可以获取一系列的调试信息
})

15.es6中的promise的实现原理是什么?牵扯到状态机的问题,一定要有所认识,在16种常见的设计模式中,状态模式中就牵扯到状态机的概念?

猜你喜欢

转载自blog.csdn.net/m0_37631322/article/details/82670521