31
2020
07

call和.apply的区别是什么?

call方法: 语法:call(thisObj,Object)定义:调用一个对象的一个方法,以另一个对象替换当前对象。说明:call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。 如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。 apply方法: 语法:apply(thisObj,[argArray])定义:应用某一对象的一个方法,用另一个对象
31
2020
07

请指出JavaScript宿主对象和原生对象的区别?

原生对象ECMA-262 把本地对象(native object)定义为“独立于宿主环境的 ECMAScript 实现提供的对象”。“本地对象”包含哪些内容:Object、Function、Array、String、Boolean、Number、Date、RegExp、Error、EvalError、RangeError、ReferenceError、SyntaxError、TypeError、URIError。由此可以看出,简单来说,本地对象就是 ECMA-262 定义的类(引用类型)。内置对
31
2020
07

在什么时候你会使用document.write()?

大多数生成的广告代码依旧使用document.write(),虽然这种用法会让人很不爽。
31
2020
07

请指出浏览器特性检测,特性推断和浏览器UA字符串嗅探的区别?

特性检测:为特定浏览器的特性进行测试,并仅当特性存在时即可应用特性。User-Agent检测:最早的浏览器嗅探即用户代理检测,服务端(以及后来的客户端)根据UA字符串屏蔽某些特定的浏览器查看网站内容。特性推断:尝试使用多个特性但仅验证了其中之一。根据一个特性的存在推断另一个特性是否存在。问题是,推断是假设并非事实,而且可能导致可维护性的问题。
31
2020
07

请解释JSONP的工作原理,以及它为什么不是真正的AJAX。

JSONP (JSON with Padding)是一个简单高效的跨域方式,HTML中的script标签可以加载并执行其他域的javascript,于是我们可以通过script标记来动态加载其他域的资源。例如我要从域A的页面pageA加载域B的数据,那么在域B的页面pageB中我以JavaScript的形式声明pageA需要的数据,然后在 pageA中用script标签把pageB加载进来,那么pageB中的脚本就会得以执行。JSONP在此基础上加入了回调函数,pageB加载完之后会执行page
31
2020
07

请解释变量声明提升。

在JS里定义的变量,存在于作用域链里,而在函数执行时会先把变量的声明进行提升,仅仅是把声明进行了提升,而其值的定义还在原来位置。示例如下:1 var test = function() {2     console.log(name); // 输出:undefined3     var name = "jeri";4     console.log(name); // 输出:jeri5 }6 7 test(
31
2020
07

请指出document.onload和document.ready两个事件的区别。

页面加载完成有两种事件,一是ready,表示文档结构已经加载完成(不包含图片等非文字媒体文件),二是onload,指示页面包含图片等文件在内的所有元素都加载完成。
31
2020
07

"attribute"和"property"的区别是什么?

1. 定义Property:属性,所有的HTML元素都由HTMLElement类型表示,HTMLElement类型直接继承自Element并添加了一些属性,添加的这些属性分别对应于每个HTML元素都有下面的这5个标准特性: id,title,lang,dir,className。DOM节点是一个对象,因此,他可以和其他的JavaScript对象一样添加自定义的属性以及方法。property的值可以是任何的数据类型,对大小写敏感,自定义的property不会出现在html代码中,只存在js中。At
31
2020
07

请描述下事件冒泡机制。

冒泡型事件:事件按照从最特定的事件目标到最不特定的事件目标(document对象)的顺序触发。捕获型事件:事件从最不精确的对象(document 对象)开始触发,然后到最精确(也可以在窗口级别捕获事件,不过必须由开发人员特别指定)。支持W3C标准的浏览器在添加事件时用addEventListener(event,fn,useCapture)方法,基中第3个参数useCapture是一个Boolean值,用来设置事件是在事件捕获时执行,还是事件冒泡时执行。而不兼容W3C的浏览器(IE)用attac
29
2020
07

==和===有什么不同?

首先,== equality 等同,=== identity 恒等。 ==, 两边值类型不同的时候,要先进行类型转换,再比较。 ===,不做类型转换,类型不同的一定不等。先说 ===,这个比较简单。下面的规则用来判断两个值是否===相等: 如果类型不同,就[不相等] 如果两个都是数值,并且是同一个值,那么[相等];(!例外)的是,如果其中至少一个是NaN,那么[不相等]。(判断一个值是否是NaN,只能用isNaN()来判断) 如果两个都是字符串,每个位置的字符都一样
29
2020
07

你如何从浏览器的URL中获取查询字符串参数。

以下函数把获取一个key的参数。 1 function parseQueryString ( name ){ 2     name = name.replace(/[\[]/,"\\\["); 3     var regexS = "[\\?&]"+name+"=([^&#]*)"; 4     var regex = n
29
2020
07

请解释一下JavaScript的同源策略。

在客户端编程语言中,如javascript和 ActionScript,同源策略是一个很重要的安全理念,它在保证数据的安全性方面有着重要的意义。同源策略规定跨域之间的脚本是隔离的,一个域的脚本不能访问和操作另外一个域的绝大部分属性和方法。那么什么叫相同域,什么叫不同的域呢?当两个域具有相同的协议, 相同的端口,相同的host,那么我们就可以认为它们是相同的域。同源策略还应该对一些特殊情况做处理,比如限制file协议下脚本的访问权限。本地的HTML文件在浏览器中是通过file协议打开的,如果脚本能
29
2020
07

什么是三元表达式?“三元”表示什么意思?

三元表达式:? :。三元--三个操作对象。在表达式boolean-exp ? value0 : value1 中,如果“布尔表达式”的结果为true,就计算“value0”,而且这个计算结果也就是操作符最终产生的值。如果“布尔表达式”的结果为false,就计算“value1”,同样,它的结果也就成为了操作符最终产生的值。
29
2020
07

JavaScript里函数参数arguments是数组吗?

在函数代码中,使用特殊对象 arguments,开发者无需明确指出参数名,通过使用下标就可以访问相应的参数。arguments虽然有一些数组的性质,但其并非真正的数组,只是一个类数组对象。其并没有数组的很多方法,不能像真正的数组那样调用.jion(),.concat(),.pop()等方法。
29
2020
07

什么是"use strict";?使用它的好处和坏处分别是什么?

在代码中出现表达式-"use strict"; 意味着代码按照严格模式解析,这种模式使得Javascript在更严格的条件下运行。好处:消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为;消除代码运行的一些不安全之处,保证代码运行的安全;提高编译器效率,增加运行速度;为未来新版本的Javascript做好铺垫。坏处:同样的代码,在"严格模式"中,可能会有不一样的运行结果;一些在"正常模式"下可以运行的语句,在&quo
29
2020
07

解释"chaining"。

jQuery方法链接。直到现在,我们都是一次写一条jQuery语句(一条接着另一条)。不过,有一种名为链接(chaining)的技术,允许我们在相同的元素上运行多条jQuery命令,一条接着另一条。提示:这样的话,浏览器就不必多次查找相同的元素。如需链接一个动作,您只需简单地把该动作追加到之前的动作上。
29
2020
07

解释"deferreds"。

开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异步的操作(比如ajax读取服务器数据),也有同步的操作(比如遍历一个大型数组),它们都不是立即能得到结果的。通常的做法是,为它们指定回调函数(callback)。即事先规定,一旦它们运行结束,应该调用哪些函数。但是,在回调函数方面,jQuery的功能非常弱。为了改变这一点,jQuery开发团队就设计了deferred对象。简单说,deferred对象就是jQuery的回调函数解决方案。在英语中,defer的意思是&
29
2020
07

你知道哪些针对jQuery的优化方法?

1.总是从ID选择器开始继承在jQuery中最快的选择器是ID选择器,因为它直接来自于JavaScript的getElementById()方法。例如有一段HTML代码: 1 <div id="content"> 2     <form method="post"action="#"> 3         <h2>
29
2020
07

请解释.end()的用途。

在官方的API上是这样描述end()方法的:“回到最近的一个"破坏性"操作之前。即,将匹配的元素列表变为前一次的状态。”;看样子好像是找到最后一次操作的元素的上一元素,在如下的例子中:html代码:复制代码代码如下:1 <div>测试内容1</div><div>测试内容2</div>jQuery代码:复制代码代码如下:1 $('<p>新增内容</p>').appendTo('div
29
2020
07

你如何给一个事件处理函数命名空间,为什么要这样做?

任何作为type参数的字符串都是合法的;如果一个字符串不是原生的JavaScript事件名,那么这个事件处理函数会绑定到一个自定义事件上。这些自定义事件绝对不会由浏览器触发,但可以通过使用.trigger()或者.triggerHandler()在其他代码中手动触发。如果type参数的字符串中包含一个点(.)字符,那么这个事件就看做是有命名空间的了。这个点字符就用来分隔事件和他的命名空间。举例来说,如果执行.bind('click.name',handler),那么字符串中的cl
29
2020
07

请说出你可以传递给jQuery方法的四种不同值。

选择器(字符串),HTML(字符串),回调函数,HTML元素,对象,数组,元素数组,jQuery对象等。
29
2020
07

什么是效果队列?

jQuery中有个动画队列的机制。当我们对一个对象添加多次动画效果时后添加的动作就会被放入这个动画队列中,等前面的动画完成后再开始执行。可是用户的操作往往都比动画快,如果用户对一个对象频繁操作时不处理动画队列就会造成队列堆积,影响到效果。jQuery中有stop这个方法可以停止当前执行的动画,并且它有两个布尔参数,默认值都为false。第一个参数为true时会清空动画队列,第二个参数为true时会瞬间完成掉当前动画。所以,我们经常使用obj.stop(true,true)来停止动画。但是这还不够
29
2020
07

请指出.get(),[],eq()的区别。

eq:返回是一个jquery对象作用是将匹配的元素集合缩减为一个元素。这个元素在匹配元素集合中的位置变为0,而集合长度变成1。get:是一个html对象数组作用是取得其中一个匹配的元素。num表示取得第几个匹配的元素。
29
2020
07

请指出.bind(),.live()和.delegate()的区别。

在操纵DOM的语境中,document是根节点。现在我们可以较容易地说明.bind()、.live()和.delegate()的不同之处了。.bind()1 $('a').bind('click', function() {alert("That tickles!")});这是最简单的绑定方法了。JQuery扫描文档找出所有的$(‘a’)元素,并把alert函数绑定到每个元素的click事件上。.live()1 $('a').l
29
2020
07

请指出$和$.fn的区别,或者说出$.fn的用途。

Jquery为开发插件提供了两个方法,分别是:1 $.extend(obj);2 $.fn.extend(obj);1.那么这两个分别是什么意思?$.extend(obj);是为了扩展jquery本身,为类添加新的方法。$.fn.extend(obj);给JQUERY对象添加方法。2.$.fn中的fn是什么意思,其实是prototype,即$.fn=$.prototype;具体用法请看下面的例子:1 $.extend({2 3     add:function(a,
29
2020
07

"i'm a lasagna hog".split("").reverse().join("");问题:上面的语句的返回值是什么?

答案:"goh angasal a m'i";
29
2020
07

请写出一个函数实现N!的计算。N取很大的值时,该怎么办?

使用循环、递归都能写出函数。当N取值很大时,应该考虑把数值转化为字符串再进行运算。大数乘法再转化为大数加法运算,其具体算法应该有不少C语言实现,可以参考一下。
29
2020
07

(window.foo||(window.foo="bar"));问题:window.foo的值是什么?

答案:"bar"只有window.foo为假时的才是上面答案,否则就是它本身的值。var foo="Hello";(function(){var bar="World";alert(foo+bar);})();alert(foo+bar);
29
2020
07

问题:上面两个alert的结果是什么?

答案:"Hello World"和ReferenceError:bar is not defined
29
2020
04

描述以下变量的区别:null,undefined或undeclared?

JavaScript的最初版本是这样区分的:null是一个表示"无"的对象,转为数值时为0;undefined是一个表示"无"的原始值,转为数值时为NaN。但是,上面这样的区分,在实践中很快就被证明不可行。目前,null和undefined基本是同义的,只有一些细微的差别。null表示"没有对象",即该处不应该有值。典型用法是:用来初始化一个变量,这个变量可能被赋值为一个对象。用来和一个已经初始化的变量比较,这个变量可以是也可以不是一个
29
2020
04

解释下为什么接下来这段代码不是IIFE(立即调用的函数表达式):function foo(){}();.

要做哪些改动使它变成IIFE?因为在解析器解析全局的function或者function内部function关键字的时候,默认是认为function声明,而不是function表达式,如果你不显示告诉编译器,它默认会声明成一个缺少名字的function,并且抛出一个语法错误信息,因为function声明需要一个名字。1 var foo = function() {2     // doSomeThing.3 };4 5 foo();
29
2020
04

什么是哈希表?

散列表(也叫哈希表),是根据关键码值直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。
29
2020
04

解释下原型继承的原理。

以下代码展示了JS引擎如何查找属性:1 function getProperty(obj,prop) {2     if (obj.hasOwnProperty(prop)) {3         return obj[prop];4     } else if (obj.__proto__!==null) {5         return getProperty(obj._
29
2020
04

解释下JavaScript中this是如何工作的。

this永远指向函数运行时所在的对象,而不是函数被创建时所在的对象。匿名函数或不处于任何对象中的函数指向window 。1.如果是call,apply,with,指定的this是谁,就是谁。2.普通的函数调用,函数被谁调用,this就是谁。
29
2020
04

解释下事件代理。

JavaScript事件代理则是一种简单的技巧,通过它你可以把事件处理器添加到一个父级元素上,这样就避免了把事件处理器添加到多个子级元素上。当我们需要对很多元素添加事件的时候,可以通过将事件添加到它们的父节点而将事件委托给父节点来触发处理函数。这主要得益于浏览器的事件冒泡机制。事件代理用到了两个在JavaSciprt事件中常被忽略的特性:事件冒泡以及目标元素。1 function getEventTarget(e) {2     e=e||window.event;3 &nb
29
2020
04

你目前在使用哪一套CSS框架,或者在产品线上使用过哪一套?(Bootstrap,PureCSS,Foundation等等)

如果有,请问是哪一套?如果可以,你如何改善CSS框架?请问你有使用过CSS Flexbox或者Grid specs吗?如果有,请问在性能和效率的方面你是怎么看的?
29
2020
04

请罗列出你所知道的display属性的全部值。

display属性的值列表如下:
29
2020
04

解释一下你对盒模型的理解,以及如何在CSS中告诉浏览器使用不同的盒模型来渲染你的布局。

关于盒模型请看文章CSS之布局与定位。请解释一下*{box-sizing:border-box;}的作用,并且说明使用它有什么好处?说到IE的bug,在IE6以前的版本中,IE对盒模型的解析出现一些问题,跟其它浏览器不同,将border与padding都包含在width之内。而另外一些浏览器则与它相反,是不包括border和padding的。在我们开发的过程中会发现,有时候,如果对页面中的大区域进行设置时,将border、padding计算到width和height之内,反而更灵活。但W3C的C
29
2020
04

解释下浏览器是如何判断元素是否匹配某个CSS选择器?

从后往前判断。浏览器先产生一个元素集合,这个集合往往由最后一个部分的索引产生(如果没有索引就是所有元素的集合)。然后向上匹配,如果不符合上一个部分,就把元素从集合中删除,直到真个选择器都匹配完,还在集合中的元素就匹配这个选择器了。举个例子,有选择器:1 body.ready#wrapper>.lol233先把所有class中有lol233的元素拿出来组成一个集合,然后上一层,对每一个集合中的元素,如果元素的parent id不为#wrapper则把元素从集合中删去。再向上,从这个元素的父元
29
2020
04

如果设计中使用了非标准的字体,你该如何去实现?

所谓的标准字体是多数机器上都会有的,或者即使没有也可以由默认字体替代的字体。方法:用图片代替web fonts在线字库,如Google Webfonts,Typekit等等;http://www.chinaz.com/free/2012/0815/269267.shtml;@font-face,Webfonts(字体服务例如:Google Webfonts,Typekit等等。)
29
2020
04

使用CSS预处理器的优缺点有哪些?

   LESS&SassLESS是受Sass启发而开发的工具,它列出了如下开发的理由:     “为什么要开发一个Sass的替代品呢?原因很简单:首先是语法。Sass的一个关键特性是缩进式的语法,这种语法可以产生柱式外观的代码。但是你需要花费时间学习一门新的语法以及重新构建你现在的样式表。LESS给CSS带来了很多特性,使得LESS能够和CSS无缝地紧密结合在一起。因此,你可以平滑地由CSS迁移到LESS,如果你只是对使用变量或者操作感兴
29
2020
04

在书写高效CSS时会有哪些问题需要考虑?

1.样式是:从右向左的解析一个选择器;2.ID最快,Universal最慢有四种类型的key selector,解析速度由快到慢依次是:ID、class、tag和universal ;3.不要tag-qualify(永远不要这样做ul#main-navigation{}ID已经是唯一的,不需要Tag来标识,这样做会让选择器变慢。);4.后代选择器最糟糕(换句话说,下面这个选择器是很低效的:html body ul li a{});5.想清楚你为什么这样写;6.CSS3的效率问题(CSS3选择器(
29
2020
04

如何优化网页的打印样式?

<link rel = "stylesheet" type = "text/css" media = "screen" href = "xxx.css"/>其中media指定的属性就是设备,显示器上就是screen,打印机则是print,电视是tv,投影仪是projection。打印样式示例如下:<link rel = "stylesheet" type = "text
29
2020
04

你熟悉SVG样式的书写吗?

SVG 意为可缩放矢量图形(Scalable Vector Graphics)。什么是SVG?SVG 指可伸缩矢量图形 (Scalable Vector Graphics)SVG 用来定义用于网络的基于矢量的图形SVG 使用 XML 格式定义图形SVG 图像在放大或改变尺寸的情况下其图形质量不会有所损失SVG 是万维网联盟的标准SVG 与诸如 DOM 和 XSL 之类的 W3C 标准是一个整体书写示例如下:1 <?xml version="1.0" standalone
29
2020
04

你用过媒体查询,或针对移动端的布局/CSS吗?

媒体查询,就是响应式布局。通过不同的媒介类型和条件定义样式表规则。媒介查询让CSS可以更精确作用于不同的媒介类型和同一媒介的不同条件。语法结构及用法:@media 设备名 only (选取条件) not (选取条件) and(设备选取条件),设备二{sRules}。示例如下: 1 /* 当浏览器的可视区域小于980px */ 2 @media screen and (max-width: 980px) { 3 #wrap {width: 90%; margin:0
29
2020
04

你用过栅格系统吗?如果使用过,你最喜欢哪种?

比如:Bootstrap,流式栅格系统,http://960.gs/,栅格系统延续美学。
29
2020
04

如何视觉隐藏网页内容,只让它们在屏幕阅读器中可用?

display:none;的缺陷搜索引擎可能认为被隐藏的文字属于垃圾信息而被忽略屏幕阅读器(是为视觉上有障碍的人设计的读取屏幕内容的程序)会忽略被隐藏的文字。visibility:hidden;的缺陷这个大家应该比较熟悉就是隐藏的内容会占据他所应该占据物理空间3.overflow:hidden;一个比较合理的方法.texthidden{display:block;/*统一转化为块级元素*/overflow:hidden;width:0;height:0;}就像上面的一段CSS所展示的方法,将宽度
29
2020
04

讨论CSS hacks,条件引用或者其他。

各个浏览器都认识,这里给firefox用;\9所有的ie浏览器可识别;background-color:yellow\0;\0是留给ie8的+background-color:pink;+ie7定了;__专门留给神奇的ie6;:root#test{background-color:purple\9;}:root是给ie9的,@media all and(min-width:0px){#test{background-color:black\0;}}这个是老是跟ie抢着认\0的神奇的opera,必
29
2020
04

你最喜欢的图片替换方法是什么,你如何选择使用。

<h2><span图片丢这里></span>Hello World</h2>把span背景设成文字内容,这样又可以保证seo,也有图片的效果在上面。一般都是:alt,title,onerror。
29
2020
04

解释下CSS sprites,以及你要如何在页面或网站中使用它。

CSS Sprites其实就是把网页中一些背景图片整合到一张图片文件中,再利用CSS的“background-image”,“background-repeat”,“background-position”的组合进行背景定位,background-position可以用数字能精确的定位出背景图片的位置。
29
2020
04

列举不同的清除浮动的技巧,并指出它们各自适用的使用场景。

1.使用空标签清除浮动。这种方法是在所有浮动标签后面添加一个空标签定义css clear:both.弊端就是增加了无意义标签。2.使用overflow。给包含浮动元素的父标签添加css属性overflow:auto;zoom:1;zoom:1用于兼容IE6。3.使用after伪对象清除浮动。该方法只适用于非IE浏览器。具体写法可参照以下示例。使用中需注意以下几点。一、该方法中必须为需要清除浮动元素的伪对象中设置height:0,否则该元素会比实际高出若干像素;二、content属性是必须的,但其
29
2020
04

解释下浮动和它的工作原理。

关于浮动我们需要了解,浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。要想使元素浮动,必须为元素设置一个宽度(width)。虽然浮动元素不是文档流之中,但是它浮动后所处的位置依然是在浮动之前的水平方向上。由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样,下面的元素填补原来的位置。有些元素会在浮动元素的下方,但是这些元素的内容并不一定会被浮动的元素所遮盖,对内联元素进行定位时,这些元素会考虑浮动元素的边界,会围绕着浮动元素放置。也可以把
29
2020
04

描述下“reset”CSS文件的作用和使用它的好处。

因为浏览器的品种很多,每个浏览器的默认样式也是不同的,所以定义一个css reset可以使各浏览器的默认样式统一。
29
2020
04

使用XHTML的局限有哪些?

XHTML 与HTML的区别为:XHTML 元素必须被正确地嵌套。XHTML 元素必须被关闭。标签名必须用小写字母。XHTML 文档必须拥有根元素。局限:所有的 XHTML 元素都必须被正确地嵌套,XHTML 必须拥有良好的结构,所有的标签必须小写,并且所有的 XHTML 元素必须被关闭。所有的 XHTML 文档必须拥有 DOCTYPE 声明,并且 html、head、title 和 body 元素必须存在。虽然代码更加的优雅,但缺少容错性,不利于快速开发。
29
2020
04

请描述一下cookies,sessionStorage和localStorage的区别?

sessionStorage和localStorage是HTML5 Web Storage API提供的,可以方便的在web请求之间保存数据。有了本地数据,就可以避免数据在浏览器和服务器间不必要地来回传递。sessionStorage、localStorage、cookie都是在浏览器端存储的数据,其中sessionStorage的概念很特别,引入了一个“浏览器窗口”的概念。sessionStorage是在同源的同窗口(或tab)中,始终存在的数据。也就是说只要这个浏览器窗口没有关闭,即使刷新页
29
2020
04

如果把HTML5看作做一个开放平台,那它的构建模块有哪些?

<nav>,<header>,<section>,<footer>等。
29
2020
04

如果网页内容需要支持多语言,你会怎么做?

下面这些问题需要考虑:应用字符集的选择,选择UTF-8编码语言书写习惯&导航结构数据库驱动型网站
29
2020
04

浏览器标准模式和怪异模式之间的区别是什么?

W3C标准推出以后,浏览器都开始采纳新标准,但存在一个问题就是如何保证旧的网页还能继续浏览,在标准出来以前,很多页面都是根据旧的渲染方法编写的,如果用的标准来渲染,将导致页面显示异常。为保持浏览器渲染的兼容性,使以前的页面能够正常浏览,浏览器都保留了旧的渲染方法(如:微软的IE)。这样浏览器渲染上就产生了Quircks mode和Standars mode,两种渲染方法共存在一个浏览器上。IE盒子模型和标准W3C盒子模型:ie的width包括:padding\border。标准的width不包括
29
2020
04

doctype(文档类型)的作用是什么?你知道多少种文档类型?

此标签可告知浏览器文档使用哪种HTML或XHTML规范。该标签可声明三种DTD类型,分别表示严格版本、过渡版本以及基于框架的HTML文档。HTML 4.01规定了三种文档类型:Strict、Transitional以及Frameset。XHTML 1.0规定了三种XML文档类型:Strict、Transitional以及Frameset。Standards(标准)模式(也就是严格呈现模式)用于呈现遵循最新标准的网页,而Quirks(包容)模式(也就是松散呈现模式或者兼容模式)用于呈现为传统浏览器
29
2020
04

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

FOUC(Flash Of Unstyled Content)--文档样式闪烁<style type="text/css"media="all">@import"../fouc.css";</style>而引用CSS文件的@import就是造成这个问题的罪魁祸首。IE会先加载整个HTML文档的DOM,然后再去导入外部的CSS文件,因此,在页面DOM加载完成到CSS导入完成中间会有一段时间页面上的内容是没有样式的,
29
2020
04

请谈一下你对网页标准和标准制定机构重要性的理解。

w3c存在的意义就是让浏览器兼容性问题尽量小,首先是他们对浏览器开发者的约束,然后是对开发者的约束。
29
2020
04

如果今年你打算熟练掌握一项新技术,那会是什么?

nodejs,html5,css3,less等。
29
2020
04

你都使用哪些工具来测试代码的性能?

Profiler,JSPerf(http://jsperf.com/nexttick-vs-setzerotimeout-vs-settimeout),Dromaeo。
29
2020
04

请写一个简单的幻灯效果页面

如果不使用JS来完成,可以加分。(如:纯CSS实现的幻灯片效果)
29
2020
04

如果你参与到一个项目中,发现他们使用Tab来缩进代码,但是你喜欢空格,你会怎么做?

建议这个项目使用像EditorConfig(http://editorconfig.org/)之类的规范为了保持一致性,接受项目原有的风格直接使用VIM的retab命令
29
2020
04

请说出三种减少页面加载时间的方法。(加载时间指感知的时间或者实际加载时间)

1.优化图片2.图像格式的选择(GIF:提供的颜色较少,可用在一些对颜色要求不高的地方)3.优化CSS(压缩合并css,如margin-top,margin-left...)4.网址后加斜杠(如www.campr.com/目录,会判断这个“目录是什么文件类型,或者是目录。)5.标明高度和宽度(如果浏览器没有找到这两个参数,它需要一边下载图片一边计算大小,如果图片很多,浏览器需要不断地调整页面。这不但影响速度,也影响浏览体验。当浏览器知道了高度和宽度参数后,即使图片暂时无法显示,页面上也会腾出图片
29
2020
04

为什么利用多个域名来提供网站资源会更有效?

1.CDN缓存更方便2.突破浏览器并发限制(一般每个域名建立的链接不超过6个)3.Cookieless,节省带宽,尤其是上行带宽一般比下行要慢4.对于UGC的内容和主站隔离,防止不必要的安全问题(上传js窃取主站cookie之类的)。正是这个原因要求用户内容的域名必须不是自己主站的子域名,而是一个完全独立的第三方域名。5.数据做了划分,甚至切到了不同的物理集群,通过子域名来分流比较省事。这个可能被用的不多。PS:关于Cookie的问题,带宽是次要的,安全隔离才是主要的。关于多域名,也不是越多越好
29
2020
04

你能描述一下渐进增强和优雅降级之间的不同吗?

优雅降级:Web站点在所有新式浏览器中都能正常工作,如果用户使用的是老式浏览器,则代码会检查以确认它们是否能正常工作。由于IE独特的盒模型布局问题,针对不同版本的IE的hack实践过优雅降级了,为那些无法支持功能的浏览器增加候选方案,使之在旧式浏览器上以某种形式降级体验却不至于完全失效.渐进增强:从被所有浏览器支持的基本功能开始,逐步地添加那些只有新式浏览器才支持的功能,向页面增加无害于基础浏览器的额外样式和功能的。当浏览器支持时,它们会自动地呈现出来并发挥作用。
29
2020
04

线程与进程的区别

一个程序至少有一个进程,一个进程至少有一个线程。线程的划分尺度小于进程,使得多线程程序的并发性高。另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程
29
2020
04

说说你对语义化的理解?

1:去掉或样式丢失的时候能让页面呈现清晰的结构:html本身是没有表现的,我们看到例如<h1>是粗体,字体大小2em,加粗;<strong>是加粗的,不要认为这是html的表现,这些其实html默认的css样式在起作用,所以去掉或样式丢失的时候能让页面呈现清晰的结构不是语义化的HTML结构的优点,但是浏览器都有有默认样式,默认样式的目的也是为了更好的表达html的语义,可以说浏览器的默认样式和语义化的HTML结构是不可分割的。2.屏幕阅读器(如果访客有视障)会完全根据你的
29
2020
04

你如何对网站的文件和资源进行优化?

期待的解决方案包括:文件合并文件最小化/文件压缩使用CDN托管缓存的使用(多个域名来提供缓存)其他。
10
2020
02

bootstrap文件结构

如下图所示,红色框内是bootstrap的结构:
14
2020
01

Bootstrap中显示标签的class?

class="label"
14
2020
01

Bootstrap如何设置按钮的下拉菜单?

在一个 .btn-group 中放置按钮和下拉菜单即可。
14
2020
01

Bootstrap如何制作按钮组?以及水平按钮组和垂直按钮组的优先级?

(1)用class="btn-group"的<p>去包裹按钮组;class="btn-group-vertical"可设置垂直按钮组。(2)btn-group的优先级高于btn-group-vertical的优先级。
14
2020
01

除了屏幕阅读器外,其他设备上隐藏元素的class?

class="sr-only"
14
2020
01

使用Bootstrap如何创建表单控件的帮助文本?

增加class="help-block"的span标签或p标签。
14
2020
01

使用Bootstrap创建水平表单的基本步骤?

(1)向父<form>元素添加class="form-horizontal";(2)把标签和控件放在一个带有class="form-group"的<p>中;(3)向标签添加class="control-label"。
13
2020
01

用bootstrap中的栅格做网页布局的基本结构是什么?默认将一行分为多少列?

答:容器中设置行,行内设置列、默认将一行分为12个单元格(列)
13
2020
01

如何编写响应式网页?

答:(1)声明viewport元标签(2)所有容器/文字/图片 使用相对尺寸(3)流式布局+弹性布局(4)使用CSS3 Media Query技术
13
2020
01

同时监听多个scss文件的命令是什么?

答:node-sass -w scss文件夹 –o css文件夹
13
2020
01

在scss中如何定义混合器以及引用?

答:@mixin 混合器名称{ 样式声明 }通过@include来使用混合器。
13
2020
01

使用Bootstrap激活或禁用按钮要如何操作?

答:激活按钮:给按钮增加.active的class禁用按钮:给按钮增加disabled="disabled"的属性
13
2020
01

Bootstrap如何制作按钮组?

答:用class="btn-group"的去包裹按钮组;class="btn-group-vertical"可设置垂直按钮组。
13
2020
01

Bootstrap中设置分页的class?

默认的分页:class="pagination"默认的翻页:class="pager"
13
2020
01

Bootstrap中如何制作徽章?

答:<span class=“badge”>26</span>
13
2020
01

Bootstrap中超大屏幕的作用是什么?

答:设置class="jumbotron"可以制作超大屏幕,该组件可以增加标题的大小并增加更多的外边距。
13
2020
01

Bootstrap 网格系统列与列之间的间隙宽度是多少?

答:间隙宽度为30px(一个列的每边分别是15px)。
13
2020
01

用Bootstrap,如何设置文字的对齐方式?

答:class=“text-center” 设置居中文本class=“text-right” 设置向右对齐文本class=“text-left” 设置向左对齐文本
11
2020
01

Bootstrap中的导航都有哪些?

(1)导航元素:有class="nav nav-tabs"的标签页导航,还有class="nav nav-pills"的胶囊式标签页导航;(2)导航栏:class="navbar navbar-default" role="navigation";(3)面包屑导航:class="breadcrumb"
11
2020
01

Bootstrap中的输入框组如何制作?

(1)把前缀或者后缀元素放在一个带有class="input-group"中的<div>中;(2)在该<div>内,在class="input-group-addon"的<span>里面放置额外的内容;(3)把<span>放在<input>元素的前面或后面。
11
2020
01

Bootstrap如何制作按钮组?以及水平按钮组和垂直按钮组的优先级?

(1)用class="btn-group"的<div>去包裹按钮组;class="btn-group-vertical"可设置垂直按钮组。(2)btn-group的优先级高于btn-group-vertical的优先级。
03
2020
01

container 和container-fluid的区别

.container 类用于固定宽度并支持响应式布局的容器。.container-fluid 类用于 100% 宽度,占据全部视口(viewport)的容器。
03
2020
01

bootstrap的栅格模型

<div class="container">    <div class="row">        <div class="col-xs-6"></div>        <div cl
31
2019
12

bootstrap标签页切换

很多时候,我们希望写一个简单的标签页.以下使用bootstrap来实现…首先导入bootstrap的依赖:jquery的依赖、bootstrap的依赖注意: jquery的依赖要在bootstrap依赖的前面导入,原因是:bootstrap的某些功能是在jquery的基础上实现的在 https://www.bootcdn.cn/jquery/ 导入jquery的CDN<script src="https://cdn.bootcss.com/jquery/3.3.1/jq
27
2019
12

使用Bootstrap创建垂直表单的基本步骤

(1)向父<form>元素添加role="form";(2)把标签和控件放在一个带有class="form-group"的<div>中,这是获取最佳间距所必需的;(3)向所有的文本元素<input>、<textarea>、<select>添加class="form-control"。
27
2019
12

为什么使用bootstrap

Bootstrap具有移动设备优先、浏览器支持良好、容易上手、响应式设计等优点,所以Bootstrap被广泛应用。
27
2019
12

Bootstrap如何设置响应式表格?

增加class="table-responsive"
27
2019
12

使用Bootstrap时,要声明的文档类型是什么?以及为什么要这样声明?

答:使用Bootstrap时,需要使用 HTML5 文档类型(Doctype)。因为Bootstrap 使用了一些 HTML5 元素和 CSS 属性,如果在 Bootstrap 创建的网页开头不使用 HTML5 的文档类型(Doctype),可能会面临一些浏览器显示不一致的问题,甚至可能面临一些特定情境下的不一致,以致于代码不能通过 W3C 标准的验证。
27
2019
12

对于各类尺寸的设备,Bootstrap设置的class前缀分别是什么?

答:1.超小设备手机(<768px):.col-xs-2.小型设备平板电脑(>=768px):.col-sm-3.中型设备台式电脑(>=992px):.col-md-4.大型设备台式电脑(>=1200px):.col-lg-
26
2019
12

Bootstrap有哪些关于 img 的class?

答:1. .img-rounded 为图片添加圆角2. .img-circle 将图片变为圆形3. .img-thumbnail 缩略图功能4. .img-responsive 图片响应式 (将很好地扩展到父元素)
26
2019
12

Bootstrap中有关元素浮动及清除浮动的class?

答:1.class=“pull-left” 元素浮动到左边2.class=“pull-right” 元素浮动到右边3.class=“clearfix” 清除浮动
26
2019
12

Bootstrap如何制作下拉菜单?

答:1.将下拉菜单包裹在class="dropdown"的<div>中;2.在触发下拉菜单的按钮中添加:class=“btn dropdown-toggle” id=“dropdownMenu1” data-toggle=“dropdown”3.在包裹下拉菜单的ul中添加:class=“dropdown-menu” role=“menu” aria-labelledby=“dropdownMenu1”4.在下拉菜单的列表项中添加:role=“presentatio
26
2019
12

为什么bootstrap栅格系统是12列?

答:因为12是1,2,3,4,6的最小公倍数,所以12列栅格系统相对较灵活,支持将一行分成1列,2列,3列,4列,6列。若是想要支持5列,那1,2,3,4,5的最小公倍数是60,而60这个数对于栅格系统来说显然太大了。18能均分4列不?24能做的12都能做,所以12是最好的选择。