面试题总结

雪雯啊!
科技区音乐UP主 @Blibili面试题总结
1.简述document.write和 innerHTML的区别。
1.
- write是DOM方法,向文档写入HTML表达式或JavaScript代码,可列出多个参数,参数被顺序添加到文档中 ;
- innerHTML是DOM属性,设置或返回调用元素开始结束标签之间的HTML元素。
2.
- document.write只能重绘整个页面,
- innerHTML可以重绘页面的一部分。
3.两者都可动态包含外部资源如JavaScript文件
通过document.write插入<script>元素会自动执行其中的脚本;
大多数浏览器中,通过innerHTML插入<script>元素并不会执行其中的脚本。
2.javascript语言的执行环境是"单线程模式",这种模式的好处是实现起来比较简单,执行环境相对单纯;坏处是只要有一个任务耗时很长,后面的任务都必须排队等着,会拖延整个程序的执行,因此很多时候需要进行“异步模式”,请列举js异步编程的方法
- 回调函数,这是异步编程最基本的方法。
- 事件监听,另一种思路是采用事件驱动模式。任务的执行不取决于代码的顺序,而取决于某个事件是否发生。
- 发布/订阅,上一节的"事件",完全可以理解成"信号"。
- Promises对象,Promises 对象是CommonJS 工作组提出的一种规范,目的是为异步编程提供统一接口。
3.用户从手机的浏览器访问www.baidu.com,看到的可能跟桌面PC电脑,是不太一样的网页效果,会更适合移动设备使用。请简要分析一下,实现这种网页区分显示的原因及技术原理。
这种网页设计叫做响应式WEB设计,这样设计的原因是为了根据客户端不同的屏幕尺寸来智能显示最适合的用户体验界面,也叫作流式设计、自适应布局都能等。
技术原理:
- 媒体查询[@media screen and (max-width:960px)]/使我们根据设备的各种功能特性来设定相应的样式。媒体查询可以检测的特性有视口高度(height)、视口宽度(width)、device-width、device-height(设备屏幕的高度和宽度)、orientation(检查设备是处于横向还是纵向)、aspect-ratio:基于视口宽度和高度比、device-aspect-ratio基于渲染平面宽度和高度比、color各种颜色位数、color-index设备颜色索引表中的颜色数等等。
- 可以通过识别user-agent终端相关信息,后端动态返回与终端匹配的页面
4. null == undefined 为真吗?
- undefined值是通过null派生出来的,==时它会自动转化为null,所以返回true。不过如果用严格比较符===,不发生转化,将返回false。
5.w3c 制定的 javascript 标准事件模型,以下正确的顺序以及描述是
- 事件捕获->事件处理->事件冒泡
6.以下哪个不是RegExp对象的方法?
A.test
B.match
C.exec
D.compile
JavaScript RegExp 对象有3个方法:test()、exec()、compile()
- test():检测一个字符串是否匹配某个正则表达式,如果匹配成功,返回true,否则返回false;
- exec():检索字符串中与正则表达式匹配的值,返回一个数组,存放匹配的结果;如果未找到,返回null;
- compile():可以在脚本执行过程中编译正则表达式,也可以改变已有表达式。
注:match是支持正则表达式的String对象的方法
7.超链接访问过后hover样式就不出现了,被点击访问过的超链接样式不再具有hover和active了,解决方法是改变CSS属性的排列顺序?()
a:link {} a:visited {} a:hover {} a:active {}
8.常用的伪类选择器有哪些?(至少写出4个)
- 结构为类选择器: -type nth-of-type -child nth-child 其他::root :not :empty :target
- 状态伪类选择器: :focus :checked ::selection :enable :disabled :read-only :before :after
9.Input标签的type属性可以设置哪些值?(请至少列出6个).
| button | 定义可点击按钮(多数情况下,用于通过 JavaScript 启动脚本)。 |
|---|---|
| checkbox | 定义复选框。 |
| file | 定义输入字段和 "浏览"按钮,供文件上传。 |
| hidden | 定义隐藏的输入字段。 |
| image | 定义图像形式的提交按钮。 |
| password | 定义密码字段。该字段中的字符被掩码。 |
| radio | 定义单选按钮。 |
| reset | 定义重置按钮。重置按钮会清除表单中的所有数据。 |
| submit | 定义提交按钮。提交按钮会把表单数据发送到服务器。 |
| text | 定义单行的输入字段,用户可在其中输入文本。默认宽度为 20 个字符。 |
10.得到的结果是什么?
console.log(([])?true:false); //true
console.log(([]==false?true:false)); //true
console.log(({}==false)?true:false) //false