前端开发就业面试题

JavaScript篇


1.什么是JavaScript?

JavaScript是客户端和服务器端脚本语言,可以插入到HTML页面中,并且是目前较热门的Web开发语言。同时,JavaScript也是面向对象编程语言。 

类似的基本题目还包括:JavaScript都有哪些类型?JavaScript是谁发明的?...


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

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


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

JavaScript更快。JavaScript是一种客户端语言,因此它不需要Web服务器的协助来执行。另一方面,ASP是服务器端语言,因此总是比JavaScript慢。值得注意的是,Javascript现在也可用于服务器端语言(nodejs)。


4.什么是负无穷大? 

负无穷大是JavaScript中的一个数字,可以通过将负数除以零来得到。


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

在字符串语句中可以通过在第一行末尾使用反斜杠“\”来完成。例:document.write("This is \a program")

如果不是在字符串语句中更改为新行,那么javaScript会忽略行中的断点。 

例:var x=1, y=2, z= x+y

上面的代码是完美的,但并不建议这样做,因为阻碍了调试。


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/gaoshanwudi/article/details/7355794 


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的同源策略。 

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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,421评论 1 45
  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 9,093评论 0 3
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,084评论 1 32
  •   JavaScript 与 HTML 之间的交互是通过事件实现的。   事件,就是文档或浏览器窗口中发生的一些特...
    霜天晓阅读 3,470评论 1 11
  • 第3章 基本概念 3.1 语法 3.2 关键字和保留字 3.3 变量 3.4 数据类型 5种简单数据类型:Unde...
    RickCole阅读 5,096评论 0 21