React面试知识点扩展

h5前端常见面试题

2017-07-19  本文已影响830人  blank的小粉er

1.请说一下vue的生命周期

2.vue是如何实现双向绑定的?

vue.js 则是采用数据劫持的方式,通过Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调

主要步骤:

1、实现一个数据监听器Observer,能够对数据对象的所有属性进行监听,如有变动可拿到最新值并通知订阅者
2、实现一个指令解析器Compile,对每个元素节点的指令进行扫描和解析,根据指令模板替换数据,以及绑定相应的更新函数
3、实现一个Watcher,作为连接Observer和Compile的桥梁,能够订阅并收到每个属性变动的通知,执行指令绑定的相应回调函数,从而更新视图

3.什么是 Promise

所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。从语法上说,Promise 是一个对象,从它可以获取异步操作的消息。Promise 提供统一的 API,各种异步操作都可以用同样的方法进行处理。

Promise对象有以下两个特点。
(1)对象的状态不受外界影响。Promise对象代表一个异步操作,有三种状态:Pending(进行中)、Resolved(已完成,又称 Fulfilled)和Rejected(已失败)。只有异步操作的结果,可以决定当前是哪一种状态,任何其他操作都无法改变这个状态。这也是Promise这个名字的由来,它的英语意思就是“承诺”,表示其他手段无法改变。
(2)一旦状态改变,就不会再变,任何时候都可以得到这个结果。Promise对象的状态改变,只有两种可能:从Pending变为Resolved和从Pending变为Rejected。只要这两种情况发生,状态就凝固了,不会再变了,会一直保持这个结果。就算改变已经发生了,你再对Promise对象添加回调函数,也会立即得到这个结果。这与事件(Event)完全不同,事件的特点是,如果你错过了它,再去监听,是得不到结果的。
有了Promise对象,就可以将异步操作以同步操作的流程表达出来,避免了层层嵌套的回调函数。此外,Promise对象提供统一的接口,使得控制异步操作更加容易。

4.ES6新增的数组方法

https://blog.csdn.net/wbiokr/article/details/65939582

5.cookie,localStorage和sessionStorage三者之间的区别

6.什么是原型链?

Javascript是面向对象的,每个实例对象都有一个proto属性,该属性指向它原型对象,这个实例对象的构造函数有一个原型属性prototype,与实例的proto属性指向同一个对象。当一个对象在查找一个属性的时候,自身没有就会根据proto像它的原型进行查找,如果都没有,则向它的原型的原型继续查找,直到查到object.prototype.proto为null,这样也就形成了原型链。

7.说说你对this的理解

8.get跟post的区别

9.请说出你关于闭包函数的理解以及闭包函数带来的影响

10.onload跟ready的区别

1.$(document).ready()

执行时机:等DOM树加载完毕后就能执行

2.window.onload

执行时机:等网页中所有的资源加载完毕后(包括图片、flash、音频、视频),才能执行

11.'data-'属性的作用是什么?如何获取‘data-’属性的值?

data-属性是h5中用来自定义属性,通过dataset属性获取。
不是所有浏览器都支持,不支持用getAttribute

12.image和canvas在处理图片的时候有什么区别?

image是通过对象的形式描述图片的
canvas是通过专门的API讲图片绘制在画布上的

13.node的常用模块

http fs path url buffer process

14.了解nodejs吗?请简要描述

nodejs是一款基于Chrome V8 引擎的Javascript运行环境。Nodejs使用了事件驱动、非阻塞式I/O的模型,使其轻量又高效。

上一篇下一篇

猜你喜欢

热点阅读