JS——02面试题

简介: 面试题

1、iframe 的优缺点?

优点:

1. 解决加载缓慢的第三方内容如图标和广告等的加载问题

2. Security sandbox

3. 并行加载脚本

缺点:

1. iframe 会阻塞主页面的 Onload 事件

2. 即时内容为空,加载也需要时间

3. 没有语意

2、请你谈谈 Cookie 的弊端?

缺点:

1.Cookie 数量和长度的限制。每个 domain 最多只能有 20 条 cookie,每个 cookie 长度

不能超过 4KB,否则会被截掉。

2.安全性问题。如果 cookie 被人拦截了,那人就可以取得所有的 session 信息。即使加密

也与事无补,因为拦截者并不需要知道 cookie 的意义,他只要原样转发 cookie 就可以达

到目的了。

3.有些状态不可能保存在客户端。例如,为了防止重复提交表单,我们需要在服务器端保

存一个计数器。如果我们把这个计数器保存在客户端,那么它起不到任何作用。

3、js 延迟加载的方式有哪些?

1. defer 和 async

2. 动态创建 DOM 方式(创建 script,插入到 DOM 中,加载完毕后 callBack)

3. 按需异步载入 js

4、documen.write 和 innerHTML 的区别?  

document.write 只能重绘整个页面

innerHTML 可以重绘页面的一部分

5、哪些操作会造成内存泄漏?  

内存泄漏指任何对象在您不再拥有或需要它之后仍然存在。

垃圾回收器定期扫描对象,并计算引用了每个对象的其他对象的数量。如果一个对象的引

用数量为 0(没有其他对象引用过该对象),或对该对象的惟一引用是循环的,那么该对象

的内存即可回收。

1. setTimeout 的第一个参数使用字符串而非函数的话,会引发内存泄漏。

2. 闭包

3. 控制台日志

4. 循环(在两个对象彼此引用且彼此保留时,就会产生一个循环)

6、解释 jsonp 的原理,以及为什么不是真正的 ajax

动态创建 script 标签,回调函数

Ajax 是页面无刷新请求数据操作

7、javascript 的本地对象,内置对象和宿主对象  

本地对象为 array obj regexp 等可以 new 实例化

内置对象为 gload Math 等不可以实例化的

宿主为浏览器自带的 document,window 等

8、字符串反转,如将 '12345678' 变成 '87654321'  

思路:先将字符串转换为数组 split(),利用数组的反序函数 reverse()颠倒数组,再利用 jion() 转换为字符串

var str = '12345678';
str = str.split('').reverse().join('');

9、将数字 12345678 转化成 RMB 形式 如:12,345,678

思路:先将数字转为字符, str= str + '' ;

利用反转函数,每三位字符加一个 ','最后一位不加; re()是自定义的反转函数,最后再反转回去

function re(str) {
 str += '';
 return str.split("").reverse().join("");
}
function toRMB(num) {
var tmp='';
 for (var i = 1; i <= re(num).length; i++) {
 tmp += re(num)[i - 1];
 if (i % 3 == 0 && i != re(num).length) {
 tmp += ',';
 }
 }
 return re(tmp);
}

10、生成 5 个不同的随机数

思路:5 个不同的数,每生成一次就和前面的所有数字相比较,如果有相同的,则放弃当前生成的数

var num1 = [];
for(var i = 0; i < 5; i++){
    num1[i] = Math.floor(Math.random()*10) + 1; //范围是 [1, 10]
    for(var j = 0; j < i; j++){
        if(num1[i] == num1[j]){
            i--; 
        } 
    }


 


相关文章
|
3月前
|
JSON JavaScript 前端开发
Javascript基础 86个面试题汇总 (附答案)
该文章汇总了JavaScript的基础面试题及其答案,涵盖了JavaScript的核心概念、特性以及常见的面试问题。
63 3
|
3月前
|
前端开发 JavaScript
JavaScript 面试系列:如何理解 ES6 中 Generator ?常用使用场景有哪些?
JavaScript 面试系列:如何理解 ES6 中 Generator ?常用使用场景有哪些?
|
4月前
|
JavaScript 前端开发
常见的JS面试题
【8月更文挑战第5天】 常见的JS面试题
63 3
|
1月前
|
JSON JavaScript 前端开发
[JS]面试官:你的简历上写着熟悉jsonp,那你说说它的底层逻辑是怎样的?
本文介绍了JSONP的工作原理及其在解决跨域请求中的应用。首先解释了同源策略的概念,然后通过多个示例详细阐述了JSONP如何通过动态解释服务端返回的JavaScript脚本来实现跨域数据交互。文章还探讨了使用jQuery的`$.ajax`方法封装JSONP请求的方式,并提供了具体的代码示例。最后,通过一个更复杂的示例展示了如何处理JSON格式的响应数据。
35 2
[JS]面试官:你的简历上写着熟悉jsonp,那你说说它的底层逻辑是怎样的?
|
2月前
|
Web App开发 JavaScript 前端开发
前端Node.js面试题
前端Node.js面试题
|
4月前
|
存储 JavaScript 前端开发
2022年前端js面试题
2022年前端js面试题
46 0
|
4月前
|
JavaScript 前端开发 程序员
JS小白请看!一招让你的面试成功率大大提高——规范代码
JS小白请看!一招让你的面试成功率大大提高——规范代码
|
4月前
|
JavaScript 前端开发 UED
小白请看! 大厂面试题 :如何用JS实现瀑布流
小白请看! 大厂面试题 :如何用JS实现瀑布流
|
4月前
|
存储 JavaScript 前端开发
JS浅拷贝及面试时手写源码
JS浅拷贝及面试时手写源码
|
4月前
|
JavaScript 前端开发
JS:类型转换(四)从底层逻辑让你搞懂经典面试问题 [ ] == ![ ] ?
JS:类型转换(四)从底层逻辑让你搞懂经典面试问题 [ ] == ![ ] ?