撩课-Web大前端每天5道面试题-Day6
1.请说明ECMAScript, JavaScript, Jscript之间的关系?
ECMAScript提供脚本语言必须遵守的规则、
细节和准则,是脚本语言的规范。
比如:ES5,ES6就是具体的一js版本。 JavaScript是ECMAScript的一个分支版本,
JavaScript 实现了多数 ECMA- 中
描述的 ECMAScript 规范,但存在少数差异。 JScript是微软公司对ECMA-262语言规范的
一种实现,除了少数例外(这是为了保持向后兼容 ),
微软公司宣称JScript完全实现了ECMA标准. 关系:
JavaScript和JScript都是ECMAScript的版本分支,
二者在语法上没有多大的区别; 只不过一个是
NetScape公司的, 一个是微软的; IE系列默认是
JScript, 其它的则反之用JavaScript。
2. 页面加载过程中可能触发哪些事件? 它们的顺序是?
页面加载时,大致可以分为以下几个步骤:
) 开始解析HTML文档结构
) 加载外部样式表及JavaScript脚本
) 解析执行JavaScript脚本
) DOM树渲染完成
) 加载未完成的外部资源(如 图片)
) 页面加载成功 执行顺序:
) document readystatechange事件
) document DOMContentLoaded事件
) 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大前端每天5道面试题-Day6的更多相关文章
- 撩课-Web大前端每天5道面试题-Day10
1. px和em的区别? px和em都是长度单位; 区别是: px的值是固定的,指定是多少就是多少, 计算比较容易. em得值不是固定的,并且em会继承父级元素的字体大小. 浏览器的默认字体高都是16 ...
- 撩课-Web大前端每天5道面试题-Day4
1. 如何实现瀑布流? 瀑布流布局的原理: ) 瀑布流布局要求要进行布置的元素等宽, 然后计算元素的宽度, 与浏览器宽度之比,得到需要布置的列数; ) 创建一个数组,长度为列数, 里面的值为已布置元素 ...
- 撩课-Web大前端每天5道面试题-Day1
1. var的变量提升的底层原理是什么? JS引擎的工作方式是: 1) 先解析代码,获取所有被声明的变量: 2)然后在运行.也就是说分为预处理和执行两个阶段. 变量提升:所有变量的声明语句都会被提升到 ...
- 撩课-Web大前端每天5道面试题-Day11
1. 如何手写一个JQ插件? 方式一: $.extend(src) 该方法就是将src合并到JQ的全局对象中去: $.extend({ log: ()=>{alert('撩课itLike');} ...
- 撩课-Web大前端每天5道面试题-Day31
1.web storage和cookie的区别? Web Storage的概念和cookie相似, 区别是它是为了更大容量存储设计的. Cookie的大小是受限的, 并且每次你请求一个新的页面的时候C ...
- 撩课-Web大前端每天5道面试题-Day25
1.web前端开发,如何提高页面性能优化? 内容方面: .减少 HTTP 请求 (Make Fewer HTTP Requests) .减少 DOM 元素数量 (Reduce the Number o ...
- 撩课-Web大前端每天5道面试题-Day7
1. 你能描述一下渐进增强和优雅降级之间的不同吗? 定义: 优雅降级(graceful degradation): 一开始就构建站点的完整功能, 然后针对浏览器测试和修复 渐进增强(progressi ...
- 撩课-Web大前端每天5道面试题-Day30
1.什么叫优雅降级和渐进增强? 优雅降级: Web站点在所有新式浏览器中都能正常工作, 如果用户使用的是老式浏览器, 则代码会针对旧版本的IE进行降级处理了, 使之在旧式浏览器上以某种形式降级体验却不 ...
- 撩课-Web大前端每天5道面试题-Day23
1.为什么用Nodejs,它有哪些优缺点? 优点: 事件驱动,通过闭包很容易实现客户端的生命活期. 不用担心多线程,锁,并行计算的问题 V8引擎速度非常快 对于游戏来说,写一遍游戏逻辑代码,前端后端通 ...
随机推荐
- leetCode题解寻找最短字符路径
1.题目描述 2.分析 最简单的方案,对每一个字符,向两边寻找. 3.代码 vector<int> shortestToChar(string S, char C) { vector< ...
- Axure中移动端原型设计方法(附IPhoneX和IPhone8最新模板)
Axure中移动端原型设计方法(附IPhoneX和IPhone8最新模板) 2018年4月16日luodonggan Axure中基于设备模板的移动端原型设计方法(附IPhoneX和IPhone8最新 ...
- 使用 PowerShell 创建 Linux 虚拟机
Azure PowerShell 模块用于从 PowerShell 命令行或脚本创建和管理 Azure 资源. 本指南详细介绍了如何使用 Azure PowerShell 模块部署运行 Ubuntu ...
- Oracle EBS 查询客户报错 查询已超出 200 行。可能存在更多的行,请限制查询。
- 【数据结构】 顺序表查找(折半查找&&差值查找)
#include <stdio.h> #include <stdlib.h> #include <time.h> #define MAXSIZE 10 首先构造一个 ...
- C++ Circle
作业链接 https://github.com/How-Come/object-oriented/tree/master/Circle
- Alpha 冲刺报告(10/10)
Alpha 冲刺报告(10/10) 队名:洛基小队 峻雄(组长) 已完成:阿尔法版的ppt 明日计划:总结阿尔法版的问题 剩余任务:角色属性脚本的完整版本 困难:缺乏编码经验,编码进度比较慢 ---- ...
- MySQL开发规范和原则大全
一. 表设计 库名.表名.字段名必须使用小写字母,“_”分割. 库名.表名.字段名必须不超过12个字符. 库名.表名.字段名见名知意,建议使用名词而不是动词. 建议使用InnoDB存储引擎. 存储精确 ...
- Azkaban时区问题导致调度差1天
设置了Azkaban调度是每日凌晨一次,如下: 但是调度历史上显示最近一次调度时间是 初步怀疑是因为时区问题导致,查看服务器时区如下 cat /etc/timezone 为Asia/Shanghai. ...
- Day10 上传和下载
上传 将本地文件传输到服务器 jsp: 文件上传的请求方式必须是post input的type必须是file enctype="multipart/form-data" ...