1.介绍js的基本数据类型
2.js有哪些内置对象?
3.this的理解
4.eval是做什么的?
5.DOM怎样添加,移出,移动,复制,创建和查找节点?
6.null和undefined的区别
7.new操作符具干了什么?
8.JSON的了解
9.call() 和apply() 的区别
function add(a,b){
alert(a+b);
}
function sub(a,b){
alert(a-b);
}
add.call(sub,3,1);
add.apply(sub,[3,1]);
10.如何获取UA(User-Agent )
User-Agent是Http协议中的一部分,属于头域的组成部分,User Agent也简称UA。用较为普通的一点来说,是一种向访问网站提供你所使用的浏览器类型、操作系统及版本、CPU 类型、浏览器渲染引擎、浏览器语言、浏览器插件等信息的标识
function whatBrowser() {
//获取完整的浏览器名称
document.Browser.Name.value=navigator.appName;
//获取浏览器的版本,一般不与实际的浏览器版本对应
document.Browser.Version.value=navigator.appVersion;
//获取浏览器的名称。通常都是Mozilla,即使在非Mozilla的浏览器中也是如此
document.Browser.Code.value=navigator.appCodeName;
//获取浏览器的用户代理字符串
document.Browser.Agent.value=navigator.userAgent;
11.那些常见操作会造成内存泄漏?
12.线程与进程的区别
13.如何解决跨域问题?
14.javascript垃圾回收方法
15.快速 排序的思想并实现一个快排
<script type="text/javascript">
function quickSort(arr){
if(arr.length<=1){
return arr;//如果数组只有一个数,就直接返回;
}
var num = Math.floor(arr.length/2);//找到中间数的索引值,如果是浮点数,则向下取整
var numValue = arr.splice(num,1);//找到中间数的值
var left = [];
var right = [];
for(var i=0;i<arr.length;i++){
if(arr[i]<numValue){
left.push(arr[i]);//基准点的左边的数传到左边数组
}
else{
right.push(arr[i]);//基准点的右边的数传到右边数组
}
}
return quickSort(left).concat(numValue,quickSort(right));//递归不断重复比较
}
alert(quickSort([32,45,37,16,2,87]));//弹出“2,16,32,37,45,87”
</script>
16.ES6的了解
17.用过那些设计模式?
18.说说你对闭包的理解
19.请谈谈cookie的弊端
20.浏览器本地存储
21.cookie 和session 的区别
22.如何实现浏览器内多个标签页之间的通信?
23.js延迟加载的方式有哪些?
24.举例IE与其他浏览器不一样的特性
25.javascript对象的几种创建方式