少见问题

【button的宽高跟别的行内块元素有区别】
1、<input type="buttom"></input><button></button>

button属性的元素会自带类似box-sizing:border-box属性;
如果设置固定宽度在外加padding值,宽高=padding值+内容宽高

【js中不通过getElementById获取ID或者标签】
1、js中不通过getElementById获取ID或者标签也可以在页面中直接调用dom元素节点定义的id值

eg

1
2
console.log(id); 最终结果也是输出指向该id的dom节点,原因是JS是在浏览器解析的而且JS是弱的编程语言,所以可以写得比较随意

【小盒子绝对定位设置高度100%就是视口(一屏)的高度】
1、小盒子的层层父级都没有定位,那么当小盒子绝对定位后并设置高度100%,那么小盒子实际高度为视口的高度(相当于body.clientHeight的高度)

当父级有定位的时候,子盒子的高度百分比一定是根据父级基数计算

eg:

1
2
3
4
5
6
7
8
9
10
html,body {
width: 100%;
height: 100px;
}
.wrap {
width: 400px;
height: 100%;
background-color: pink;
position: absolute; //实际高度为视口的高度并不是body的100px
}

【函数里变量名与形参冲突】
1、当函数里变量名与形参冲突,按顺序由上到下检查,最后输出会是变量的值
eg:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
(function (a){
console.log(a); // 1
var c = a;
var a = 4;
var b = a;
console.log(c); // 1
console.log(b); // 4
})('1')
```
【电脑的运行所谓多线程操作原理】
1、实际上当电脑同时打开游戏,音乐,电影,计算机是通过调频操作完成同时打开程序,也就是还是单线程,但为什么可以同时运作,就是调频操作
就是游戏运行0.0几毫秒,音乐用下一个0.0几毫秒,电影用下一个0.0几毫秒,不断的跳,在普通用户看就感觉是同时打开,但其实并不是多线程
【面试】
```javascript
function show(){
alert(1);
}
alert(show()); // 1 ----> undefine (因为show函数没有返回值)

(function(){}());(function(){})() 一样理解 ()里面的东西都是封闭的

【网页上富文本编辑器】(能在网页任何地方编写东西)
1、在控制台上 输入document.body.contentEditable = true

【this】
只要有闭包事件,它的调用者就是window,this就指向window,没有任何特殊情况

【块级元素里面的“行内块”元素的背景图不垂直居中显示】

1、正常情况有(行高)的块级元素里面包着行内块元素,行内块元素有背景图,背景图会垂直居中显示
但如果行内块元素里面也有文字,那么背景图就不会垂直居中显示,而是向上显示,原因是文字的存在,导致背景被挤走
解决办法在行内块元素内在重新定义行高等于行内块元素的高度

【script作为模板】
1、<script type="text/template" id="demo">

给 script 设置type= text/template ,标签里面的内容不会被执行,也不会显示在页面上,但是可以在另一个script里面通过获取