- Day1
- 思考题面试题:
经典面试题~
1.什么是盒子模型?
2.简述一下src与href的区别?
3.简述同步和异步的区别?
4.怎样添加、移除、移动、复制、创建和查找节点?
思考题:
1.站点 Logo 是否因出现在h1标签中?
2.是否应该支持 IE6?
答案:
1.什么是盒子模型?
在网页中,一个元素占有空间的大小由几个部分构成,其中包括元素的内容(content),元素的内边距(padding),元素的边框(border),元素的外边距(margin)四个部分。这四个部分占有的空间中,有的部分可以显示相应的内容,而有的部分只用来分隔相邻的区域或区域。4个部分一起构成了css中元素的盒模型。
2.简述一下src与href的区别
href 是指向网络资源所在位置,建立和当前元素(锚点)或当前文档(链接)之间的链接,用于超链接。
src是指向外部资源的位置,指向的内容将会嵌入到文档中当前标签所在位置;在请求src资源时会将其指向的资源下载并应用到文档内,例如js脚本,img图片和frame等元素。当浏览器解析到该元素时,会暂停其他资源的下载和处理,直到将该资源加载、编译、执行完毕,图片和框架等元素也如此,类似于将所指向资源嵌入当前标签内。这也是为什么将js脚本放在底部而不是头部。
3.简述同步和异步的区别
同步是阻塞模式,异步是非阻塞模式。
同步就是指一个进程在执行某个请求的时候,若该请求需要一段时间才能返回信息,那么这个进程将会一直等待下去,直到收到返回信息才继续执行下去;
异步是指进程不需要一直等下去,而是继续执行下面的操作,不管其他进程的状态。当有消息返回时系统会通知进程进行处理,这样可以提高执行的效率。
4.怎样添加、移除、移动、复制、创建和查找节点?
1)创建新节点
createDocumentFragment() //创建一个DOM片段
createElement() //创建一个具体的元素
createTextNode() //创建一个文本节点
2)添加、移除、替换、插入
appendChild() //添加
removeChild() //移除
replaceChild() //替换
insertBefore() //插入
3)查找
getElementsByTagName() //通过标签名称
getElementsByName() //通过元素的Name属性的值
getElementById() //通过元素Id,唯一性
思考题参考答案:
- 1.站点 Logo 是否因出现在h1标签中?
http://www.addpv.com.cn/wzjsnews/2017-03-07/1109.html
在网站的结构中,logo部分一般都放置在header模板里面,而header模板往往是多个页面通用。h1标签加在logo上之后,很多页面调用header模板就会拥有一个相同的h1。h1是用于显示网页的主标题,如果这样,每个页面的主标题就变成相同的了。
必须清楚的是,h1标签在每个页面上最多只能出现一次。举个例子,像wordpress这样的程序本身程序优化做得很好,文章页面的h1默认加在文章的标题上,一旦站长在logo上加上h1后,文章页就会出现两个h1了,这样就违背了添加h1的基本准则。
说真的,可以肯定的是h1真的不适合加在logo上,如果要加就尽量靠近在html 中的标签,越近越好,以便让搜索引擎最快的领略主题。
h1加好了,利于seo,加不好会影响seo,因此h1标签不能乱加,不能任性而为,特别要注意h1不要加在header里面,尤其是logo上。
- 2.是否应该支持 IE6?
参考:http://blog.csdn.net/xuanwuziyou/article/details/53996456
个人觉的还是有必要支持的,不管市场用户份额走向是什么样的,用户体验应该都是第一位的。