1 史上最全的Javascript面试题总结
1 未声明和未定义?
未声明的变量是程序中不存在且未声明的变量。如果程序尝试读取未声明变量的值,则会遇到运行时错误。未定义的变量是在程序中声明但尚未给出任何值的变量。如果程序尝试读取未定义变量的值,则返回undefined。
2 什么是全局变量?这些变量如何声明,使用全局变量有哪些问题
全局变量是整个代码长度可用的变量,也就是说这些变量没有任何作用域。var关键字用于声明局部变量或对象。如果省略var关键字,则声明一个全局变量。
使用全局变量所面临的问题是本地和全局变量名称的冲突
3 解释JavaScript中定时器的工作?如果有,也可以说明使用定时器的缺点?
定时器用于在设定的时间执行一段代码,或者在给定的时间间隔内重复该代码。这通过使用函数setTimeout,setInterval和clearInterval来完成。
setTimeout(function,delay)函数用于启动在所述延迟之后调用特定功能的定时器。
setInterval(function,delay)函数用于在提到的延迟中重复执行给定的功能,只有在取消时才停止。
clearInterval(id)函数指示定时器停止。
定时器在一个线程内运行,因此事件可能需要排队等待执行。
4 ViewState和SessionState有什么区别?
ViewState”特定于会话中的页面。
“SessionState”特定于可在Web应用程序中的所有页面上访问的用户特定数据。
session值是保存在服务器内存上,那么,可以肯定,大量的使用session将导致服务器负担加重. 而viewstate由于只是将数据存入到页面隐藏控件里,不再占用服务器资源,因此, 我们可以将一些需要服务器"记住"的变量和对象保存到viewstate里面. 而sesson则只应该应用在需要跨页面且与每个访问用户相关的变量和对象存储上. 另外,session在默认情况下20分钟就过期,而viewstate则永远不会过期.
5 什么是===运算符?
===被称为严格等式运算符,当两个操作数具有相同的值而没有任何类型转换时,该运算符返回true。
6 说明如何使用JavaScript提交表单?
document.form [0] .submit();
7 说明如何检测客户端机器上的操作系统?
为了检测客户端机器上的操作系统,应使用navigator.appVersion字符串(属性)。
appVersion 属性可返回浏览器的平台和版本信息。该属性是一个只读的字符串。
8 Javascript中的NULL是什么意思?
NULL用于表示无值或无对象。它意味着没有对象或空字符串,没有有效的布尔值,没有数值和数组对象。
9 delete操作符的功能是什么?
delete操作符用于删除程序中的所有变量或对象,但不能删除使用VAR关键字声明的变量
一个变量或属性是否可以被删除,是由其内部属性Configurable进行控制的,若Configurable为true,则该变量或属性可以被删除,否则不能被删除。
10 JavaScript中有哪些类型的弹出框?
警告框alert("文本")
确认框confirm("文本")
提示框prompt("文本","默认值")
11 Void(0)怎么用?
Void(0)用于防止页面刷新,并在调用时传递参数“zero”
Void(0)用于调用另一种方法而不刷新页面。
void()仅仅是代表不返回任何值,但是括号内的表达式还是要运行
12 什么是JavaScript Cookie?
Cookie是用来存储计算机中的小型测试文件,当用户访问网站以存储他们需要的信息时,它将被创建。
13 解释JavaScript中的pop(),shift(), push(), unshift()方法?
push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。
pop() 方法用于删除并返回数组的最后一个元素。
unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。
shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。
14 如何创建通用对象
var I = new object();
15 JavaScript中不同类型的错误有几种?
有六种类型的错误:
1 SyntaxError:语法错误 [ˈsɪntæks]
2 Uncaught ReferenceError:引用错误
3 RangeError:范围错误
4 TypeError类型错误
5 URIError,URL错误
6 EvalError eval()函数执行错误
16 对象属性如何分配?
obj["class"] = 12;
obj.class = 12;
17 解释window.onload和onDocumentReady?
在载入页面的所有信息之前,不运行onload函数。这导致在执行任何代码之前会出现延迟。
onDocumentReady在加载DOM之后加载代码。这允许早期的代码操纵。
18 你将如何解释JavaScript中的闭包? 什么时候使用?
当一个内部函数被其外部函数之外的变量引用时,就形成了一个闭包。闭包用于保存某些变量的值,不会被垃圾回收机制回收!
滥用闭包会导致内存泄漏!
19 一个值如何附加到数组?
arr [arr.length] = value;
20 解释for-in循环?
在每次循环中,来自对象的一个属性与变量名相关联,循环继续,直到对象的所有属性都被耗尽
21 描述JavaScript中的匿名函数?
1 js理论上是没有函数重载的,后面的会覆盖前面的。
2 但是可以模拟重载 (1)判断argument的长度
(2) 闭包。
22 apply()与call()的区别
不错,很有帮助,
网友评论