2、position 有几个值以及他们的作用
3、浏览器的内核(呈现引擎)
5、为什么利用多个域名来存储网站资源会更有效?
6、网页制作会用到的图片格式有哪些?
7、一次 js 请求一般情况下有哪些地方会有缓存处理?
8、一个页面上有大量的图片(大型电商网站),加载很慢,你有哪些方法优化这些图片的加载?
9、你如何理解 HTML 结构的语义化?
10、有哪项方式可以对一个 DOM 设置它的 CSS ?
11、CSS 都有哪些选择器?
12、<p>标签内的文字是什么颜色的?
13、CSS 中可以通过哪些属性定义 ,使得一个 DOM 元素不显示在浏览器可视范围内?
15、请用 CSS 写一个简单的幻灯片效果页面?
16、行内元素和块级元素的具体区别是什么?行内元素的 padding 和 margin 可设置吗?
17、浏览器默认的天生 inline-block 元素(拥有内在尺寸,可设置高宽,但不会自动换行),有哪些?
18、什么是外边距重叠?重叠的结果是什么?
21、 css 中可以让文字在垂直和水平方向上重叠的两个属性是什么?
22、如何垂直居中一个浮动元素?
25、Sass 、Less 是什么?大家为什么要使用他们?
32、IE6 不支持 PNG 透明背景,解决办法?
33、CSS属性选择器和伪类选择器?
35、css 优先级算法如何计算?
37、说说 display 属性有哪些?可以做什么?
38、哪些 css 属性可以继承?
40、vh、vm是什么单位?
事件冒泡:事件开始时由最具体的元素逐级向上传播到不具体的节点
事件捕获:与事件冒泡相反
事件委托:利用事件冒泡的原理,让父元素代替执行事件(做代理)
当使用 RegExp()构造函数的时候,转义引号需要双反斜杠(即\表示正则字面量的一个\),使用正则字面量的效率更高。
31、看下面代码回答会输出什么?解释原因。
原因:Javascript 事件处理器在线程空闲之前不会运行,也就是说,所有setTimeout会挂起,当执行的时候i已经加到了4,追问,如何让上述代码输出 1 2 3?
32、写一个 function ,清除字符串前后的空格。(兼容所有浏览器)
// \s 匹配空白字符:回车、换行、制表符 tab 空格callee是对象的一个属性,该属性是一个指针,指向参数arguments对象的函数,例子如写一个阶乘函数。
caller是函数对象的一个属性,该属性保存着调用当前函数的函数的引用(指向当前函数的直接父函数)
a(); //结果就是弹出函数a和内容38、写出程序运行的结果?
39、补充按钮事件的函数,确认用户是否退出当前页面,确认之后关闭窗口
40、写出简单描述 html 标签( 不带属性的开始标签和结束标签 )的正则表达式。
42、列举浏览器对象模型 BOM 里常用的至少 4 个对象 ,并列举 window 对象的常用方法至少 5 个
44、简述创建函数的几种方式
第二种(函数表达式): 第三种(函数对象方式):1、工厂方式:没有解决对象识别的问题
2、构造函数模式:函数不能共享
3、原型模式: 共享的太多
4、组合使用构造函数原型模式:认可度高
5、动态原型模式:稳妥
6、寄生构造函数模式:特殊使用
7、稳妥构造函数模式:安全
与寄生构造函数类似,不使用this,不用new操作符
原型链:全部共享一个实例属性,不能向超类型的构造函数中传递参数
借用构造函数继承:函数复用存在问题
ES5新增方法object.create()接受两个参数,第一个为用作原型的对象,第二个为一个覆盖原属性的对象
寄生组合式继承:最理想的继承范式
(曾经写过的一篇详细文章)
1. 解决加载缓慢的第三方内容如图标和广告等的加载问题
3. 并行加载脚本
2. 即时内容为空,加载也需要时间
2.安全性问题。如果 cookie 被人拦截了,那人就可以取得所有的 session 信息。即使加密也与事无补,因为拦截者并不需要知道 cookie 的意义,他只要原样转发 cookie 就可以达到目的了。
3.有些状态不可能保存在客户端。例如,为了防止重复提交表单,我们需要在服务器端保存一个计数器。如果我们把这个计数器保存在客户端,那么它起不到任何作用。
50、js 延迟加载的方式有哪些?
3. 按需异步载入 js
52、以下代码输出什么?( 连等赋值的运算顺序 )
在连等赋值A=B=C中真正的运算规则是 B = C;A = B;即连续赋值是从右至左永远只取等号右边的表达式结果赋值到等号左侧。(详解:)
CommonJS是适用于服务器端的,著名的Node执行环境就是采用的CommonJS模式。它是同步加载不同模块文件。
Definition,即异步模块定义。它是适用于浏览器端的一种模块加载方式。从名字可知,AMD采用的是异步加载方式(js中最典型的异步例子就是ajax)。浏览器需要使用的js文件(第一次加载,忽略缓存)都存放在服务器端,从服务器端加载文件到浏览器是受网速等各种环境因素的影响的,如果采用同步加载方式,一旦js文件加载受阻,后续在排队等待执行的js语句将执行出错,会导致页面的‘假死’,用户无法使用一些交互。所以在浏览器端是无法使用CommonJS的模式的。目前,主要有两个Javascript库实现了AMD规范:require.js和curl.js
54、判断一个字符串中出现次数最多的字符,统计这个次数
1、执行顺序的区别,IE采用冒泡型事件,Netscape使用捕获型事件,DOM使用先捕获后冒泡型事件。
2、this指向有区别,IE下利用attachEvent注册的处理函数调用时this指向不再是先前注册事件的元素,这时的this为window对象了。
3、事件监听函数的区别
56、解释 jsonp 的原理,以及为什么不是真正的 ajax?
动态创建 script 标签,回调函数
Ajax 是页面无刷新请求数据操作
57、javascript 的本地对象,内置对象和宿主对象?
我们似乎很难分清“内置对象”与“本地对象”的区别。而ECMA-262 只定义了两个内置对象,即 Global 和 Math (它们也是本地对象,根据定义,每个内置对象都是本地对象)。
由ECMAScript实现的宿主环境提供的对象,可以理解为:浏览器提供的对象。所有的BOM和DOM都是宿主对象。
58、写一个原生Ajax请求
先将字符串转换为数组 split(),利用数组的反序函数 reverse()颠倒数组,再利用 jion() 转换为字符串
59、字符串反转 + 数字转换成货币形式