撩课-Web大前端每天5道面试题-Day6
程序员文章站
2023-08-12 23:47:05
1.请说明ECMAScript, JavaScript, Jscript之间的关系? 2. 页面加载过程中可能触发哪些事件? 它们的顺序是? 3. 函数中在声明变量a前使用a会产生错误吗? 为什么? 4. 什么是hash, 以及hashchange事件? 5. 什么是CDN, CDN对于网站有什么意 ......
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还只是对静态内容加速, 对动态加速效果不好; 而双线对动态加速的效果跟静态是一样的。
上一篇: 蛤蟆油的功效与作用有哪些?应该如何食用?
下一篇: 杏鲍菇做法大全你知道吗