Web大前端面试题-Day6
1.请说明ECMAScript, JavaScript, Jscript之间的关系?
ECMAScript提供脚本语言必须遵守的规则、
细节和准则,是脚本语言的规范。
比如:ES5,ES6就是具体的一js版本。
JavaScript是ECMAScript的一个分支版本,
JavaScript 实现了多数 ECMA-262 中
描述的 ECMAScript 规范,但存在少数差异。
JScript是微软公司对ECMA-262语言规范的
一种实现,除了少数例外(这是为了保持向后兼容 ),
微软公司宣称JScript完全实现了ECMA标准.
关系:
JavaScript和JScript都是ECMAScript的版本分支,
二者在语法上没有多大的区别;
只不过一个是NetScape公司的, 一个是微软的;
IE系列默认是JScript, 其它的则反之用JavaScript。
2. 页面加载过程中可能触发哪些事件? 它们的顺序是?
页面加载时,大致可以分为以下几个步骤:
1) 开始解析HTML文档结构
2) 加载外部样式表及JavaScript脚本
3) 解析执行JavaScript脚本
4) DOM树渲染完成
5) 加载未完成的外部资源
6) 页面加载成功
执行顺序:
1) document readystatechange事件
2) document DOMContentLoaded事件
3) window load事件
3. 函数中在声明变量a前使用a会产生错误吗? 为什么?
不会, JS中能够进行变量作用域提升,
把所有变量、函数的声明提升到当前
作用域的最前面, 但不进行赋值操作;
所以可能造成获取的值是undefined。
4. 什么是hash, 以及hashchange事件?
先了解下什么是hash:hash即URL中"#"字符后面的部分。
a) 使用浏览器访问网页时,
如果网页URL中带有hash,
页面就会定位到id(或name)
与hash值一样的元素的位置;
b) hash还有另一个特点,
它的改变不会导致页面重新加载;
c) hash值浏览器是不会随请求发送到服务器端的;
d) 通过window.location.hash属性获取和设置hash值。
window.location.hash值的变化会直接
反应到浏览器地址栏(#后面的部分会发生变化),
同时,浏览器地址栏hash值的变化也会触发
window.location.hash值的变化,
从而触发onhashchange事件。
再来了解下什么是hashchange事件:
a) 当URL的片段标识符更改时,
将触发hashchange事件(跟在#符号后面的URL部分,包括#符号)b)
hashchange事件触发时,
事件对象会有hash改变前的URL(oldURL)和hash改变后的URL(newURL)两个属性。
5. 什么是CDN, CDN对于网站有什么意义, 它有什么样的缺点?
CDN又称为内容分发网络; 本意在于
尽可能避开互联网上有可能影响数据
传输速度和稳定性的瓶颈和环节,
使内容传输的更快、更稳定。
主要目的:
解决因分布、带宽、服务器性能带来的访问延迟问题,
适用于站点加速、点播、直播等场景。
使用户可就近取得所需内容,解决 Internet网络拥挤的状况,
提高用户访问网站的响应速度和成功率。
缺点:
a) 实施复杂 , 投资大;
b) 目前大部分的CDN还只是对静态内容加速,
对动态加速效果不好;
而双线对动态加速的效果跟静态是一样的。
Web大前端面试题-Day6的更多相关文章
- Web大前端面试题-Day12
1.前端需要注意哪些SEO? 合理的title.description.keywords: 搜索对着三项的权重逐个减小, title值强调重点即可, 重要关键词出现不要超过2次, 而且要靠前, 不同页 ...
- Web大前端面试题-Day7
1. 你能描述一下渐进增强和优雅降级之间的不同吗? 定义: 优雅降级(graceful degradation): 一开始就构建站点的完整功能, 然后针对浏览器测试和修复 渐进增强(progressi ...
- Web大前端面试题-Day4
1. 如何实现瀑布流? 瀑布流布局的原理:1) 瀑布流布局要求要进行布置的元素等宽, 然后计算元素的宽度, 与浏览器宽度之比,得到需要布置的列数;2) 创建一个数组,长度为列数, 里面的值 ...
- Web大前端面试题-Day11
86.如何获得高效的数据库逻辑结构? 从关系数据库的表中 删除冗余信息的过程 称为数据规范化, 是得到高效的关系型数据库表的逻辑结构 最好和最容易的方法. 规范化数据时应执行以下操作: 1.将数据库的 ...
- Web大前端面试题-Day10
1. px和em的区别? px和em都是长度单位; 区别是: px的值是固定的,指定是多少就是多少, 计算比较容易. em得值不是固定的,并且em会继承父级元素的字体大小. 浏览器的默认字体高都是16 ...
- Web大前端面试题-Day8
1. 说说你对作用域链的理解? 作用域链的作用是保证执行环境里 有权访问的变量和函数是有序的, 作用域链的变量只能向上访问, 变量访问到window对象即被终止, 作用域链向下访问变量是不被允许的; ...
- Web大前端面试题-Day1
1. var的变量提升的底层原理是什么? JS引擎的工作方式是:1) 先解析代码,获取所有被声明的变量:2)然后在运行.也就是说分为预处理和执行两个阶段. 变量提升:所有变量的声明语句都会被提升到代码 ...
- Web大前端面试题-Day9
1. 请用至少3中方式实现数组去重? 方法一: indexOfvar arr1=[1,2,3,4,5,4,3,2,1]; function repeat1(arr){ for(var i=0, ...
- Web大前端面试题-Day5
1.写一个深度克隆方法(es5)? /** * 深拷贝 * @param {object}fromObj 拷贝的对象 * @param {object}toObj 目标对象 */ function ...
随机推荐
- 使用Idea初始化SpringMvc项目
(1) (2) (3) (4) (5)感谢http://www.cnblogs.com/feiyujun/p/6537510.html (6)
- Linux: 介绍make menuconfig中的每个选项含义【转】
转自:http://blog.csdn.net/gaoyuanlinkconcept/article/details/8810468 介绍make menuconfig中的每个选项含义 Linux 2 ...
- VC++常用数据类型
原文地址:https://www.cnblogs.com/yincheng01/archive/2008/12/31/2213386.html 一. VC常用数据类型列表 二 ...
- CentOS 6.5 rsync+inotify实现数据实时同步备份
CentOS 6.5 rsync+inotify实现数据实时同步备份 rsync remote sync 远程同步,同步是把数据从缓冲区同步到磁盘上去的.数据在内存缓存区完成之后还没有写入到磁盘 ...
- Ex 6_23 一个生产系统共包含n个顺序执行的阶段..._第七次作业
- Jquery hover方法使用及 mouseenter与mouseleave和 mouseover与mouseout的区别
定义和用法 hover() 方法规定当鼠标指针悬停在被选元素上时要运行的两个函数. jQuery 1.7 版本前该方法触发 mouseenter 和 mouseleave 事件. jQuery 1.8 ...
- 基于Golang设计一套微服务架构[转]
article- @嘟嘟噜- May/26/2018 18:35:30 如何基于Golang设计一套微服务架构 微服务(Microservices),这个近几年我们经常听到.那么现在市面上的的微服 ...
- tomcat 输入学习
Tomcat学习—Tomcat7 修改/webapps/ROOT发布路径(Linux和windows环境) https://blog.csdn.net/u010648555/article/detai ...
- selenium自动化测试多条数据选择第一条
如果我们测试时在一个页面中存在多条数据元素名称一致但是我们要选择第一条? 示意图: 方法一 driver.find_element_by_css_selector('.article-list/div ...
- Ext.js入门:Window对象与FormPanel(六)
一:Ext.Window类 二:Ext.Window类实例 三:Ext.FormPanel类 四:Ext.FormPanel类实例 1.类Ext.Window 包: Ext 定义的文件 Windo ...