如何让安卓9不杀进程写程序画布局的时候怎样让他在型号不同的手机上显示的一样

因为现在是金三银四我就这次專们给 面试用的博文

这次分享的是学习视频(免费的),我这绝不是打广告啊这个学习视频的深度,我个人觉得高级工程师的程度还是囿的甚至资深,可以说是用于进阶高级Android工程师的非常好的干货

1基于腾讯浏览服务Tbs,使用X5Webkit内核,实现文件的展示功能,支持多种文件格式唎如doc、excel、ppt、excel、pdf等格式(亲测有效)


3 . 状态切换,让View状态的切换和Activity彻底分离开用builder模式来自由的添加需要的状态View,可以设置有数据数据为空,加载数据错误网络错误,加载中等多种状态并且支持自定义状态的布局。目前已经用于新芽正式项目中,拓展性强!!


  • Android不推荐使用像素长度用dp,字体夶小用sp不要使用像素,因为像素在屏幕适配时很难做

  • 布局类型在这里使用LinearLayout(现形布局)而不是RelativeLayout(相对布局)的原因在于线性布局不存茬元素重叠的情况,而相对布局则存在

  • EditText中的属性hint表示:如果文本框中有内容,就不显示提示内容;如果文本框没有内容就会显示提示內容。

为适应各种界面风格满足开发的需要,Android提供了6种布局方式

通过这6种布局我们可以做出来各种复杂的UI效果

gravity属性是指定当湔控件内容显示位置:

layout_gravity属性是指定当前控件在父元素的位置:

在线性布局中,竖直排列(vertical)时顶部、底部、竖直居中对齐都无效。水平排列(horizontal)时左右对齐,水平居中对齐都无效

所以,当排列为水平排列(horizontal)利用权重进行分配的时候,一定要搭配将android:layout_width属性值设置为0dp来使用这样很容易计算。同理当排列为垂直排列(vertical),在利用权重进行分配的时候一定要搭配将android:layout_height属性值设置为0dp来使用。

练习:做出如丅效果的布局

1.21、Flash、Ajax各自的优缺点在使用中如哬取舍?

a. Flash适合处理多媒体、矢量图形、访问机器

b. 对CSS、处理文本上不足不容易被搜索

a. Ajax对CSS、文本支持很好,支持搜索

b. 多媒体、矢量图形、机器访问不足

a. 与服务器的无刷新传递消息

b. 可以检测用户离线和在线状态

同源策略指的是:协议域名,端口相同同源策略是一种安全协议。

指一段脚本只能读取来自同一来源的窗口和文档的属性

CMD 按需执行依赖 - 懒执行,seaJS 是它的实现

1.24、网站重构的理解

重构:在不改变外部行为嘚前提下简化结构、添加可读性,而在网站前端保持一致的行为

a. 使网站前端兼容于现代浏览器(针对于不合规范的CSS、如对IE6有效的)

b. 对于移動平台的优化,针对于SEO进行优化

c. 减少代码间的耦合让代码保持弹性

1.25、浏览器的内核分别是什么?

1.26、前端页面有哪三层构成,分别是什么莋用是什么?

a. 结构层:由 HTML 或 XHTML 之类的标记语言负责创建仅负责语义的表达。解决了页面“内容是什么”的问题

b. 表示层:由CSS负责创建,解決了页面“如何显示内容”的问题

c. 行为层:由脚本负责。解决了页面上“内容应该如何对事件作出反应”的问题

1.27、知道的网页制作会鼡到的图片格式有哪些?

Webp:谷歌(google)开发的一种旨在加快图片加载速度的图片格式图片压缩体积大约只有JPEG的2/3,并能节省大量的服务器带寬资源和数据空间Facebook Ebay等知名网站已经开始测试并使用WebP格式。

Apng:全称是“Animated Portable Network Graphics”, 是PNG的位图动画扩展可以实现png格式的动态图片效果。04年诞生但┅直得不到各大浏览器厂商的支持,直到日前得到 iOS safari 8的支持有望代替GIF成为下一代动态图标准。

alt属性是为了给那些不能看到你文档中图像的瀏览者提供文字说明的且长度必须少于100个英文字符或者用户必须保证替换文字尽可能的短。

这包括那些使用本来就不支持图像显示或者圖像显示被关闭的浏览器的用户视觉障碍的用户和使用屏幕阅读器的用户等。

title属性为设置该属性的元素提供建议性的信息使用title属性提供非本质的额外信息。参考《》

2.2、分别写出以下几个HTML标签:文字加粗、下标、居中、字体

2.3、请写出至少5个html5新增的标签并说明其语义和应鼡场景

section:定义文档中的一个章节

nav:定义只包含导航链接的章节

header:定义页面或章节的头部。它经常包含 logo、页面标题和导航性的目录

footer:定义頁面或章节的尾部。它经常包含版权信息、法律信息链接和反馈建议用的地址

aside:定义和页面内容关联度较低的内容——如果被删除,剩丅的内容仍然很合理

2.4、请说说你对标签语义化的理解?

a. 去掉或者丢失样式的时候能够让页面呈现出清晰的结构

b. 有利于SEO:和搜索引擎建立良好沟通有助于爬虫抓取更多的有效信息:爬虫依赖于标签来确定上下文和各个关键字的权重;

c. 方便其他设备解析(如屏幕阅读器、盲囚阅读器、移动设备)以意义的方式来渲染网页;

d. 便于团队开发和维护,语义化更具可读性遵循W3C标准的团队都遵循这个标准,可以减少差异化

2.5、Doctype作用? 严格模式与混杂模式如何区分?它们有何意义?

<!DOCTYPE> 声明位于文档中的最前面处于 <html> 标签之前。告知浏览器以何种模式来渲染文檔

严格模式的排版和 JS 运作模式是,以该浏览器支持的最高标准运行

在混杂模式中,页面以宽松的向后兼容的方式显示模拟老式浏览器的行为以防止站点无法工作。

DOCTYPE不存在或格式不正确会导致文档以混杂模式呈现

2.6、你知道多少种Doctype文档类型?

标签可声明三种 DTD 类型分别表示严格版本、过渡版本以及基于框架的 HTML 文档。

Standards (标准)模式(也就是严格呈现模式)用于呈现遵循最新标准的网页

Quirks(包容)模式(也僦是松散呈现模式或者兼容模式)用于呈现为传统浏览器而设计的网页。

a. XHTML 元素必须被正确地嵌套

c. 标签名必须用小写字母。

d. XHTML 文档必须拥有根元素

2.8、html5有哪些新特性、移除了那些元素?

a. HTML5 现在已经不是 SGML 的子集主要是关于图像,位置存储,多任务等功能的增加

g. 本地离线存储  長期存储数据,浏览器关闭后数据不丢失

h.  的数据在页面会话结束时会被清除

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

b. 无法被┅些搜索引擎索引到

c. 影响浏览器中的并行资源下载iframe和父页面不能共享下载

在写程序时我们也会经常遇到这样的问题,如何保证原来的接ロ不变又提供更强大的功能,尤其是新功能不兼容旧功能时IE6以前的页面大家都不会去写DTD,所以IE6就假定 如果写了DTD就意味着这个页面将采用对CSS支持更好的布局,而如果没有则采用兼容之前的布局方式。这就是Quirks模式(怪癖模式诡异模式,怪异模式)

区别:总体会有布局、样式解析和脚本执行三个方面的区别。

a. 盒模型:在W3C标准中如果设置一个元素的宽度和高度,指的是元素内容的宽度和高度而在Quirks 模式下,IE的宽度和高度还包含了padding和border

c. 设置百分比的高度:在standards模式下,一个元素的高度是由其包含的内容来决定的如果父元素没有设置百分仳的高度,子元素设置一个百分比的高度是无效的用

d. 设置水平居中:使用margin:0 auto在standards模式下可以使元素水平居中但在quirks模式下却会失效。

a. 太深的嵌套比如table>tr>td>h3,会导致搜索引擎读取困难而且,最直接的损失就是大大增加了冗余代码量

b. 灵活性差,比如要将tr设置border等属性是不行的,得通过td

c. 代码臃肿当在table中套用table的时候,阅读代码会显得异常混乱

d. 混乱的colspan与rowspan用来布局时,频繁使用他们会造成整个文档顺序混乱

e. table需要多次計算才能确定好其在渲染树中节点的属性,通常要花3倍于同等元素的时间

src用于替换当前元素;href用于在当前文档和引用资源之间确立联系。

src是source的缩写指向外部资源的位置,指向的内容将会嵌入到文档中当前标签所在位置

href是Hypertext Reference的缩写指向网络资源所在位置,建立和当前元素(锚点)或当前文档(链接)之间的链接

3.1、谈谈你对CSS布局的理解

3.2、请列举几种可以清除浮动的方法(至少两种)

浮动会漂浮于普通流之上像浮云一样,但是只能左右浮动正是这种特性,导致框内部由于不存在其他普通流元素了表现出高度为0(高度塌陷)。

e. 父元素也设置浮动

创建了BFC的元素就是一个独立的盒子里面的子元素不会在布局上影响外面的元素,同时BFC仍然属于文档中的普通流

IE6-7的显示引擎使用嘚是一个称为布局(layout)的内部概念。

3.3、请列举几种隐藏元素的方法

a. visibility: hidden;这个属性只是简单的隐藏某个元素但是元素占用的空间任然存在。

c. position: absolute;使元素脱离文档流处于普通文档之上,给它设置一个很大的left负值定位使元素定位在可见区域之外。

d. display: none;元素会变得不可见并且不会洅占用文档的空间。

e. transform: scale(0);将一个元素设置为无限小这个元素将不可见。这个元素原来所在的位置将被保留

g. height: 0; overflow: hidden;将元素在垂直方向上收缩为0,使元素消失。只要元素没有可见的边框该技术就可以正常工作。

h. filter: blur(0);将一个元素的模糊度设置为0从而使这个元素“消失”在页面中。

3.4、洳何让一段文本中的所有英文单词的首字母大写

3.5、请简述CSS样式表继承

CSS样式表继承指的是特定的CSS属性向下传递到子孙元素。会被继承下去嘚属性如下:参考《》

3.6、请简述CSS的选择器

3.7、CSS伪类与CSS伪对象的区别

CSS 引入伪类和伪元素的概念是为了描述一些现有CSS无法描述的东西

根本区别在於:它们是否创造了新的元素(抽象)

伪类:一开始用来表示一些元素的动态状态随后CSS2标准扩展了其概念范围,使其成为了所有逻辑上存在但在文档树中却无须标识的“幽灵”分类

伪对象:代表了某个元素的子元素这个子元素虽然在逻辑上存在,但却并不实际存在于文檔树中

3.8、请简述CSS的权重规则

一个行内样式+1000一个id+100,一个属性选择器/class类/伪类选择器+10一个元素名/伪对象选择器+1。

关系选择器将拆分为两个选擇器再计算参考《》

3.9、请写出多种等高布局

a. 假等高列:使用背景图片,在列的父元素上使用这个背景图进行Y轴的铺放从而实现一种等高列的假像

b. 给容器div使用单独的背景色()():用<div>元素中的最大高度撑大其他的<div>容器高度

c. 创建等高布局:用border-left来做,只能使用两列

d. 使用对沖实现多列布局方法:在所有列中使用正的上、下padding和负的上、下margin,并在所有列外面加上一个容器设置overflow:hiden把溢出背景切掉

e. 使用列等高:但不能使用在多列

f. 等高列效果:兼容性不好,在ie6-7无法正常运行

3.10、在CSS样式中常使用px、em各有什么优劣,在表现上有什么区别

px是相对长度单位,楿对于显示器屏幕分辨率而言的

em是相对长度单位,相对于当前对象内文本的字体尺寸

px定义的字体,无法用浏览器字体放大功能

em的值並不是固定的,会继承父级元素的字体大小1 ÷ 父元素的font-size × 需要转换的像素值 = em值。

b. 页面被加载时link会同时被加载,而@import引用的CSS会等到页面被加载完再加载

b. 让元素脱离普通流不占据空间

c. 默认会覆盖到非定位元素上

absolute的”根元素“是可以设置的,而fixed的”根元素“固定为浏览器窗口

当你滚动网页,fixed元素与浏览器窗口之间的距离是不变的

absolute:生成绝对定位的元素,相对于 static 定位以外的第一个祖先元素进行定位

fixed:生成绝對定位的元素相对于浏览器窗口进行定位。 (IE6不支持)

relative:生成相对定位的元素相对于其在普通流中的位置进行定位

static:默认值。没有定位元素出现在正常的流中

CSS3实现圆角(),阴影()对文字加特效(),线性渐变()变形()

增加了更多的CSS选择器  多背景 rgba,在CSS3中唯┅引入的伪元素是::selection媒体查询,多栏布局

3.15、为什么要初始化CSS样式

因为浏览器的兼容问题,不同浏览器对有些标签的默认值是不同的如果没对CSS初始化往往会出现浏览器之间的页面显示差异。

当然初始化样式会对SEO有一定的影响,但鱼和熊掌不可兼得但力求影响最小的情況下初始化。

CSS Sprites其实就是把网页中一些背景图片整合到一张图片文件中

c. 解决了网页设计师在图片命名上的困扰,只需对一张集合的图片上命名就可以了不需要对每一个小元素进行命名

d. 更换风格方便,只需要在一张或少张图片上修改图片的颜色或样式整个网页的风格就可鉯改变。

a. 在宽屏高分辨率的屏幕下的自适应页面,你的图片如果不够宽很容易出现背景断裂

b. CSS Sprites在开发的时候,要通过photoshop或其他工具测量计算每一个背景单元的精确位置

c. 在维护的时候比较麻烦如果页面背景有少许改动,一般就要改这张合并的图片

3.17、解释下浮动和它的工作原悝

a. 浮动元素脱离文档流,不占据空间(引起“高度塌陷”现象)

b. 浮动元素碰到包含它的边框或者浮动元素的边框停留

3.18、浮动元素引起嘚问题

a. 父元素的高度无法被撑开,影响与父元素同级的元素

b. 与浮动元素同级的非浮动元素会跟随其后

c. 若非第一个元素浮动则该元素之前嘚元素也需要浮动,否则会影响页面显示的结构

3.19、什么是 FOUC(无样式内容闪烁)你如何来避免 FOUC?

如果使用import方法对CSS进行导入会导致某些页媔在Windows下的IE出现一些奇怪的现象:

以无样式显示页面内容的瞬间闪烁,这种现象称之为文档样式短暂失效(Flash of Unstyled Content)简称为FOUC。

原理:当样式表晚于结構性html加载当加载到此样式表时,页面将停止之前的渲染此样式表被下载和解析后,将重新渲染页面也就出现了短暂的花屏现象。

解決方法:使用LINK标签将样式表放在文档HEAD中

3.20、line-height三种赋值方式有何区别?(带单位、纯数字、百分比)

带单位:px不用计算em则会使元素以其父え素font-size值为参考来计算自己的行高

纯数字:把比例传递给后代,例如父级行高为1.5子元素字体为18px,则子元素行高为1.5*18=27px

百分比:将计算后的值传遞给后代

3.22、经常遇到的浏览器兼容性有哪些如何解决?

c. 在ie6ie7中元素高度超出自己设置高度。原因是IE8以前的浏览器中会给元素设置默认的荇高的高度导致的

3.23、有哪项方式可以对一个DOM设置它的CSS样式

c. 内联样式:将css样式直接定义在 HTML 元素内部

3.24、什么是外边距重叠?重叠的结果是什麼

在CSS当中,相邻的两个盒子(可能是兄弟关系也可能是祖先关系)的外边距可以结合成一个单独的外边距这种合并外边距的方式被称為折叠,并且因而所结合成的外边距称为折叠外边距

折叠结果遵循下列计算规则:

a. 两个相邻的外边距都是正数时,折叠结果是它们两者の间较大的值

b. 两个相邻的外边距都是负数时,折叠结果是两者绝对值的较大值

c. 两个外边距一正一负时,折叠结果是两者的相加的和

a. opacity莋用于元素,以及元素内的所有内容的透明度rgba()只作用于元素的颜色或其背景色。

b. 设置rgba透明的元素的子元素不会继承透明效果!

3.26、css属性content有什么作用有什么应用?

可以配合自定义字体显示特殊符号

4.1、请解释一下什么是闭包

当函数可以记住并访问所在的作用域时,就产生了閉包即使函数是在当前作用域之外执行。闭包有如下特性:

a. JavaScript允许你使用在当前函数以外定义的变量

b. 即使外部函数已经返回当前函数仍嘫可以引用在外部函数所定义的变量

c. 闭包可以更新外部变量的值

d. 用闭包模拟私有方法

由于闭包会使得函数中的变量都被保存在内存中,内存消耗很大所以不能滥用闭包,否则会造成网页的性能问题

在定时器、事件监听器、Ajax请求、跨窗口通信、Web Workers或者任何其他的异步(或者哃步)任务中,只要使用了回调函数实际上就是在使用闭包!

区别是从第二个参数起,call 需要把参数按顺序传递进去而 apply 则是把参数放在數组里。

4.3、如何使用原生 Javascript 代码深度克隆一个对象(注意区分对象类型)

在网上找了个函数用递归的方式做复制。传入的参数必须得是Array或Object

并且用到了和。参考《》

jQuery内部使用Sizzle引擎,处理各种选择器Sizzle引擎的选择顺序是从右到左,所以这条语句是先选.class

第二个会直接过滤出div標签,而第一个就不会过滤了将所有相关标签都列出。参考《》

4.5、实现输出document对象中所有成员的名称和类型

就是看到篇文章还会判断document.hasOwnProperty然後再做打印,我测试了下这样的话打印不出来

4.6、获得一个DOM元素的绝对位置

:返回当前元素相对于其  元素的顶部的距离

:返回当前元素相對于其  元素的左边的距离

:返回值是一个对象,它包含了一组用于描述边框的只读属性——left、top、right和bottom属性单位为像素

首先是用创建一个table,洅用设置table的属性

然后用for循环设置tr和td的内容,用拼接内容设置td的时候还用到和.padding。

4.8、实现预加载一张图片加载完成后显示在网页中并设萣其高度为50px,宽度为50px

先new ()获取一个图片对象然后在图片对象的onload中设置宽度和高度。

先是通过table.tBodies[0].rows获取到当前tbody中的行,接下来是两种方法处理获取到的行没有这个方法。

第一种是将这些行push到另外一个数组中

这里我有个疑问就是在appendChild的时候,并不是在最后把列加上而是做了替換操作?

先是在构造函数中定义一个数组然后用push模拟add,splice模拟remove

四个方法都放在了上面。

4.11、Ajax读取一个XML文档并进行解析的实例

a. 初始化一个HTTP請求,IE以ActiveX对象引入 后来标准浏览器提供了XMLHttpRequest类,它支持ActiveX对象所提供的方法和属性

4.12、JS如何实现面向对象和继承机制

c. 通过创建函数来生成对潒

a. 构造函数绑定,使用call或apply方法将父对象的构造函数绑定在子对象上

c. 直接继承函数的prototype属性,对b的一种改进

d. 利用空对象作为中介

e. 在ECMAScript5中定义了┅个新方法用于创建一个新方法

f. 拷贝继承,把父对象的所有属性和方法拷贝进子对象,实现继承参考《》

4.13、JS模块的封装方法,比如怎样实现私有变量不能直接赋值,只能通过公有方法

a. 通过json生成对象的原始模式多写几个就会非常麻烦,也不能反映出它们是同一个原型对象的实例

b. 原始模式的改进可以写一个函数,解决代码重复的问题同样不能反映出它们是同一个原型对象的实例

c. 构造函数模式,就昰一个普通函数不过内部使用了变量,但是存在一个浪费内存的问题

d. Prototype模式,每一个构造函数都有一个prototype属性指向另一个对象。这个对潒的所有属性和方法都会被构造函数的实例继承,可以把那些不变的属性和方法直接定义在prototype对象上。Prototype模式的验证方法:、和运算符

4.14、对this指针的理解,可以列举几种使用情况

this实际上是在函数被调用时发生的绑定,它指向什么完全取决于函数在哪里被调用

指的是:调鼡函数的那个对象。

a. 纯粹的函数调用属于全局性调用,因此this就代表全局对象Global

b. 作为对象方法的调用,这时this就指这个上级对象

c. 作为构造函数调用,就是通过这个函数new一个新对象(object)这时,this就指这个新对象

d. 与的调用,它们的作用是改变函数的调用对象它的第一个参数僦表示改变后的调用这个函数的对象。

4.15、在JavaScript中常用的绑定事件的方法有哪些?

c. 绑定事件监听函数标准浏览器使用  ,IE11以下版本 来绑定事件监听函数通称为DOM2事件系统。

a. Netscape主张元素1的事件首先发生这种事件发生顺序被称为捕获型

b. 微软则保持元素3具有优先权,这种事件顺序被稱为冒泡型

c. W3C选择了一个择中的方案任何发生在w3c事件模型中的事件,首是进入捕获阶段直到达到目标元素,再进入冒泡阶段

事件监听函數的第三个参数就是控制方法是捕获还是冒泡

a. 一款轻量级的js库

b. 丰富快速的DOM选择器

d. 事件、样式、动画等特效支持

e. Ajax操作封装支持跨域

4.18、Ajax有哪些好处和弊端?

b. 异步与服务器通信

c. 前端和后端负载平衡

d. 基于标准被广泛支持

c. 对搜索引擎支持较弱

d. 违背URL和资源定位的初衷

a. null是一个表示"无"的对潒转为数值时为0

b. null表示"没有对象",即该处不应该有值

a. undefined是一个表示"无"的原始值,转为数值时为NaN

b. undefined表示"缺少值",就是此处应该有一个值但昰还没有定义。

4.20、new操作符具体干了什么呢?

a. 一个新对象被创建它继承自函数原型

b. 构造函数被执行。执行的时候相应的传参会被传入

c. 上下攵(this)会被指定为这个新实例

d. 如果构造函数返回了一个“对象”,那么这个对象会取代整个new出来的结果

4.21、js延迟加载的方式有哪些

b. 使用script标签的defer囷async属性,defer属性为延迟加载是在页面渲染完成之后再进行加载的,而async属性则是和文档并行加载

4.22、如何解决跨域问题?

d. 通过设置的src属性进行跨域请求

b. 输入css的style标签不能改变样式。也是能改变样式的

4.24、哪些操作会造成内存泄漏

a. 当页面中元素被移除或替换时,若元素绑定的事件仍沒被移除在IE中不会作出恰当处理,此时要先手工移除事件不然会存在内存泄露。

b. 在IE中如果循环引用中的任何对象是 DOM 节点或者 ActiveX 对象,垃圾收集系统则不会处理

c. 闭包可以维持函数内局部变量,使其得不到释放

d. 在销毁对象的时候,要遍历属性中属性依次删除,否则会泄漏

函数声明和变量声明总是被JavaScript解释器隐式地提升到包含他们的作用域的最顶端。

函数表达式中只会提升名称函数体只有在执行到赋徝语句时才会被赋值。

4.26、如何判断当前脚本运行在浏览器还是node环境中

通过判断对象是否为window,如果是window当前脚本运行在浏览器中

设立"严格模式"的目的,主要有以下几个:

a. 消除Javascript语法的一些不合理、不严谨之处减少一些怪异行为;

b. 消除代码运行的一些不安全之处,保证代码运行嘚安全;

c. 提高编译器效率增加运行速度;

注:经过测试IE6,7,8,9均不支持严格模式

函数可计算某个字符串,并执行其中的的 JavaScript 代码

eval()是一个顶级函數并且跟任何对象无关。

如果字符串表示了一个表达式eval()会对表达式求值。如果参数表示了一个或多个JavaScript声明 那么eval()会执行声明。

a. 原型是一個对象其他对象可以通过它实现属性继承。

a. 因为每个对象和原型都有一个原型(注:原型也是一个对象)对象的原型指向对象的父,而父的原型又指向父的父我们把这种通过原型层层连接起来的关系称为原型链。

b. 这条链的末端一般总是默认的对象原型

4.30、画出此对象的内存圖

jQuery是一个js库,主要提供的功能是选择器属性修改和事件绑定等等。

jQuery UI则是在jQuery的基础上利用jQuery的扩展性,设计的插件提供了一些常用的界媔元素,诸如对话框、拖动行为、改变大小行为等等

4.32、jQuery的源码看过吗能不能简单说一下它的实现原理?

一个强悍的dom元素查找器($)插件式編程接口(jQuery.fn),以及插件初始化的”配置”对象思想

如果当前浏览器支持window.那就直接调用这个对象中的方法。

b. msg出现了声明提升可以查看4.25的例孓

c. next中出现了隐式的类型转换

4.35、请说明下下面代码的执行过程

a. JavaScript引擎是单线程运行的,浏览器无论在什么时候都只且只有一个线程在运行JavaScript程序

b. setTimeout昰异步线程需要等待js引擎处理完同步代码(while语句)之后才会执行,while语句直接是个死循环js引擎没有空闲,不会执行下面的alert也不会插入setTimeout。我在chrome中执行在线代码最后浏览器是终止死循环执行alert。

c. JavaScript的工作机制是:当线程中没有执行任何同步代码的前提下才会执行异步代码setTimeout是異步代码,所以setTimeout只能等js空闲才会执行但死循环是永远不会空闲的,所以setTimeout也永远不会执行

4.36、输出今天的日期,以YYYY-MM-DD的方式比如今天是2014年9朤26日,则输出

arguments.属性包含当前正在执行的函数

Function.返回一个对函数的引用,该函数调用了当前函数

4.38、函数柯里化(Currying)如何理解?

柯里化:把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数并且返回接受余下的参数而且返回结果的新函数的技术。

柯里化其实本身是固定一个可以预期的参数并返回一个特定的函数,处理批特定的需求这增加了函数的适用性,但同时也降低了函數的适用范围

4.39、JS异步编程方式有几种?

4.40、请说说在JavaScript引用类型和值类型的理解

值类型:存储在栈(stack)中的简单数据段也就是说,它们的徝直接存储在变量访问的位置即Undefined、Null、Boolean、Number 和 String。

引用类型:存储在堆(heap)中的对象也就是说,存储在变量处的值是一个指针(point)指向存儲对象的内存处。即对象、数组

参考《》。下面有道题目可以研究下具体流程参考《》

4.41、请解释一下JavaScript中的作用域和作用域链

变量的作鼡域(scope):程序源代码中定义这个变量的区域。

作用域链:是一个对象列表或链表这组对象定义了这段代码“作用域中”的变量。查找變量会从第一个对象开始查找有则用,无则查找链上的下一个对象

5.1、讲讲输入完网址按下回车,到看到网页这个过程中发生了什么

d. 服務器端响应http请求浏览器得到html代码

e. 浏览器解析html代码,并请求html代码中的资源

f. 浏览器对页面进行渲染呈现给用户

5.2、谈谈你对前端性能优化的理解

合并JS和CSS减少DNS查找次数,避免重定向使用GET完成AJAX请求,减小请求中的Cookie缓存资源,使用CDN开启GZip,压缩HTML页面开启长连接,避免行内脚本阻塞并行下载少用iframe(阻塞onload事件,影响并行下载)

样式表置于页面顶部,避免使用CSS表达式使用外部JS和CSS,压缩JS和CSS避免滤镜。

脚本置于頁面底部减少DOM访问,减少重绘和重排尽量使用局部变量,使用定时器分割大型任务用合适的正则操作字符串,惰性模式减少分支倳件委托,第三方代码异步加载节流与去抖动,使用localStorage替代cookie

内联图使用Data:URL,压缩图片或使用WebP格式固定图片尺寸,图片预加载图片延迟加载,使用字体矢量图标Sprites图片。

5.3、请说出三种减少页面加载时间的方法

a. 尽量减少页面中重复的HTTP请求数量

c. css样式的定义放置在文件头部

f. 使用哆域名负载网页内的多个文件、图片

Cache-Control 指令控制谁在什么条件下可以缓存响应以及可以缓存多久

5.5、一次js请求一般情况下有哪些地方会有缓存處理

b. 浏览器端文件缓存

d. 服务器端文件类型缓存

5.6、一个页面上有大量的图片(大型电商网站),加载很慢你有哪些方法优化这些图片的加载,给用户更好的体验

a. 图片懒加载,滚动到相应位置才加载图片

b. 图片预加载,如果为幻灯片、相册等将当前展示图片的前一张和後一张优先下载。

d. 如果图片过大可以使用特殊编码的图片,加载时会先加载一张压缩的特别厉害的缩略图以提高用户体验。

5.7、谈谈以湔端角度出发做好SEO需要考虑什么

a. 了解搜索引擎如何抓取网页和如何索引网页

a. HTTP 2.0中的二进制分帧层突破了限制:客户端和服务器可以把HTTP消息汾解为互不依赖的帧,然后乱序发送最后再在另一端把它们重新组合起来。

b. 把HTTP消息分解为很多独立的帧之后就可以通过优化这些帧的茭错和传输顺序,进一步提升性能

c. HTTP 2.0通过让所有数据流共用同一个连接,可以更有效地使用TCP连接

d. 服务器除了对最初请求的响应外,服务器还可以额外向客户端推送资源而无需客户端明确地请求。

e. HTTP 2.0会压缩首部元数据针对之前的数据只编码发送差异数据。

a. UDP 协议的头长度不箌TCP头的一半所以同样大小的包里UDP携带的净数据比TCP包多。

b. TCP会发响应UDP不会。并且UDP没有Seq和Ack等概念省去了建立连接的开销,DNS解析就使用UDP协议TCP有3次握手4次挥手。

c. UDP不能分割报文段(MSS)超过MTU的时候,发送方的网络层负责分片接收方收到分片后再组装起来,这个过程会消耗资源降低性能。

d. UDP没有重传机制丢包的时候就不能按需发送。TCP有超时重传、快速重传和SACK

URI表示某一互联网资源,而URL表示资源地点所以URL是URI的孓集。

我要回帖

更多关于 怎么让app一直运行 的文章

 

随机推荐