当前位置: 首页 > Web前端 > HTML

前端开发就业面试题JavaScript篇

时间:2023-04-03 01:05:32 HTML

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("Thisisaprogram")如果在字符串语句中没有换行,javaScript会忽略该行的断点。例子:varx=1,y=2,z=x+y上面的代码很完美,但是不推荐,因为它会妨碍调试。6.什么是未声明和未定义的变量?未声明的变量是程序中不存在且未声明的变量。如果程序试图读取未声明变量的值,它将遇到运行时错误。未定义变量是在程序中声明但尚未被赋予任何值的变量。如果程序试图读取未定义变量的值,则返回未定义的值。7.什么是全局变量?这些变量是如何声明的,使用全局变量有什么问题?全局变量是在整个代码长度内都可用的变量,也就是说,它们没有任何作用域。var关键字用于声明局部变量或对象。如果省略var关键字,则声明一个全局变量。示例://声明一个全局变量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循环12.如何在JavaScript中将基本字符串转换为整数?parseInt()函数解析字符串参数并返回指定基数的整数。parseInt()将要转换的字符串作为第一个参数,第二个参数是给定字符串的基础。将4F(16进制)转换为整数,使用的代码是:parseInt("4F",16)13.解释“==”和“===”的区别?“==”只检查值是否相等,而“===”是更严格的相等性测试,如果两个变量具有不同的值或类型,则返回false。14、3+2+“7”的结果是什么?因为3和2是整数,所以直接相加。由于7是一个字符串,它会被直接连接起来,所以结果将是57。15.说明如何检测客户机上的操作系统?为了检测客户端计算机上的操作系统,应使用avigator.appVersion字符串(属性)。16.NULL在Javascript中是什么意思?NULL用于表示没有值或没有对象。这意味着没有对象或空字符串、没有有效的布尔值、没有数字和数组对象。17、删除操作符的作用是什么?delete运算符用于删除程序中的所有变量或对象,但不能删除以VAR关键字声明的变量。18.JavaScript中有哪几种弹出框?Alert,ConfirmandPrompt19.Void(0)如何使用?void(0)用于防止页面刷新,调用时传递参数“零”。Void(0)用于在不刷新页面的情况下调用另一个方法。20.如何在javascript中强制一个页面加载其他页面?必须插入以下代码才能达到预期效果:21.转义符有什么用?转义字符(反斜杠)在使用单引号、双引号、撇号和符号等特殊字符时使用。在字符之前放置一个反斜杠使其出现。示例:22.什么是JavaScriptCookie?Cookie是用于存储计算机的小型测试文件,在用户访问网站时创建,以存储他们需要的信息。23.解释一下JavaScript中的pop()方法?pop()方法类似于shift()方法,不同的是shift方法作用于数组的开头。此外,pop()方法从给定数组中取出最后一个元素并将其返回。然后更改调用的数组。示例:varclothes=["Shirt","Pant","TShirt"];衣服.pop();//现在布料变成Shirt,Pant24.在JavaScript中使用innerHTML有什么缺点?如果在JavaScript中使用innerHTML,缺点是:1)内容无处不在;2)不能像“appendtoinnerHTML”那样使用;3)即使你使用+=like"innerHTML=innerHTML+'html'"旧内容仍然是html;4)整个innerHTML内容重新解析并构建到elements中,所以慢很多;5)innerHTML不提供验证,因此我们可能会在文档中插入有效的和破坏性的HTML并将其破坏。25、break和continue语句的作用是什么?break语句退出当前循环。continue语句继续到下一个循环语句。26.在JavaScript中,数据类型的两组基本类型是什么?原始引用类型原始类型是数字和布尔数据类型。引用类型是更复杂的类型,例如字符串和日期。27.如何创建泛型对象?一般对象可以创建为:varI=newobject();28.运算符类型是做什么用的?“Typeof”是一个返回变量类型的字符串描述的运算符。29.哪些关键字用于处理异常?try...catch-finally用于处理JavaScript中的异常。30.JavaScript中有多少种不同类型的错误?错误分为三种类型:加载时错误:加载网页时出现的这种错误,比如语法错误,称为加载时错误,该错误是动态产生的。运行时错误:因误用HTML语言中的命令而导致的错误。逻辑错误:这些是由于在具有不同操作的函数上执行错误逻辑而发生的错误。31.JavaScript中使用的Push方法是什么?push方法用于将一个或多个元素添加或附加到数组的末尾。使用此方法,可以通过传递多个参数来附加多个元素。32.JavaScript中的unshift方法是什么?Unshift方法类似于在数组开头工作的push方法。此方法用于将一个或多个元素添加到数组的开头。33.如何给对象属性赋值?对象的属性赋值如下:obj["class"]=12orobj.class=1234。解释window.onload和onDocumentReady?直到页面上的所有信息都加载完毕后,onload函数才会运行。这会导致在执行任何代码之前出现延迟。onDocumentReady在DOM加载后加载代码。这允许早期代码操作。35.你如何解释JavaScript中的闭包?什么时候使用它?闭包是在函数返回时保留在内存中的与函数关联的局部声明变量。36.如何将值附加到数组?值可以以给定的方式附加到数组:arr[arr.length]=value37。解释for-in循环?for-in循环用于迭代对象的属性。for-in循环的语法是:在每个循环中,对象的一个??属性与变量名相关联,循环一直持续到对象的所有属性都用完为止。38.描述JavaScript中的匿名函数?声明时没有任何命名标识符的函数称为匿名函数。一般来说,匿名函数在声明之后就不能访问了。匿名函数声明:39..call()和.apply()有什么区别?函数.call()和.apply()在使用上非常相似,只有一处不同。.call()当程序员知道函数参数的编号时使用,因为它们必须作为调用语句中的参数提及。另一方面,当数字未知时使用.apply()时,函数.apply()期望参数是一个数组。.call()和.apply()之间的基本区别在于将参数传递给函数。它们的用法可以通过给定的例子来说明。40.定义事件冒泡?JavaScript允许DOM元素嵌套在一起。在这种情况下,如果单击子处理程序,则父处理程序也会执行相同操作。41.JavaScript中可以使用哪些布尔运算符?“与”运算符(&&)、“或”运算符(||)和“非”运算符(!)可以在JavaScript中使用。*运算符没有括号。42.web-garden和web-farm有什么区别?网络花园和网络农场都是网络托管系统。唯一的区别是网络花园是在单个服务器中包含许多处理器的设置,而网络农场是使用多个服务器的更大设置。43.如何给对象属性赋值?给对象赋属性的方式和给变量赋值的方式是一样的。例如,表单对象的动作值被赋值为“提交”,方式如下:Document.form.action="submit"44.JavaScript读写文件的方法是什么?这可以通过使用JavaScript扩展(从JavaScript编辑器运行)来完成,打开文件的示例:fh=fopen(getScriptPath(),0)45.如何在JavaScript中使用DOM?DOM全称DocumentObjectModel,负责文档中各种对象的相互交互。DOM是开发网页所必需的,它包括段落、链接等对象。可以对这些对象进行操作,包括添加或删除等操作,还需要DOM来为网页添加额外的功能。除此之外,API的使用比其他的有优势。46.如何在JavaScript中使用事件处理器?事件是由用户生成的活动产生的操作,例如单击链接或填写表单。需要一个事件处理程序来管理所有这些事件的正确执行。事件处理程序是对象的额外属性。此属性包括事件的名称和事件发生时采取的操作。47.解释defer脚本在JavaScript中的作用?默认情况下,在页面加载期间,HTML代码的解析会暂停,直到脚本执行停止。这意味着如果服务器速度慢或脚本特别重,可能会导致页面延迟。使用Deferred时,脚本执行会延迟到HTML解析器运行。这减少了网页加载时间并且它们显示得更快。48.JavaScript中有哪些函数式组件?JavaScript中的不同函数组件是:一等函数:JavaScript中的函数用作一等对象。这通常意味着这些函数可以作为参数传递给其他函数,作为值从其他函数返回,分配给变量,或存储在数据结构中。嵌套函数:在其他函数内部定义的函数称为嵌套函数。49.解释unshift()方法?与push()不同,此方法在数组启动时起作用。它将所需数量的元素添加到数组的顶部。示例:输出如下所示:["joseph","Jane","charlie","john"]50.什么是decodeURI()和encodeURI()?EncodeURl()用于将URL转换为十六进制编码。而DecodeURI()用于将编码后的URL转换回正常。51.为什么不推荐在JavaScript中使用innerHTML?innerHTML内容每次都刷新,所以比较慢。innerHTML中没有验证空间,因此更容易将错误代码插入文档,从而破坏网页的稳定性。52.如何在不支持JavaScript的旧浏览器中隐藏JavaScript代码?在标记前添加“//->”。旧版浏览器现在将JavaScript代码视为一长串HTML注释。支持JavaScript的浏览器将“”视为单行注释。53.javascript的typeof返回哪些数据类型?Object,number,function,boolean,underfind54.3种强制类型转换和2种隐式类型转换的例子?Mandatory(parseInt,parseFloat,number)implicit(==–===)55.split()和join()的区别。前者是切入数组的形式,后者是将数组转成字符串。56.事件绑定和普通事件有什么区别?普通的添加事件的方法不支持添加多个事件,底部的事件会覆盖顶部的事件,但是事件绑定(addEventListener)方法可以添加多个事件。57.IE和DOM事件流的区别。1)执行顺序不同2)参数不同3)是否添加到事件上4)这就指向问题58,IE和标准下兼容的写法有哪些?变量ev=ev||窗口事件;文档.文档元素。客户端宽度||文档.body.clientWidth;变量目标=ev.srcElement||ev.target59。请求ajax时get和post的区别。一个在url后面,一个放在虚拟载体中。有大小限制。安全问题不同的应用:一种是针对论坛等只需要请求的,另一种是60.call和apply的区别,类似于改密码。Object.call(this,obj1,obj2,obj3)Object.apply(this,arguments)61.ajax请求时如何解释json数据?考虑到安全性,使用evalparse更可靠。62.什么是事件委托?下面我们就利用事件冒泡的原理,让自己触发的事件由他的父元素代替执行吧!有关示例,请参见此链接:http://www.webasily.com/?p=7863.什么是闭包?有什么特点?它如何影响页面?闭包是可以读取其他函数内部变量的函数。这个链接可以查看:http://blog.csdn.net/gaoshanw...64.如何防止事件冒泡和默认事件?cancelBubble,return,false65.添加、删除、替换、插入某个联系人方法。obj.appendChidl()obj.innersetBeforeobj.replaceChildobj.removeChild66.解释jsonp的原理,为什么它不是真正的ajax。动态创建脚本标签,回调函数Ajax是在不刷新页面的情况下进行数据操作67.javascript的本地对象、内置对象和宿主对象。本地对象是arrayobjregexp等,可以用new来实例化。内置对象是gloadMath等,不能实例化的宿主对象是浏览器自己的document、window等。68.documentload和documentready的区别。document.onload是结构和样式加载完成后执行js;Document.ready原生种没有这个方法,jquery有$().ready(function)69.“==”和“===”的区别。前者会自动转换类型,后者不会。70.javascript的同源策略。一个脚本只能读取同源窗口和文档的属性,同源是指主机名、协议和端口号的组合。