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的更多相关文章

  1. Web大前端面试题-Day12

    1.前端需要注意哪些SEO? 合理的title.description.keywords: 搜索对着三项的权重逐个减小, title值强调重点即可, 重要关键词出现不要超过2次, 而且要靠前, 不同页 ...

  2. Web大前端面试题-Day7

    1. 你能描述一下渐进增强和优雅降级之间的不同吗? 定义: 优雅降级(graceful degradation): 一开始就构建站点的完整功能, 然后针对浏览器测试和修复 渐进增强(progressi ...

  3. Web大前端面试题-Day4

    1. 如何实现瀑布流? 瀑布流布局的原理:1) 瀑布流布局要求要进行布置的元素等宽,   然后计算元素的宽度,   与浏览器宽度之比,得到需要布置的列数;2) 创建一个数组,长度为列数,   里面的值 ...

  4. Web大前端面试题-Day11

    86.如何获得高效的数据库逻辑结构? 从关系数据库的表中 删除冗余信息的过程 称为数据规范化, 是得到高效的关系型数据库表的逻辑结构 最好和最容易的方法. 规范化数据时应执行以下操作: 1.将数据库的 ...

  5. Web大前端面试题-Day10

    1. px和em的区别? px和em都是长度单位; 区别是: px的值是固定的,指定是多少就是多少, 计算比较容易. em得值不是固定的,并且em会继承父级元素的字体大小. 浏览器的默认字体高都是16 ...

  6. Web大前端面试题-Day8

    1. 说说你对作用域链的理解? 作用域链的作用是保证执行环境里 有权访问的变量和函数是有序的, 作用域链的变量只能向上访问, 变量访问到window对象即被终止, 作用域链向下访问变量是不被允许的; ...

  7. Web大前端面试题-Day1

    1. var的变量提升的底层原理是什么? JS引擎的工作方式是:1) 先解析代码,获取所有被声明的变量:2)然后在运行.也就是说分为预处理和执行两个阶段. 变量提升:所有变量的声明语句都会被提升到代码 ...

  8. Web大前端面试题-Day9

    1. 请用至少3中方式实现数组去重? 方法一: indexOfvar arr1=[1,2,3,4,5,4,3,2,1];  function repeat1(arr){    for(var i=0, ...

  9. Web大前端面试题-Day5

    1.写一个深度克隆方法(es5)? /** *  深拷贝 * @param {object}fromObj 拷贝的对象 * @param {object}toObj  目标对象 */ function ...

随机推荐

  1. Java读取txt文件——(二)

    Txt数据

  2. 【黑客免杀攻防】读书笔记2 - 免杀与特征码、其他免杀技术、PE进阶介绍

    第3章 免杀与特征码 这一章主要讲了一些操作过程.介绍了MyCCL脚本木马免杀的操作,对于定位特征码在FreeBuf也曾发表过类似工具. VirTest5.0特征码定位器 http://www.fre ...

  3. python3之redis

    1.redis简介 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(s ...

  4. 【vim】缩写 :ab [缩写] [要替换的文字]

    一个很可能是最令人印象深刻的窍门是你可以在 Vim 中定义缩写,它可以实时地把你输入的东西替换为另外的东西.语法格式如下: :ab [缩写] [要替换的文字] 一个通用的例子是: :ab asap a ...

  5. passwd: Have exhausted maximum number of retries for service【转】

    使用命令passwd修改密码时,遇到如下问题: # echo 'utf8'|passwd zhangsan --stdin Changing password for user zhangsan. p ...

  6. openwrt 中route配置

    route配置项默认保存在文件 /etc/config/network 中. 配置route的接口“interface” 使用的协议需要为dhcp才可. config interface 'wan' ...

  7. mysql的日志及利用mysqldump备份及还原

    日志文件:6类       一般查询日志:log,general_log,log_output       慢查询日志:       错误日志       二进制日志       中继日志       ...

  8. 转载:获取Nginx源码(1.3.5)《深入理解Nginx》(陶辉)

    原文:https://book.2cto.com/201304/19616.html 可以在Nginx官方网站(http://nginx.org/en/download.html)获取Nginx源码包 ...

  9. 学习笔记_Cocos Creator_继承组件单例

    官方文档:https://docs.cocos.com/creator/manual/zh/scripting/reference/class.html 前言 单例,在游戏开发中是比较常用的功能,全局 ...

  10. vim使用案例

    1. 请在 /tmp 这个目录下建立一个名为 vitest 的目录: 2. 进入 vitest 这个目录当中: 3. 将 /etc/man.config 复制到本目录底下(或由上述的连结下载 man. ...