面向面试编程 1


写东西又不知道朝什么方向写
不如像高三一样面向考试

兼容性


ie6下为黑#000,ie7为红#f00,其他为绿#0f0;

p{
 color:#0f0
 *color:#000
 _color:#f00
}

CSS hack


针对不同的浏览器或不同版本写特定的CSS样式的方式

  1. 属性前缀法  
  2. 选择器前缀法
  3. IE条件注释法
  • IE6 能识别下划线和星号 _color,*color IE7只识别*
  • IE6能识别*html .class{},IE7能识别*+html .class{}
  • html下 只在IE6下生效 <!–[if IE 6]> 这段文字只在IE6浏览器显示

负margin


负margin是可行的,在我看来他会向相反方向移动位置,可使元素重叠

CSS清除浮动


  • 第一反应就是clear:both;
  • 居然还有个高大上的方法叫,加个伪类:after之后再加clear:both(我也不知道这方法和前面有啥区别)
  • 硬要说多种的话得多答一种父元素 overflow:auto;

JS数据类型


等号和全等的区别在于等号只比较值不比较类型而全等是即比较值又比较类型

  • null == undefined true 因为undefined值派生自null值,别深问,我也不知道
  • {} == {} , [] == [] 引用类型按引用访问,是两个不一样的对象所有返回的是false

DOM节点插入


用惯jquery就直接$.html()插入这样会慢,所以会想得到原生的答案

  • .innerHTML 和html()方法一样的原生方法,完全替换
  • .creatElement() 创造节点
  • .creatTextNode() 创造文本节点
  • .appendchild() 在子节点的最后插入节点
document.write(`<div id="parent">hello</div>`);
var dom = document.getElementById('parent');
for (i = 0; i < 100; i++) {
var para = document.createElement('p');
	para.innerHTML = i;
	dom.appendChild(para);
}

当初就有人问了我一道dom插入题,说要在ul里面插入一百个li,每个显示序号,我想也没想就直接,把li存成字符串循环一百次一口气全插入ul里了-。-现在想起来确实稚嫩

字符串修改


"hello world",有一个这样的字符串要产生一个新的字符串"h e l l o w o r l d",现在要对所有的string类都能用这个方法

String.prototype.addSpace = function(){
	return this.split('').join(' ');
}
'hello world'.addSpace();
"h e l l o   w o r l d"

JavaScript事件机制


  • 事件捕获阶段
  • 处于目标阶段
  • 事件冒泡阶段

一问JavaScript事件机制就有点蒙了,因为平时开发确实没时间想这个事情,直接就$().on('click','class',function(){}),最多加个e.preventDefault()。

window.document.write(`<div id="s1">s1<div id="s2">s2</div></div>`);
var s1 = document.getElementById('s1');
var s2 = document.getElementById('s2');
s1.addEventListener('click', function(){console.log('s1 catch')},true);
s2.addEventListener('click', function(){console.log('s2 catch')},true);
s1.addEventListener('click', function(){console.log('s1 bubble')},false);
s2.addEventListener('click', function(){console.log('s2 bubble')},false);
VM322:1 s1 catch
VM322:2 s2 catch
VM322:4 s2 bubble
VM322:3 s1 bubble

addEventListener函数用作时间绑定,第三个参数决定是捕获还是冒泡,true是捕获,false是冒泡;捕获从父节点传递到子节点,而冒泡反之。

原文链接

 

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注