2020-03-28
1.列举浏览器对象模型BOM里常用的至少4个对象,并列举window对象的常用方法至少5个
对象:Window document location screen history navigator
方法:Alert() confirm() prompt() open() close()
2.简述列举文档对象模型DOM里document的常用的查找访问节点的方法并做简单说明
Document.getElementById 根据元素id查找元素
Document.getElementByName 根据元素name查找元素
Document.getElementTagName 根据指定的元素名查找元素
3.简述创建函数的几种方式
//第一种(函数声明):
function sum1(num1,num2){
return num1+num2;
}
//第二种(函数表达式):
var sum2 = function(num1,num2){
return num1+num2;
}
//匿名函数:
function(){}:只能自己执行自己
//第三种(函数对象方式):
var sum3 = new Function("num1","num2","return num1+num2");
4.Javascript如何实现继承?
原型链继承,借用构造函数继承,组合继承,寄生式继承,寄生组合继承
5.Javascript创建对象的几种方式?
工厂方式,构造函数方式,原型模式,混合构造函数原型模式,动态原型方式
6.把 Script 标签 放在页面的最底部的body封闭之前 和封闭之后有什么区别?浏览器会如何解析它们?
如果说放在body的封闭之前,将会阻塞其他资源的加载
如果放在body封闭之后,不会影响body内元素的加载
7.iframe的优缺点?
优点:
- 解决加载缓慢的第三方内容如图标和广告等的加载问题
- Security sandbox
- 并行加载脚本
缺点: - iframe会阻塞主页面的Onload事件
- 即时内容为空,加载也需要时间
- 没有语意
8.请你谈谈Cookie的弊端?
缺点:
1.Cookie
数量和长度的限制。
每个特定的域名下domain最多只能有20条cookie,每个cookie长度不能超过4KB,否则会被截掉。
2.安全性问题。IE和欧朋浏览器会清理近期最少使用的cokkie,火狐会随即清理cookie。如果cookie被人拦截了,那人就可以取得所有的session信息。即使加密也与事无补,因为拦截者并不需要知道cookie的意义,他只要原样转发cookie就可以达到目的了。
3.cookie最大能容纳4096字节,为了兼容,不超过4095字节。
有些状态不可能保存在客户端。例如,为了防止重复提交表单,我们需要在服务器端保存一个计数器。如果我们把这个计数器保存在客户端,那么它起不到任何作用。
9.js延迟加载的方式有哪些?
- defer是html4.01为script定义的属性(等于告诉浏览器立即下载,延迟执行)(只适用于外部的脚本文件。)
2.async(异步加载)(不能控制加载顺序) - 动态创建DOM方式(创建script,插入到DOM中,加载完毕后callBack)
4.使用jquery的getScript方法(js文件,回调函数(js文件执行完之后再执行的回调函数))
5.使用setTimer()方法延迟加载 - 按需异步载入js
10.documen.write和 innerHTML 的区别?
document.write //重绘整个页面
innerHTML //重绘页面的一部分
11.哪些操作会造成内存泄漏?Ssss
内存泄漏指一块被分配的内存既不能使用又不能被回收,直到浏览器进程结束。
垃圾回收器定期扫描对象,并计算引用了每个对象的其他对象的数量。如果一个对象的引用数量为 0(没有其他对象引用过该对象),或对该对象的惟一引用是循环的,那么该对象的内存即可回收。
(1)setTimeout 的第一个参数使用字符串而非函数的话,会引发内存泄漏。
(2)闭包
(3)控制台日志(就是console.log)
(4)循环(在两个对象彼此引用且彼此保留时,就会产生一个循环)