#每日两道前端面试题#

7次阅读

共计 688 个字符,预计需要花费 2 分钟才能阅读完成。

DOM 结构 – 两个节点之间可能存在哪些关系以及如何在节点之间任意移动
返回文档的根节点 <html>:document.documentElement 返回 <body>:document.body
IE 浏览器:返回当前文档中被激活的标签节点:document.activeElement 返回鼠标移出的源节点:event.fromElement 返回鼠标移入的源节点:event.toElement
搜狐浏览器:返回激活事件的源节点:event.target
返回父节点:node.parentNode,node.parentElement 返回所有子节点:node.childNodes 或 node.children 返回第一个子节点:node.firstChild 返回最后一个子节点:node.lastChild 返回指定节点之后紧跟的节点:node.nextSibling 返回指定节点前的紧跟节点:node.previousSibling
DOM 操作——怎样添加、移除、移动、复制、创建和查找节点
1. 创建新节点创建 DOM 片段:createDocumentFragment() 创建一个具体的元素:createElement() 创建一个文本节点:createTextNode()
2. 添加 | 移除 | 替换 | 插入 appendChild()removeChild()replaceChild()insertBefore()
3. 查找通过标签名称查找:getElementsByTagName() 通过元素的 Name 属性的值:getElementsByName() 通过元素 Id,唯一性:getElementById()

正文完
 0

每日两道前端面试题

7次阅读

共计 260 个字符,预计需要花费 1 分钟才能阅读完成。

浏览器是由哪三层构成的?
构成:结构层、表示层、行为层分别是:HTML CSS JavaScript 作用:HTML 实现页面结构,CSS 完成页面的表现与风格,JavaScript 实现一些客户端的功能与业务.
HTML5 的优缺点是什么?
优点:1. 提高了可用性和用户体验 2. 多了新标签,帮助开发人员定义重要内容 3. 很好的替代了 FLASH 和 Silverlight.4. 对 SEO 很友好 5. 被大量应用于移动应用程序和游戏 6. 可移植性好
缺点:标准没有被全部浏览器所支持,因新标签的引入,各浏览器缺少一种统一的数据描述格式,这一点减低用户体验.

正文完
 0

# 每日两道前端面试题 #

7次阅读

共计 704 个字符,预计需要花费 2 分钟才能阅读完成。

对语义化的理解
要先知道语义化是什么?根据内容的结构,选择合适的标签(代码语义).
为什么要有语义化?为了在没有 CSS 的情况下,页面也能呈现出很好地内容结构与代码结构,裸奔时也要最好看.1. 提高了用户体验 2. 有利于 SEO:与搜索引擎建立良好沟通,有助于爬虫爬取更多有效信息.3. 方便其他设备解析(如屏幕阅读器,移动设备)4. 便于团队开发和维护,语义化更具有可读性,且是未来网页发展的重要动向.
如何对网站的文件和资源进行优化
1. 文件合并文件最小化 / 文件压缩 2.CDN 托管缓存 CDN 可能有些人不清楚是什么,可以用以前买米车票的经历来形象比喻:8 年前,还没有火车票代售点一说,12306.cn 更是无从说起。那时候火车票还只能在火车站的售票大厅购买,而我所住的小县城并不通火车,火车票都要去市里的火车站购买,而从县城到市里,来回就是 4 个小时车程,简直就是浪费生命。后来就好了,小县城里出现了火车票代售点,可以直接在代售点购买火车,方便了不少,全市人民再也不用在一个点苦逼的排队买票了。
CDN 就可以理解为分布在每个县城的火车票代售点,用户在浏览网站的时候,CDN 会选择一个离用户最近的 CDN 边缘节点来响应用户的请求,这样海南移动用户的请求就不会千里迢迢跑到北京电信机房的服务器(假设源站部署在北京电信机房)上了。
CDN 的优势很明显:1.CDN 节点解决了跨运营商和跨地域访问的问题,访问延时大大降低;2. 大部分请求在 CDN 边缘节点完成,CDN 起到了分流作用,减轻了源站的负载。
如图所示:
答案引用:https://www.cnblogs.com/yb880…https://blog.csdn.net/wangxin…

正文完
 0

# 每日两道前端面试题 #

7次阅读

共计 863 个字符,预计需要花费 3 分钟才能阅读完成。

你能描述一下渐进增强和优雅降级之间的不同吗
优雅降级:Web 站点在所有新式浏览器中都能正常工作,如果用户使用的是老式浏览器,则代码会检查以确认它们是否能正常工作。由于 IE 独特的盒模型布局问题,针对不同版本的 hack 实践了优雅降级,为那些无法支持功能的浏览器增加候选方案,使得在旧式浏览器上以某种形式降级体验却不至于完全失效.
渐进增强:从被所有浏览器支持的基本功能开始,逐步的添加那些只有新式浏览器才支持的功能,向页面增加无害于基础浏览器额外样式和功能的。当浏览器支持时,它们会自动地呈现出来并发挥作用.
线程与进程的理解
1. 首先要知道的第一个小问题:
进程是什么?进程指的是在系统中运行的一个应用程序,程序一旦运行就是进程,是资源分配的最小单位
线程是什么?线程是进程的一个执行单位,是程序执行的最小单位.
2. 第二个问题:进程与线程的区别在哪里
区别一:进程拥有独立的堆栈空间和数据段,所以每当启动一个新的进程必须分配给它独立的地址空间,建立众多的数据表来维护它的代码段,堆栈段和数据段,这对于多进程来说十分奢侈,系统开销很大,而线程不一样,它不拥有资源,没有独立地址空间,但是线程有私有的栈,程序计数器,本地方法区。(这些是放在进程的地址空间上,只有某个特点的线程可以去访问,其他线程访问不到。但若是用 c ++ 或 c 语言,产生数组越界问题,就可以访问到其他线程的栈了,导致其他线程的异常),线程比进程更节俭,开销比较小,切换速度快,但是进程的安全性较高,因为有独立的地址空间,一个进程崩溃后,不会对其他进程产生影响,而线程死掉就等于整个进程死掉
区别二:在通信机制上,因为进程互不干扰,相互独立,所以通讯机制复杂,例如管道,消息队列。而线程由于共享数据所以通讯机制很方便
区别三:同一个进程,所有线程共享该进程的所有资源.
区别四:线程必定也只能属于一个进程,而进程可以拥有多个线程而且至少拥有一个线程;
3. 第三个问题:进程与线程的选择问题
若需频繁创建销毁则优先使用线程. 若需频繁切换则优先使用线程. 并行操作时使用线程需要更稳定安全时,使用进程

正文完
 0