,汇总

1、 原生ajax实现步骤,ajax怎么实现跨域?

第一步:获得XMLHttpRequest对象

第二步:设置状态监听函数

第三步:open一个连接,true是异步请求

第四步:send一个请求,可以发送一个对象和字符串,不需要传递数据发送null

第五步:在监听函数中,判断readyState=4&&status=200表示请求成功

第六步:使用responseText、responseXML接受响应数据,并使用原生JS操作DOM进行显示。                                                           ajax解决跨域问题的方法 1、后台PHP进行设置2、使用src属性+JSONP实现跨域3、JQuery的ajax实现JSONP

2、 怎么将获取的数据渲染到列表?

第一种:比较常见的就是直接把字符串拼接,然后插入到元素中;第二种:与第一种大致,先创建对象,然后添加到外层对象中;第三种:利用模版引擎,如template.js等;

3、 移动端性能优化?

加载优化:1、减少HTTP请求(合并CSS、JavaScript合并小图片,使用雪碧图);2、缓存;使用缓存可以减少向服务器的请求数,节省加载时间,所以所有静态资源都要在服务器端设置缓存3、压缩HTML、CSS、JavaScript 4、使用首屏加载首 5、按需加载;将不影响首屏的资源和当前屏幕资源不用的资源放到用户需要时才加载,可以大大提升重要资源的显示速度和降低总体流量。(LazyLoad  滚屏加载 通过Media Query加载)6、预加载;等

4、 浏览器有哪些兼容性问题,举例说明?

浏览器的兼容性问题是开发人员经常会遇到的问题,它是由于不同浏览器的不同对代码的解析不同,而产生的在页面上显示的效果不同:第一类:块状元素float后,有添加了横向的margin,在IE6下比设置的值要大(属于双倍浮动的bug);解决方案:给float标签添加display:inline,将其转换为行内元素;第二类:表单元素行高不一致;解决方案:给表单元素添加float:left(左浮动);或者是vertical-align:middle;(垂直对齐方式:居中;第三类:设置较小高度的容器(小于10px),在IE6下不识别小于10px的高度;解决方案:给容器添加overflow:hidden;第四类:当在a标签中嵌套img标签时,在某些浏览器中img会有蓝色边框;

解决方案:给img添加border:0;或者是border:none;等等

5、 http/https的区别?

HTTPS和HTTP的区别:

https协议需要到ca申请证书,一般免费证书很少,需要交费;

http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议;

http和https使用的是完全不同的连接方式用的端口也不一样,前者是80,后者是443;

http的连接很简单,是无状态的;

HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议 要比http协议安全;

6、 px/em/re的区别?

px实际上就是像素,用PX设置字体大小时,比较稳定和精确。但是这种方法存在一个问题,当用户在浏览器中浏览我们制作的Web页面时,如果改变了浏览器的缩放,这时会使用我们的Web页面布局被打破。这样对于那些关心自己网站可用性的用户来说,就是一个大问题了。因此,这时就提出了使用“em”来定义Web页面的字体。

em:em就是根据基准来缩放字体的大小。EM实质是一个相对值,而非具体的数值。这种技术需要一个参考点,一般都是以的“font-size”为基准。如WordPress官方主题Twenntytwelve的基准就是14px=1em。

另外,em是相对于父元素的属性而计算的,如果想计算px和em之间的换算,这个网站不错,输入数据就可以px和em相互计算。狠击这里:px和em换算

rem:rem是相对于其父元素来设置字体大小的,这样就会存在一个问题,进行任何元素设置,都有可能需要知道他父元素的大小。而Rem是相对于根元素,这样就意味着,我们只需要在根元素确定一个参考值。

7、 常见几种页面布局方式有哪些?

第一:固定布局:宽度,高度固定,页面被一个固定网页包裹,容器不能移动,页面的宽高不随页面的变化而变化,这种布局大家比较熟悉,这种方式一度成为页面布局的主流方式,这样布局设计简单,更容易定义,但是由于屏幕尺寸的不同,特别是移动端各个设备的不同,这种布局在灵活性方式可用度不高;二流式布局:以百分比为主要形式,让屏幕自适应,这种布局方式定义灵活,能够根据屏幕的情况变化,但是这种方式设计的效果不太容易控制,一般移动端结合rem用的比较多,pc端用的不是非常多;三 弹性布局:移动端用rem,弹性布局相对前两种出现的比较晚些,但是弹性布局功能还是很强大的,布局也非常方便,但是此布局形式在pc端并不推荐使用,ie9以下浏览器均不支持;

8、 cookie/localstorage/sessionstorage的区别?

共同点:都是保存在浏览器端、且同源的

区别:

1、cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递,而sessionStorage和localStorage不会自动把数据发送给服务器,仅在本地保存。cookie数据还有路径(path)的概念,可以限制cookie只属于某个路径下

2、存储大小限制也不同,cookie数据不能超过4K,同时因为每次http请求都会携带cookie、所以cookie只适合保存很小的数据,如会话标识。sessionStorage和localStorage虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大

3、数据有效期不同,sessionStorage:仅在当前浏览器窗口关闭之前有效;localStorage:始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据;cookie:只在设置的cookie过期时间之前有效,即使窗口关闭或浏览器关闭

4、作用域不同,sessionStorage不在不同的浏览器窗口中共享,即使是同一个页面;localstorage在所有同源窗口中都是共享的;cookie也是在所有同源窗口中都是共享的

5、web Storage支持事件通知机制,可以将数据更新的通知发送给监听者

6、web Storage的api接口使用更方便

9、 什么是闭包?

(1) 闭包是指有权访问另一个函数作用域中的变量的函数。(这与当函数被调用是会创建一个执行函数和相应的作用域链。作用域链本质上是指向变量对象的指针列表,只引用,不实际包含变量对象)。作用域链中,函数内部变量对象优先级最高,然后,由最近的外部函数依次向后排。

(2) 封闭性:外界无法访问闭包内部的数据,如果在闭包内声明变量,外界是无法访问的,除非闭包主动向外界提供访问接口; 持久性:一般的函数,调用完毕之后,系统自动注销函数,而对于闭包来说,在外部函数被调用之后,闭包结构依然保存在。

(3) 缺点:由于闭包携带包含它函数的作用域,因此比其他函数占用的内存更多。

优点:减少创建全局变量减少传递给函数的参数量封闭性

(4)闭包可以读取函数内部的局部变量;这些变量的值始终保存在内存中;

函数执行后,函数执行环境的作用域会被销毁,但是活动对象不会销毁,只有将匿名函数销毁后才可以销毁活动对象。可以将保存函数的变量赋值为null,将可销毁匿名函数作用域。

常见创建闭包方法:在一个函数内部创建另一个函数。

10、 去除前后空格的方法(兼容所有浏览器)?

function Trim(str)

 {

  return str.replace(/(^\s*)|(\s*$)/g, "");

}                                                                              

 如果使用jQuery直接使用$.trim(str)方法即可,str表示要去掉前后所有空格的字符串。

11、 作用域链、作用域?

全局作用域:最外层函数定义的变量拥有全局作用域,即对任何内部函数来说,都是可以访问的:局部作用域:和全局作用域相反,局部作用域一般只在固定的代码片段内可访问到,而对于函数外部是无法访问的,最常见的例如函数内部;作用域链:JavaScript中每个函数都有一个执行环境,当代码在一个环境中执行时,就会创建变量对象的作用域链。内部环境可以通过作用域链访问所在的外部环境,但是外部环境不能访问内部环境的任何变量和函数。作用域链用途:保证对执行环境有权访问的变量和函数的有序访问。如果这个环境是函数,则将其活动对象作为变量对象。

作用域链的前端,始终都是当期那执行环境的代码所在的变量对象。作用域链中的下一个变量对象来自包含(外部)环境,而在再下一个变量对象则是来自下一个包含环境,这样一直延续到全局执行环境。

全局执行环境的变量对象始终都是作用域链中的最后一个对象。

12、 post与get的区别?

1. get是从服务器上获取数据,post是向服务器传送数据。

get 和 post只是一种传递数据的方式,get也可以把数据传到服务器,他们的本质都是发送请求和接收结果。只是组织格式和数据量上面有差别,http协议里面有介绍

  2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。

因为get设计成传输小数据,而且最好是不修改服务器的数据,所以浏览器一般都在地址栏里面可以看到,但post一般都用来传递大数据,或比较隐私的数据,所以在地址栏看不到,能不能看到不是协议规定,是浏览器规定的。

3. 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。

没明白,怎么获得变量和你的服务器有关,和get或post无关,服务器都对这些请求做了封装

  4. get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。

post基本没有限制,我想大家都上传过文件,都是用post方式的。只不过要修改form里面的那个type参数

  5. get安全性非常低,post安全性较高。

如果没有加密,他们安全级别都是一样的,随便一个监听器都可以把所有的数据监听到。

13、 DOM怎么添加,一处,移动,复制,创建节点?

(1)创建新节点

 createDocumentFragment()    //创建一个DOM片段

 createElement()   //创建一个具体的元素

 createTextNode()   //创建一个文本节点

(2)添加、移除、替换、插入

      appendChild()

      removeChild()

      replaceChild()

      insertBefore()

(3)查找

      getElementsByTagName()    //通过标签名称

      getElementsByName()    //通过元素的Name属性的值

      getElementById()    //通过元素Id,唯一性

 

14、 简述ajax同步和异步的区别?

同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。

用户填写所有信息后,提交给服务器,等待服务器的回应(检验数据),是一次性的。信息错误又要重新填写;

异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。

 

当用户填写完一条信息后,该信息会自动向服务器提交,然后服务器响应客户端,在此过程中,用户依然在填写表格的信息,即向服务器请求多次,节省了用户的时间,提高了用户的体验

15、 htm5的新增属性?

新增属性:

16、get和post请求的区别?

1. get是从服务器上获取数据,post是向服务器传送数据。

2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。

3. 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。

4. get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。

5. get安全性非常低,post安全性较高。但是执行效率却比Post方法好。

17、 面试问到闭包?

闭包可以使用,但是不能在项目中无限制使用,

18、 什么是响应式设计?

它是关于网页制作的过程中让不同的设备有不同的尺寸和不同的功能。响应式设计是让所有的人能在这些设备上让网站运行正常Bootstrap:栅格化布局/媒体查询/rem/百分比、弹性布局、自适应布局

19、 Vue开发,结合webpack打包完文件会很大,怎么解决这个问题?

1.webpack代码拆分:code-spliting

2.提取公共(如提取css,js)

3.预渲染:使用prerender-spa-plugin插件

4.后台————开启压缩,gzip (会很有用)

5.异步加载组件:require.ensure

20、 vue的双向绑定原理?

VueJS 使用 ES5 提供的 Object.defineProperty() 方法,监控对数据的操作,从而可以自动触发数据同步。并且,由于是在不同的数据上触发同步,可以精确的将变更发送给绑定的视图,而不是对所有的数据都执行一次检测。

21、 数组去重?

    1.构建一个新的数组存放结果

    2.for循环中每次从原数组中取出一个元素,用这个元素循环与结果数组对比

    3.若结果数组中没有该元素,则存到结果数组中

(function() { 

    'use strict';

     let arr = [1, '1', 2, '2', 3, '3', 3, '3', 2, '2', 1, '1']; 

    let new_set = new Set(arr);

     let new_arr = Array.from(new_set); 

    console.log(new_arr);

 })();

22、 Vue如果IE11里出现链接无法跳转的情况你怎么解决?

在IE11上无法用router-link跳转,主要是当url的hash change的时候浏览器没有做出相应。里面主要是做了一个兼容。

23、 Vue里面router-link在电脑上有用,在安卓上没反应怎么解决?

Vue路由在Android机上有问题,babel问题,安装babel polypill 插件解决。

24、 SEO优化的好处?

1、提高页面加载速度。 能用css解决的不用背景图片,背景图片也尽量压缩大小,可以几个icons放在一个图片上,采用css精灵(css sprite),使用background-position找到需要的图片位置。减少HTTP请求数,提高网页加载速度。

2、 结构、表现和行为的分离。另外一个重要的拖慢网页加载速度的原因就是将css和JS都堆积在HTML页面上,每次看到有人直接在页面上编写CSS和JS我都很痛心疾首。通过外链的方式能大大加快网页加载速度的,css文件可以放在head里,JS文件可以放置在body的最下方,在不影响阅读的情况下再去加载JS文件。

3、 优化网站分级结构。在每个内页加面包屑导航是很有必要的,可以让蜘蛛进入页面之后不至于迷路,有条件的话,最好能单独加个Sitemap页面,将网站结构一目了然地展示在蜘蛛面前,更有利于蜘蛛抓取信息。

4、 集中网站权重。由于蜘蛛分配到每个页面的权重是一定的,这些权重也将平均分配到每个a链接上,那么为了集中网站权重,可以使用”rel=nofollow”属性,它告诉蜘蛛无需抓取目标页,可以将权重分给其他的链接。

5、 文本强调标签的使用。当着重强调某个关键词需要加粗表示,选用strong标签比使用b标签要更有强调作用。

6、 a标签的title属性的使用。在不影响页面功能的情况下,可以尽量给a标签加上title属性,可以更有利于蜘蛛抓取信息。

7、 图片alt属性的使用。这个属性可以在图片加载不出来的时候显示在页面上相关的文字信息,作用同上。

8、 H标签的使用。主要是H1标签的使用需要特别注意,因为它自带权重,一个页面有且最多只能有一个H1标签,放在该页面最重要的标题上面,如首页的logo上可以加H1标签。

9、图片大小声明。如果图片大小不做定义的话,页面需要重新渲染,就会影响到加载速度。

10页面布局调整。页面内容尽量不要做成flash、视频,这些东西蜘蛛是抓不到的,就算是必须的,也要生成相应的静态页面。

10、网站结构呈扁平状树型,目录结构不宜过深。每个页面离首页最多点击不超过3次,过深不利于搜索引擎的抓取。

25、ajax是什么?

ajax是指一种创建交互式网页应用的网页开发技术,简单的说就是一个异步页面交互技术

26、Ajax的实现原理?

Ajax的原理简单来说通过XmlHttpRequest对象来向服务器发异步请求,从服务器获得数据,然后用javascript来操作DOM而更新页面;

具体实现步骤:

第一步:创建XMLHttpRuquest对象;

第二步:注册回调方法

第三步:设置和服务器交互的相应参数

第四步:设置向服务器端发送的数据,启动和服务器端的交互

第五步:判断和服务器端的交互是否完成,还要判断服务器端是否返回正确的数据

27、 jquery封装的原理?

要了解jq的封装原理,必须理解JavaScript基于构造函数和原型的继承模式。

当函数调用表达式前出现了关键字new,这个函数就成了构造函数,此时会依次发生四件事:

       1、首先一个空对象(又称实例)被创建出来了。

       2、该空对象继承构造函数的原型中的属性和方法。这也是为什么要把方法都写在构造函数的prototype里。

       3、该空对象被赋值给构造函数内部的this对象。

       4、执行构造函数。如果构造函数中显式的返回了一个对象,那么new出的就不再是新创建的空对象,而是return指定的对象。否则一律返回新建空对象

28、跨域怎么解决,解决的原理?

jsonp来解决跨域的问题,因为通过script标签引入的js是不受同源策略的限制的(正如前文提到的baidu.com的页面加载了google.com的js)。所以我们可以通过script标签引入一个js或者是一个其他后缀形式(如php,jsp等)的文件,此文件返回一个js函数的调用,如返回JSONP_getUsers(["paco","john","lili"]),也就是说此文件返回的结果调用了JSONP_getUsers函数,并且把["paco","john","lili"]传进去,这个["paco","john","lili"]是一个用户列表。那么如果此时我们的页面中有一个JSONP_getUsers函数,那么JSONP_getUsers就被调用到,并且传入了用户列表。此时就实现了在本域获取其他域数据的功能,也就是跨域。

29、vuex的State特性是?

一、Vuex就是一个仓库,仓库里面放了很多对象。其中state就是数据源存放地,对应于与一般Vue对象里面的data

二、state里面存放的数据是响应式的,Vue组件从store中读取数据,若是store中的数据发生改变,依赖这个数据的组件也会发生更新

三、它通过mapState把全局的 state 和 getters 映射到当前组件的 computed 计算属性中

30、 Vue.js中ajax请求代码应该写在组件的methods中还是vuex的actions中?

一、如果请求来的数据是不是要被其他组件公用,仅仅在请求的组件内使用,就不需要放入vuex 的state里。

二、如果被其他地方复用,这个很大几率上是需要的,如果需要,请将请求放入action里,方便复用,并包装成promise返回,在调用处用async await处理返回的数据。如果不要复用这个请求,那么直接写在vue文件里很方便。

31、iframe的优缺点?

优点:

1. 解决加载缓慢的第三方内容如图标和广告等的加载问题

2. Security sandbox

3. 并行加载脚本

缺点:

1. iframe会阻塞主页面的Onload事件

2. 即时内容为空,加载也需要时间

3. 没有语意

32、 vue-router是什么?它有哪些组件?

vue用来写路由一个插件。router-link、router-view

33、react性能优化是哪个周期函数?

shouldComponentUpdate 这个方法用来判断是否需要调用render方法重新描绘dom。因为dom的描绘非常消耗性能,如果我们能在shouldComponentUpdate方法中能够写出更优化的dom diff算法,可以极大的提高性能

34、 react性能优化?

(1)重写shouldComponentUpdate来避免不必要的dom操作。

(2)使用 production 版本的react.js。

(3)使用key来帮助React识别列表中所有子组件的最小变化。

35、React项目用过什么脚手架?

Mern:MERN是脚手架的工具,它可以很容易地使用Mongo, Express, React and NodeJS生成同构JS应用。它最大限度地减少安装时间,并得到您使用的成熟技术来加速开发。

36、JS的垃圾回收机制了解吗?

工作原理:是当变量进入环境时,将这个变量标记为“进入环境”。当变量离开环境时,则将其标记为“离开环境”。标记“离开环境”的就回收内存。

工作流程:

1.    垃圾回收器,在运行的时候会给存储在内存中的所有变量都加上标记。

2.    去掉环境中的变量以及被环境中的变量引用的变量的标记。

3.    再被加上标记的会被视为准备删除的变量。

4.    垃圾回收器完成内存清除工作,销毁那些带标记的值并回收他们所占用的内存空间。

37、js中有三种继承方式?

1.js原型(prototype)实现继承,2.构造函数实现继承,3.call , apply实现继承

38、 移动端的touch事件?

touchstart:当手指触碰屏幕时候发生。不管当前有多少只手指。

touchmove:当手指在屏幕上滑动时连续触发。通常我们再滑屏页面,会调用event的preventDefault()可以阻止默认情况的发生:阻止页面滚动。

touchend:当手指离开屏幕时触发。

touchcancel:系统停止跟踪触摸时候会触发。例如在触摸过程中突然页面alert()一个提示框,此时会触发该事件,这个事件比较少用

39、 响应式开发的原理?

CSS3中的Media Query(媒介查询),通过查询screen的宽度来指定某个宽度区间的网页布局。

超小屏幕:768px以下(移动设备)。

小屏设备:768px-992px。

中等屏幕:992px-1200px。

宽屏设备:1200px以上

40、factory、service 和 provider 是什么关系?

factory

把service 的方法和数据放在一个对象里,并返回这个对象。service

通过构造函数方式创建service,返回一个实例化对象。provider

创建一个可通过config 配置的 service,$get 中返回的,就是用 factory 创建 service 的内容

41、Angular的依赖注入是怎么实现的?

实现过程

按照科学方法(提出假设——>进行实验——>得出结论)可以先猜想一下Angular的实现过程:

解析参数。

提取所需的服务(即函数参数)显得有点麻烦,因为js并没有提供原生的方法,可能需要手动实现。

一种常用的解析字符串的方法就是用正则表达式。

实例化服务

得到了参数之后就需要根据参数来生成其对应的服务实例了,因为Angular的服务是单例模式,所以很可能会用到缓存的方式来来避免多个相同的服务。

执行定义函数

传入服务并调用我们的声明函数,创建对应的控制器/服务/指令等

42、ng-repeat迭代数组的时候,如果数组中有相同值,会有什么问题,如何解决?

会提示Duplicates in a repeater are not allowed. 加 track by $index 可解决。当然,也可以 trace by 任何一个普通的值,只要能唯一性标识数组中的每一项即可(建立 dom 和数据之间的关联)

43、 移动端字体单位font-size选择px还是rem

对于只需要适配手机设备,使用px即可。

对于需要适配各种移动设备,使用rem,例如只需要适配iPhone和iPad等分辨率差别比较挺大的设备

44、 移动端屏幕旋转?

window.orientation,取值:正负90表示横屏模式、0和180表现为竖屏模式,@media all and (orientation:portrait) {

.css{}

}

//横屏时使用的样式

@media all and (orientation:landscape) {

.css{}

}

45、 模块化中AMDCMD的区别?

1. 对于依赖的模块,AMD 是提前执行,CMD 是延迟执行,2. CMD 推崇依赖就近,AMD 推崇依赖前置,3. AMD 的 API 默认是一个当多个用,CMD 的 API 严格区分,推崇职责单一

46、模块化的好处?

模块化是一将系统分离成独立功能部分的方法,可将系统分割成独立的功能部分,严格定义模块接口、模块间具有透明性可维护性

1.灵活架构,焦点分离

2.方便模块间组合、分解

3.方便单个模块功能调试、升级

4.多人协作互不干扰

可测试性

1.可分单元测试

b>缺点:

性能损耗

1.系统分层,调用链会很长

2.模块间通信,模块间发送消息会很耗性能

3)最近的项目中也有用到模块化,

47、ReactElementComponent的区别?

ReactElement是描述屏幕上所见的内容的数据结构,是对于UI的对象的表述.典型的ReactElement就是利用JSX构建的声明式代码片段,然后被转化为createElement的调用组合.

ReactComponent则是可以接收参数输入并且返回某个ReactElement的函数或者类.

48、开发小程序中Page注册错误?

这个错误可能很容易理解,页面注册错误。页面是通过Page对象来渲染的,每个页面对应的js文件必须要创建page,最简单的方式就是在js文件下写入Page({}),在page中有管理页面渲染的生命周期,以及数据处理,事件都在这完成。这个错误引起的原因一般都是刚创建页面,js文件还有有处理或者忘了处理。所以要养成创建页面的同时在js文件先创建Page的习惯.

49、 小程序中wx.navigateTo无法打开页面?

一个应用同时只能打开5个页面,当已经打开了5个页面之后,wx.navigateTo不能正常打开新页面。请避免多层级的交互方式,或者使用wx.redirectTo

本地资源无法通过css 获取

background-image:可以使用网络图片,或者 base64,或者使用标签

50、公众号中回复微信消息,显示中文乱码问题?

进行中文重编码new String(str.getBytes(),”iso-8859-1”)

或配置返回编码:

@RequestMapping(value = “testPersonalValidtor.do”,produces = “application/json;charset=utf-8”)

51、公众号的时候,获取用户昵称有特殊字符无法存入数据库?

将数据库编码改为utf8mb4,进行nickName编码(URLEncoder.encode(nickName,"utf-8"))之后存入数据库,获取时进行反编码(URLDecoder.decode(nickName,"utf-8"))进行处理

52、node中如何避免回调地狱?

可以有如下几个方法:

模块化:将回调函数分割为独立的函数

使用Promises

使用yield来计算生成器或Promise

53、如何用Node监听80端口?

这题有陷阱!在类Unix系统中你不应该尝试去监听80端口,因为这需要超级用户权限。 因此不推荐让你的应用直接监听这个端口。

目前,如果你一定要让你的应用监听80端口的话,你可以有通过在Node应用的前方再增加一层反向代理 (例如nginx)来实现

54、 node中什么是事件循环?

Node采用的是单线程的处理机制(所有的I/O请求都采用非阻塞的工作方式),至少从Node.js开发者的角度是这样的。 而在底层,Node.js借助libuv来作为抽象封装层, 从而屏蔽不同操作系统的差异,Node可以借助livuv来来实现多线程

55、 使用NPM有哪些好处?

通过NPM,你可以安装和管理项目的依赖,并且能够指明依赖项的具体版本号。 对于Node应用开发而言,你可以通过package.json文件来管理项目信息,配置脚本, 以及指明项目依赖的具体版本。

56、如何在ionic中嵌入网页代码?

使用ng-bind-html这个类,不过它会过滤原始html的标签,我们可以引入$sce模块,用$sce.trustAsHtml()方法信任我们获取的网页

57、 如何将template加载到某个tab或某个sidemenu项目下?

可以指定name,然后在子状态中使用该name,ionic就知道该把该状态的template渲染到哪边了

58、加载页面的时候会看到双括号一闪而过?

angularjs 在使用双括号的时候,第一个加载的页面,也就是应用中的index.html,其未被渲染好的模版可能会被用户看到。用ng-bind就不会遇到这个问题。造成这种现象的原因是,浏览器需要首先加载HTML页面,渲染它,然后Angular才有机会把它解释成你期望看到的内容。不过好消息是,在大多数的模版中你依然可以使用双括号.但是对于index.html页面中的数据绑定操作,建议使用ng-bind

59、controller.jsservice.js文件越来越大怎么办?

所有的控制器不必都放在controllers.js这一个文件中,可以新建controllers文件夹,

然后把每个controller都建一个.js文件,同理services和utils等都是.但注意要在index.html中head部分声明.但是为了避免他们相互覆盖,第一个加载的js中模块中要加[…],其他都不需要

60、ionic如何实现搜索框内的全部清除按钮?

在label中的input不能嵌入按钮,因为ionic对于label中的tap事件会进行重定向到input上。解决方案是将label替换成span或div。如下面的搜索框,注意ng-model需要是一个对象才能置空,变量不行

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,390评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,821评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,632评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,170评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,033评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,098评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,511评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,204评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,479评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,572评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,341评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,893评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,171评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,486评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,676评论 2 335

推荐阅读更多精彩内容