面试题总结day02

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协议中的两种发送请求的方法

区别:

  1. GET 请求会将参数跟在 URL 后面进行传递,而 POST 请求则是作为 HTTP 消息的实体内容发送给 WEB 服务器
  2. GET 请求有数据长度限制 (大约2KB),而 POST 理论上没有
  3. GET 请求的数据会被浏览器缓存起来, POST 不会
  4. POST 相对 GET 来说比较安全
  5. 在客户端使用 GET 请求时,服务端使用 REequest.querystring 来获取参数,而客户端使用 POST 请求时,服务器使用 REequest.From 来获取参数
  6. GET 是从服务器上获取数据,POST 是向服务器传送数据,
  7. 在进行文件上传时只能使用 POST 而不能是 GET
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值