问题总结

为什么要用felx?

布局的传统解决方案,基于盒状模型,依赖display属性 +position属性 +float属性。它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现。

原生js绑定事件的方式?

dom.onclick=function(){}

dom['onclick']=function(){}

dom.addEventListener=function(){}

swiper在2.x和3.x之间的区别和各自的优缺点?



路由的实现原理?

首先他的实现原理是Ajax,如果把写好的页面直接在本地打开(不起定动服务),浏览器会报 xml.requestHTTP的错误,那么这就证明,他的实现,用的是Ajax。

为什么要用fetch,fetch相对于Ajax有什么优势?


XMLHttpRequest 是一个设计粗糙的 API,不符合关注分离(Separation of Concerns)的原则,配置和调用方式非常混乱,而且基于事件的异步模型写起来也没有现代的 Promise,generator/yield,async/await 友好。

Fetch 的出现就是为了解决 XHR 的问题

使用 XHR 发送一个 json 请求一般是这样:

var xhr = new XMLHttpRequest();

xhr.open('GET', url);

xhr.responseType = 'json';

xhr.onload = function() {

console.log(xhr.response);

};

xhr.onerror = function() {

console.log("Oops, error");

};

xhr.send();

使用 Fetch 后,顿时看起来好一点

fetch(url).then(function(response) {

return response.json();

}).then(function(data) {

console.log(data);

}).catch(function(e) {

console.log("Oops, error");

});

使用 ES6 的箭头函数后:

fetch(url).then(response => response.json())

.then(data => console.log(data))

.catch(e => console.log("Oops, error", e))

Fetch 优点主要有:
        语法简洁,更加语义化 

         基于标准 Promise 实现,支持 async/await

         同构方便,使用isomorphic-fetch

具体参考:fetch分析


什么是Viewport?

一、viewport的概念

通俗的讲,移动设备上的viewport就是设备的屏幕上能用来显示我们的网页的那一块区域,在具体一点,就是浏览器上(也可能是一个app中的webview)用来显示网页的那部分区域,但viewport又不局限于浏览器可视区域的大小,它可能比浏览器的可视区域要大,也可能比浏览器的可视区域要小。在默认情况下,一般来讲,移动设备上的viewport都是要大于浏览器可视区域的,这是因为考虑到移动设备的分辨率相对于桌面电脑来说都比较小,所以为了能在移动设备上正常显示那些传统的为桌面浏览器设计的网站,移动设备上的浏览器都会把自己默认的viewport设为980px或1024px(也可能是其它值,这个是由设备自己决定的),但带来的后果就是浏览器会出现横向滚动条,因为浏览器可视区域的宽度是比这个默认的viewport的宽度要小的。

具体讲解见:移动前端开发之viewport的深入理解


库和框架的区别?

(1)从结构上说,框架内部是高内聚的,而类库内部则是相对松散的。

(2)框架封装了处理流程的控制逻辑,而类库几乎不涉及任何处理流程和控制逻辑。

正是由于框架对处理流程的控制逻辑进行了封装,才使得框架成为一个应用的骨架。框架中的处理流程和控制逻辑需要经过精心的设计,因为所有使用了该框架的应用程序都会复用该设计。

(3)框架具有IOC(控制反转)能力,而类库没有。

IOC,即俗称的好莱坞模式(Don’t call us, we will call you)。对于类库中的元素来说,通常都是由我们的应用来调用它;而框架具有这种能力――在适当的时候调用我们应用中的逻辑。这种能力是通过框架扩展点(或称为“插槽”)来做到的――具体的应用通过扩展点注入自己的逻辑,而在适当的时候,框架会调用这个扩展点中已注册的逻辑。实际上,.NET中的事件(event)发布、预定机制就是IOC的一个代表性例子。

(4)框架专注于特定领域,而类库却是更通用的。

框架着力于一个特定领域的解决方案的完整表达,而类库几乎不针对任何特定领域。比如,本书中提到的通信框架只适用于需要在TCP/UDP基础上直接构建通信的应用程序,而像正则表达式这样的类库却可以使用在各种不同的应用中。

(5)框架通常建立在众多类库的基础之上,而类库一般不会依赖于某框架。


移动端布局的问题?

line-height: 在移动端会有2px的误差

border-radius:在移动端的样式不一样

Iscroll中的问题?

在iscroll中input标签无法获取焦点(这个要通过修改源码才能脱坑)

iscroll在页面内容没有加载完成的情况下无法计算要滚动的高度,所以无法滚动,我们可以通过js判断页面元素是否加载完成来,避免这个问题。(例如,图片的onload事件,或者判断图片的高度是否存在)

iscroll会默认禁止一些事件,(例如:click,mousewheel等事件,我们在使用的时候配置一下就好了,click:true,mousewheel:true)

var a=[1,2,3] a[5]=5  a的长度是6,之后a['v']=4, a的长度还是6


scss和sass的区别?

文件扩展名不同,Sass 是以“.sass”后缀为扩展名,而 SCSS 是以“.scss”后缀为扩展名

语法书写方式不同,Sass 是以严格的缩进式语法规则来书写,不带大括号({})和分号(;),而 SCSS 的语法书写和我们的 CSS 语法书写方式非常类似。

sass和less的区别-->详见:sass/scss和less的区别

使用vue遇到的小问题?

vue中使用icon图标的时候,写两个{}是不会解析的,要写三个{},也就是icon要当做js来解析

你可能感兴趣的:(问题总结)