21.请解释一下为什么会出现浮动和什么时候需要清除浮动?清除浮动的方式
为什么出现浮动?
- 浮动float最开始出现的意义是为了让文字环绕图片而已,但人们发现,如果想要三个块级元素并排显示,都给它们加个float来得会比较方便。、
什么时候清除浮动?
- 如果想要实现三个块级元素并排显示
清除浮动的方式?
-
1.在父元素的最后加一个冗余元素并为其设置clear:both
-
2.采用伪元素,这里我们使用:after。添加一个类clearfix
.clearfix:after { content: "." ; display: block ; height: 0 ; clear: both ; visibility: hidden ; }
-
3.使用overflow属性,给父元素添加overflow:hidden ||auto
-
详情链接 https://www.cnblogs.com/lchsirblog/p/9582989.html
22.简述 arguments对象的作用
在函数代码中,使用特殊对象 arguments可以访问函数的参数。即,开发者在定义函数时,无需明确的为方法声明参数,也可以在方法体中使用 arguments来访问参数。这是因为, arguments是一种特殊对象,在函数代码中,表示函数的参数数组。
正因为 arguments表示参数组成的数组,因此,首先可以使用 arguments.length 检测函数的参数个数,其次,可以通过下标( arguments[index])来访问某个参数。这样,可以用 arguments对象判断传递给函数的参数个数并获取参数,适用于函数参数无法确定个数的情况下。
23.什么是栈?在 JavaScript中,如何模拟栈操作?
栈( stack)是一种运算受限的线性表,其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对的把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。
在 JavaScript中,可以使用数组及其相关操作来模拟栈操作。首先,使用数组存储一列元素,然后使用数组的 push()方法在数组的尾部添加指定的元素,类似于在栈顶添加元素,即顶部入;然后使用数组的 pop()删除并返回数组尾部的元素,类似于顶部出栈,即后入的元素先出。
24.简要描述 DOM操作中查找元素的方式
1、 通过 HTML中的信息选取元素,比如:
a) getElementById()方法:根据元素的 id属性值查询单个节点;
b) getElementsByTagName()方法:根据元素标签的名称查询节点;
c) getElementsByName()方法:根据元素 name属性的值查询节点。
2、 通过 CSS类选取元素
a) getElementsByClassName(‘className’)方法:根据class名称选取元素;
b) querySelector(‘selector’)和 querySelectorAll(‘selector’)方法:根据 CSS选择器
选取元素。
3、 通过 document对象选取,如 document.all、 document.body等;
4、 通过节点遍历选取节点,如 parentNode、 firstChild等。
25.简述window对象除 document以外的一些常用子对象,并描述其作用?
window对象有很多子对象,除了 document以外,还有如下常用子对象:
- screen对象:此对象包含有关客户端显示屏幕的信息,常用于获取屏幕的分
辨率和色彩; - history对象:此对象包含用户(在浏览器窗口中)访问过的 URL;
- location对象:此对象包含有关当前 URL的信息,常用于获取和改变当前浏览的网址;
- navigator对象:此对象包含有关浏览器的信息,常用于获取客户端浏览器和操作系统信息;
- event对象:任何事件触发后将会产生一个 event对象,该对象记录事件发
生时的鼠标位置、键盘按键状态和触发对象等信息。
26.常见的浏览器兼容性问题总结
27.什么是事件冒泡
冒泡机制中,水泡从下往上升,经过不同层次的区域,最终到达最外层,在js中,气泡就相当于事件
,而水则相当于整个dom树
;事件从dom 树的底层 层层往上传递,直至传递到dom的根节点。
28.什么是事件委托
利用事件冒泡的原理,原本绑定在子元素身上的事件,现在绑定在父元素身上,由父元素监听事件的行为。
29.怎么阻止事件冒泡,阻止默认事件
event.stopPopagation()
event.preventDefault()
30.Javascript的事件流模型都有什么?
“DOM事件流”:三个阶段:事件捕捉,目标阶段,事件冒泡。
JS事件流最早要从IE和网景公司的浏览器大战说起,IE提出的是冒泡流,而网景提出的是捕获流,后来在W3C组织的统一之下,JS支持了冒泡流和捕获流,但是目前低版本的IE浏览器还是只能支持冒泡流(IE6,IE7,IE8均只支持冒泡流),所以为了能够兼容更多的浏览器,建议大家使用冒泡流。
31.Ajax 请求Get / post 区别:
答案: GET和POST是什么?HTTP协议中的两种发送请求的方法
区别:
GET
请求会将参数跟在URL
后面进行传递,而POST
请求则是作为HTTP
消息的实体内容发送给WEB
服务器GET
请求有数据长度限制 (大约2KB),而POST
理论上没有GET
请求的数据会被浏览器缓存起来,POST
不会POST
相对GET
来说比较安全- 在客户端使用
GET
请求时,服务端使用REequest.querystring
来获取参数,而客户端使用POST
请求时,服务器使用REequest.From
来获取参数 GET
是从服务器上获取数据,POST
是向服务器传送数据,- 在进行文件上传时只能使用
POST
而不能是GET