前端开发就业面试题·JavaScript篇

1.什么是JavaScript?(这是基本题,对不少程序员来讲也是送分题!)javascript

JavaScript是客户端和服务器端脚本语言,能够插入到HTML页面中,而且是目前较热门的Web开发语言。同时,JavaScript也是面向对象编程语言。
相似的基本题目还包括:JavaScript都有哪些类型?JavaScript是谁发明的?...html

2.列举Java和JavaScript之间的区别?java

Java是一门十分完整、成熟的编程语言。相比之下,JavaScript 是一个能够被引入HTML页面的编程语言。这两种语言并不彻底相互依赖,而是针对不一样的意图而设计的。Java是一种面向对象编程(OOPS)或结构化编程语言,相似的如C ++或C,而JavaScript是客户端脚本语言,它被称为非结构化编程。 node

3.JavaScript 和 ASP 脚本相比,哪一个更快? jquery

JavaScript更快。JavaScript是一种客户端语言,所以它不须要Web服务器的协助来执行。另外一方面,ASP是服务器端语言,所以老是比JavaScript慢。值得注意的是,Javascript如今也可用于服务器端语言(nodejs)。程序员

4.什么是负无穷大? web

负无穷大是JavaScript中的一个数字,能够经过将负数除以零来获得。ajax

5.如何将JavaScript代码分解成几行吗?编程

在字符串语句中能够经过在第一行末尾使用反斜杠“”来完成。
例:document.write("This is a program")
若是不是在字符串语句中更改成新行,那么javaScript会忽略行中的断点。
例:var x=1, y=2, z= x+y
上面的代码是完美的,但并不建议这样作,由于阻碍了调试。json

6.什么是未声明和未定义的变量?

未声明的变量是程序中不存在且未声明的变量。若是程序尝试读取未声明变量的值,则会遇到运行时错误。
未定义的变量是在程序中声明但还没有给出任何值的变量。若是程序尝试读取未定义变量的值,则返回未定义的值。

7.什么是全局变量?这些变量如何声明,使用全局变量有哪些问题?

全局变量是整个代码长度可用的变量,也就是说这些变量没有任何做用域。var关键字用于声明局部变量或对象。若是省略var关键字,则声明一个全局变量。
例:// Declare a global globalVariable = “Test”
使用全局变量所面临的问题是本地和全局变量名称的冲突。此外,很难调试和测试依赖于 全局变量的代码。

8.解释JavaScript中定时器的工做?若是有,也能够说明使用定时器的缺点?

定时器用于在设定的时间执行一段代码,或者在给定的时间间隔内重复该代码。这经过使用函数setTimeout,setInterval和clearInterval来完成。
setTimeout(function,delay)函数用于启动在所述延迟以后调用特定功能的定时器。
setInterval(function,delay)函数用于在提到的延迟中重复执行给定的功能,只有在取消时才中止。
clearInterval(id)函数指示定时器中止。
定时器在一个线程内运行,所以事件可能须要排队等待执行。

9.ViewState和SessionState有什么区别?

“ViewState”特定于会话中的页面。
“SessionState”特定于可在Web应用程序中的全部页面上访问的用户特定数据。

加粗文字10.什么是===运算符?

===被称为严格等式运算符,当两个操做数具备相同的值而没有任何类型转换时,该运算符返回true。

11.JavaScript中的循环结构都有什么?

for、while、do-while loops

12.如何在JavaScript中将base字符串转换为integer?

parseInt() 函数解析一个字符串参数,并返回一个指定基数的整数。parseInt()将要转换的字符串做为其第一个参数,第二个参数是给定字符串的基础。为了将4F(基数16)转换为整数,所使用的代码是:parseInt("4F", 16)

13.说明“==”和“===”之间的区别?

“==”仅检查值相等,而“===”是一个更严格的等式断定,若是两个变量的值或类型不一样,则返回false。

14.3+2+“7”的结果是什么?

因为3和2是整数,它们将直接相加。因为7是一个字符串,它将会被直接链接,因此结果将是57。

15.说明如何检测客户端机器上的操做系统?

为了检测客户端机器上的操做系统,应使用avigator.appVersion 字符串(属性)。

16.Javascript中的NULL是什么意思?

NULL用于表示无值或无对象。它意味着没有对象或空字符串,没有有效的布尔值,没有 数值和数组对象。

17.delete操做符的功能是什么?

delete操做符用于删除程序中的全部变量或对象,但不能删除使用 VAR关键字声明的变量。

18.JavaScript中有哪些类型的弹出框?

Alert、Confirm and Prompt

19.Void(0)怎么用?

Void(0)用于防止页面刷新,并在调用时传递参数“zero”。 Void(0)用于调用另外一种方法而不刷新页面。

20.如何强制页面加载JavaScript中的其余页面?

必须插入如下代码才能达到预期效果:
图片描述

21.escape字符是用来作什么的?

使用特殊字符(如单引号,双引号,撇号和&符号)时,将使用转义字符(反斜杠)。在字符前放置反斜杠,使其显示。
例:
图片描述

22.什么是JavaScript Cookie?

Cookie是用来存储计算机中的小型测试文件,当用户访问网站以存储他们须要的信息时,它将被建立。

23.解释JavaScript中的pop()方法?

pop()方法与shift()方法相似,但不一样之处在于Shift方法在数组的开头工做。此外,pop()方法将最后一个元素从给定的数组中取出并返回。而后改变被调用的数组。
例:
var cloths = [“Shirt”, “Pant”, “TShirt”];
cloths.pop();
//Now cloth becomes Shirt,Pant

24.在JavaScript中使用innerHTML的缺点是什么?

若是在JavaScript中使用innerHTML,缺点是:
1)内容随处可见;
2)不能像“追加到innerHTML”同样使用;
3)即便你使用+ = like“innerHTML = innerHTML +'html'”旧 的内容仍然会被html替换;
4)整个innerHTML内容被从新解析并构建成元素,所以它的速度要慢得多;
5)innerHTML不提供验证,所以咱们可能会在文档中插入有效的和破坏性的HTML并将其中断。

25.break和continue语句的做用?

break语句从当前循环中退出。
continue语句继续下一个循环语句。

26.在JavaScript中,dataypes的两个基本组是什么?

Primitive
Reference types
原始类型是数字和布尔数据类型。引用类型是更复杂的类型,如字符串和日期。

27.如何建立通用对象?

通用对象能够建立为:
var I = new object();

28.operator类型用来作什么?

"Typeof"是一个运算符,用于返回变量类型的字符串描述。

29.哪些关键字用于处理异常?

try... Catch-finally用于处理JavaScript中的异常。
图片描述

30.JavaScript中不一样类型的错误有几种?

有三种类型的错误:
Load time errors:该错误发生于加载网页时,例如出现语法错误等情况,称为加载时间 错误,而且会动态生成错误。
Run time errors:因为在HTML 语言中滥用命令而致使的错误。
Logical Errors:这是因为在具备不一样操做的函数上执行了错误逻辑而发生的错误。

31.在JavaScript中使用的Push方法是什么?

push方法用于将一个或多个元素添加或附加到数组的末尾。使用这种方法,能够经过传递多个参数来附加多个元素。

32.什么是JavaScript中的unshift方法?

Unshift方法就像在数组开头工做的push方法。该方法用于将一个或多个元素添加到数组的开头。

33.对象属性如何分配?

属性按如下方式分配给对象:
obj["class"] = 12或obj.class = 12

34.解释window.onload和onDocumentReady?

在载入页面的全部信息以前,不运行onload函数。这致使在执行任何代码以前会出现延迟。
onDocumentReady在加载DOM以后加载代码。这容许早期的代码操纵。

35.你将如何解释JavaScript中的闭包?何时使用?

Closure是与函数返回时保留在内存中的函数相关的本地声明变量。

36.一个值如何附加到数组?

能够以给定的方式将值附加到数组:
arr[arr.length]=value

37.解释for-in循环?

for-in循环用于循环对象的属性。
for-in循环的语法是:
图片描述

在每次循环中,来自对象的一个属性与变量名相关联,循环继续,直到对象的全部属性都 被耗尽。

38.描述JavaScript中的匿名函数?

被声明为没有任何命名标识符的函数被称为匿名函数。通常来讲,匿名函数在声明后没法访问。
匿名函数声明:
图片描述

39. .call()和.apply()之间有什么区别?

函数.call()和.apply()在使用上很是类似,只是有一点区别。当程序员知道函数参数的编号时,使用.call(),由于它们必须在调用语句中被说起为参数。另外一方面,当不知道数字时使用.apply(),函数.apply()指望参数为数组。.call()和.apply()之间的基本区别在于将参数传递给函数。它们的用法能够经过给定的例子进行说明。
图片描述

40.定义事件冒泡?

JavaScript容许DOM元素嵌套在一块儿。在这种状况下,若是单击子级的处理程序,父级的处理程序也将执行一样的工做。

41.什么样的布尔运算符能够在JavaScript中使用?

“And”运算符(&&),'Or'运算符(||)和'Not'运算符(!)能够在JavaScript中使用。
*运算符没有括号。

42.在web-garden和web-farm之间有何不一样?

web-garden和web-farm都是网络托管系统。惟一的区别是web-garden是在单个服务器中包含许多处理器的设置,而web-farm是使用多个服务器的较大设置。

43.如何分配对象属性?

将属性分配给对象的方式与赋值给变量值相同。例如,表单对象的操做值如下列方式分配为“submit”:Document.form.action =“submit”

44.在JavaScript中读取和写入文件的方法是什么?

能够经过使用JavaScript扩展(从JavaScript编辑器运行),打开文件的示例来完成:
fh=fopen(getScriptPath(), 0)

45.在JavaScript中如何使用DOM?

DOM表明文档对象模型,而且负责文档中各类对象的相互交互。DOM是开发网页所必需的,其中包括诸如段落,连接等对象。能够操做这些对象以包括添加或删除等操做,DOM还须要向网页添加额外的功能。除此以外,API的使用比其余更有优点。

46.JavaScript中如何使用事件处理程序?

事件是由用户生成活动(例如单击连接或填写表单)致使的操做。须要一个事件处理程序来管理全部这些事件的正确执行。事件处理程序是对象的额外属性。此属性包括事件的名称以及事件发生时采起的操做。

47.解释延迟脚本在JavaScript中的做用?

默认状况下,在页面加载期间,HTML代码的解析将暂停,直到脚本中止执行。这意味着,若是服务器速度较慢或者脚本特别沉重,则会致使网页延迟。在使用Deferred时,脚本会延迟执行直到HTML解析器运行。这减小了网页加载时间,而且它们的显示速度更快。

48.JavaScript中的各类功能组件是什么?

JavaScript中的不一样功能组件是:
First-class函数:JavaScript中的函数被用做第一类对象。这一般意味着这些函数能够做为参数传递给其余函数,做为其余函数的值返回,分配给变量,也能够存储在数据结构中。
嵌套函数:在其余函数中定义的函数称为嵌套函数。

49.解释unshift()方法?

该方法在数组启动时起做用,与push()不一样。它将所需数量的元素添加到数组的顶部。
例如:
图片描述

输出以下所示:[“joseph”,“Jane”, “charlie”, “john”]

50.decodeURI()和encodeURI()是什么?

EncodeURl()用于将URL转换为十六进制编码。而DecodeURI()用于将编码的URL转换回正常。

51.为何不建议在JavaScript中使用innerHTML?

innerHTML内容每次刷新,所以很慢。在innerHTML中没有验证的余地,所以,更容易在文档中插入错误代码,从而使网页不稳定。

52.如何在不支持JavaScript的旧浏览器中隐藏JavaScript代码?

在<script>标签以后的代码中添加“<! - ”,不带引号。
在<script>标签以前添加“// - >”代码中没有引号。
旧浏览器如今将JavaScript代码视为一个长的HTML注释。而支持JavaScript的浏览器则将“<! - ”和“// - >”做为一行注释。

53.javascript的typeof返回哪些数据类型?

Object、number、function、boolean、underfind

54.例举 3 种强制类型转换和 2 种隐式类型转换?

强制(parseInt,parseFloat,number)
隐式(== – ===)

55.split()和join()的区别。

前者是切割成数组的形式,后者是将数组转换成字符串。

56.事件绑定和普通事件有什么区别?

普通添加事件的方法不支持添加多个事件,最下面的事件会覆盖上面的,而事件绑定(addEventListener)方式添加事件能够添加多个。

57.IE和DOM事件流的区别。

1)执行顺序不同
2)参数不同
3)事件加不加on
4)this指向问题

58.IE和标准下有哪些兼容性的写法?

Var ev = ev || window.event; document.documentElement.clientWidth || document.body.clientWidth;
Var target = ev.srcElement||ev.target

59.ajax请求的时候get和post方式的区别。

一个在url后面,一个放在虚拟载体里面
有大小限制
安全问题
应用不一样:一个是论坛等只须要请求的,一个是相似修改密码的

60.call和apply的区别。

Object.call(this,obj1,obj2,obj3)
Object.apply(this,arguments)

61.ajax请求时,如何解释json数据?

使用eval parse,鉴于安全性考虑使用parse更靠谱。

62.事件委托是什么?

让利用事件冒泡的原理,让本身的所触发的事件,让他的父元素代替执行!
例子可见此连接:http://www.webasily.com/?p=78

63.闭包是什么?有什么特性?对页面有什么影响?

闭包就是可以读取其余函数内部变量的函数。
此连接可查看:http://blog.csdn.net/gaoshanw...

64.如何阻止事件冒泡和默认事件?

canceBubble、return、false

65.添加 删除 替换 插入到某个接点的方法。

obj.appendChidl()
obj.innersetBefore
obj.replaceChild
obj.removeChild

66.解释jsonp的原理,以及为何不是真正的ajax。

动态建立script标签,回调函数
Ajax是页面无刷新请求数据操做

67.javascript的本地对象,内置对象和宿主对象。

本地对象为array obj regexp等能够new实例化
内置对象为gload Math等不能够实例化的
宿主对象为浏览器自带的document,window等

68.document load和document ready的区别。

Document.onload是在结构和样式加载完才执行js; Document.ready原生种没有这个方法,jquery中有 $().ready(function)

69.“==”和“===”的不一样。

前者会自动转换类型,后者不会。

70.javascript的同源策略。

一段脚本只能读取来自于同一来源的窗口和文档的属性,这里的同一来源指的是主机名、协议和端口号的组合。

相关文章
相关标签/搜索