前100名 Java剧本面试问题与答案(2025)
Java针对应届毕业生的面试问题
1。 什么是 Java脚本?
JavaScript 是一种非常强大的客户端脚本语言。 Java脚本主要用于增强用户与网页的互动。换句话说,您可以借助以下工具让您的网页更加生动、更具互动性: Java脚本。 Java脚本在游戏开发和移动应用程序开发中也被广泛应用于。
2. 列举以下差异 Java 和 Java脚本?
Java 是一种完整的编程语言。相比之下, Java脚本是一种可以引入 HTML 页面的编码程序。这两种语言完全不相互依赖,并且设计用于不同的目的。 Java 是面向对象编程 (OOPS) 或结构化编程语言,如 C++ 或 C,而 JavaScript 是一种客户端脚本语言。
3。 什么是 Java脚本数据类型?
以下是 Java脚本数据类型:
- 联系电话
- 串
- 布尔
- 摆件
- 未定义
4.isNaN函数有什么用途?
如果参数不是数字,isNan 函数返回 true;否则,返回 false。
5. 哪个更快? Java脚本和 ASP 脚本?
Java脚本更快。 JavaScript 是一种客户端语言,因此它不需要 Web 服务器的协助即可执行。另一方面,ASP 是一种服务器端语言,因此总是比 Java脚本。 Javascript now 也是一种服务器端语言(nodejs)。
6.什么是负无穷大?
负无穷大是 Java可以通过将负数除以零得出的脚本。
7. 是否有可能打破 Java脚本代码分成几行?
可以在第一行末尾使用反斜杠“\,”来中断字符串语句。
示例:
document. Write ("This is \a program,");
如果您在不在字符串语句中时更改为新行,则 javaScript 将忽略该行中的换行。
示例:
var x=1, y=2, z= x+y;
上述代码非常好,但是由于它妨碍调试,因此不建议这样做。
8. 哪家公司开发了 Java脚本?
Netscape 是开发 Java脚本。
9.什么是未声明和未定义的变量?
未声明的变量是程序中不存在且未声明的变量。如果程序尝试读取未声明的变量的值,则会遇到运行时错误。
未定义变量是指在程序中声明但尚未赋值的变量。如果程序尝试读取未定义变量的值,则会返回未定义值。
10. 编写动态添加新元素的代码?
<html> <head> <title>t1</title> <script type="text/javascript"> function addNode () { var newP = document. createElement("p"); var textNode = document.createTextNode(" This is a new text node"); newP.appendChild(textNode); document.getElementById("firstP").appendChild(newP); } </script> </head> <body> <p id="firstP">firstP<p> </body> </html>
11. 什么是全局变量?这些变量如何声明?
全局变量在整个代码长度内都可用,因此没有作用域。var 关键字用于声明局部变量或对象。如果省略 var 关键字,则声明全局变量。
示例:
// 声明一个全局变量:globalVariable = “Test”;
使用全局变量面临的问题是局部和全局变量名的冲突。此外,依赖于全局变量的代码很难调试和测试。
12.什么是提示框?
提示框是一种通过提供文本框来让用户输入的框。将提供标签和框来输入文本或数字。
13. 'this' 关键字在 Java脚本?
“This”关键字指的是调用它的对象。
14. 定时器的工作原理是什么? Java脚本?
计时器用于在设定的时间执行一段代码或在给定的时间间隔内重复执行代码。这可以通过使用以下函数来实现 设置超时、设置间隔、 和 清除间隔.
这款 setTimeout(函数,延迟) 函数用于启动一个计时器,该计时器在上述延迟之后调用特定函数。 setInterval(函数,延迟) 函数重复执行给定函数,延迟时间指定,并且只有在取消时才会停止。 清除间隔(id) 函数指示计时器停止。
计时器在单个线程内运行,因此事件可能会排队等待执行。
15. 在 Javascript?
// 用于单行注释和
/* 多
Line
评论
*/
16.ViewState和SessionState有什么区别?
- “ViewState” 特定于会话中的某个页面。
- “SessionState” 特定于用户的数据,可以在所有 Web 应用程序页面中访问。
17.什么是 === 运算符?
=== 被称为严格相等运算符,当两个操作数具有相同的值且无需转换时,它就返回 true。
18. 如何使用 Java脚本?
使用以下方式提交表单 Java脚本使用
document.form[0].submit(); document.form[0].submit();
19.有 Java脚本支持自动类型转换吗?
是的, Java脚本确实支持自动类型转换。这是 Java脚本开发人员
20.如何改变元素的样式/类别?
可以按照以下方式进行:
document.getElementById("myText"). style. fontSize = "20";
or
document. getElementById ("myText"). className = "anyclass";
21.如何使用 Java脚本?
有两种方法可以读取和写入文件 Java脚本
- 运用 Java脚本扩展
- 使用网页和 Active X 对象
22. 循环结构都有哪些? Java脚本?
以下是循环结构 Javascript:
- 对于
- 而
- Do-while 循环
23. 什么是变量类型 Javascript?
变量类型用于将数字分配给变量。 可以将同一变量分配给字符串。
示例:
i = 10; i = "string;"
这称为变量类型。
24. 如何将任意基数的字符串转换为整数 Java脚本?
parseInt() 函数用于在不同进制之间转换数字。parseInt() 将要转换的字符串作为其第一个参数。第二个参数是给定字符串的进制。
要将 4F(或基数 16)转换为整数,使用的代码为 -
parseInt ("4F", 16);
25.“==”和“===”有什么区别?
“==” 仅检查值是否相等,而“===” 是更严格的相等测试,如果两个变量的值或类型不同,则返回 false。
Java针对有经验的面试者编写面试问题
26. 3+2+”7″的结果是多少?
由于 3 和 2 是整数,因此它们将以数字形式相加。由于 7 是字符串,因此将进行连接。因此结果为 57。
27. 如何检测客户端机器上的操作系统?
为了检测客户端机器上的操作系统,应该使用 navigator.Platform 字符串(属性)。
28. NULL 是什么意思? Javascript?
NULL 值用于表示没有值或没有对象。它意味着没有对象或空字符串、没有有效的布尔值、没有数字、也没有数组对象。
29.delete操作符的作用是什么?
delete 关键字用于删除属性及其值。
例如:
var student= {age:20, batch:"ABC"}; Delete student. age;
30. 未定义的值是什么 Java脚本?
未定义值意味着
- 代码中使用的变量不存在
- 变量未分配任何值
- 属性不存在。
31. 有哪些类型的弹出框可供选择? Java脚本?
- 警惕
- 确认并
- 提示
32.Void(0)有什么用途?
使用void(0)来防止页面刷新,调用时传递参数“零”。
Void(0) 用于在不刷新页面的情况下调用另一个方法。
33. 如何强制一个页面加载另一个页面 Java脚本?
必须插入以下代码才能达到预期的效果:
<script language="JavaScript" type="text/javascript" > <!-- location. href="https://www.guru99.com/javascript-interview-questions-answers.html"; //--></script>
34. 变量的数据类型是什么? Java脚本?
所有变量 Java脚本是对象数据类型。
35. 警告框和确认框有什么区别?
一个警告框只显示一个按钮,即“确定”按钮。
但是确认框显示两个按钮,分别是确定和取消。
36.什么是转义字符?
转义符(反斜杠)用于处理单引号、双引号、撇号和与号等特殊字符。在字符前放置反斜杠可使其显示。
示例:
document. write "I m a "good" boy." document. write "I m a \"good\" boy."
37。 什么是 Java脚本 Cookies?
Cookies 是存储在计算机中的小型测试文件,当用户访问网站时会创建这些文件来存储他们需要的信息。例如,以前访问的用户名详细信息和购物车信息。
38. 什么是 pop() 方法 Java腳本是?
pop() 方法与 shift() 方法类似,不同之处在于 Shift 方法在数组的开头起作用。pop() 方法从给定数组中取出最后一个元素并返回它。然后调用它的数组将被修改。
示例:
var cloths = ["Shirt", "Pant", "TShirt"]; cloths.pop(); //Now cloth becomes Shirt,Pant
39.有 Java脚本具有概念级范围吗?
序号 Java脚本没有概念级作用域。函数内部声明的变量的作用域在函数内部。
40. 在 HTML 中使用 innerHTML 有什么缺点? Java脚本?
如果你使用 innerHTML Java脚本,缺点是
- 内容随处替换
- 我们不能像“附加到 innerHTML
- 即使你使用 +=like “innerHTML = innerHTML + 'html'”,旧内容仍然会被 html 替换
- 整个 innerHTML 内容被重新解析并构建成元素。因此,速度要慢得多
- innerHTML 不提供验证,因此我们可能会在文档中插入有效但损坏的 HTML,从而破坏它
41. 什么是 break 和 continue 语句?
Break 语句退出当前循环。
Continue 语句继续执行循环的下一个语句。
42. 数据类型的两组基本类型是什么? Java脚本?
- 它们就像——原始的
- 引用类型
原始类型包括数字和布尔数据类型。引用类型是更复杂的类型,例如字符串和日期。
43.如何创建通用对象?
通用对象可以通过以下方式创建:
var I = new object();
44. 运算符类型有什么用途?
“Typeof” 是一个用于返回变量类型的字符串描述的运算符。
45. 哪些关键字用于处理异常?
Try…Catch—finally 用于处理 Java脚本
Try{ Code } Catch(exp){ Code to throw an exception. } Finally{ Code runs either it finishes successfully or after catch }
46. 哪个关键字用于在屏幕上打印文本?
Document.Write(“Welcome”) 用于在屏幕上打印文字 –Welcome。
47.模糊函数有什么用?
Blur 函数用于将焦点从指定对象上移开。
48.什么是变量类型?
变量类型将数字分配给变量,然后将字符串分配给同一变量。示例如下:
i= 8; i="john";
49. 如何使用 Java脚本?
这款 “导航器。应用程序版本用于在客户端机器中查找操作系统的名称。
50. 计算机错误类型有哪些? Java脚本?
错误有三种类型:
- 加载时间错误:加载网页时出现的错误,例如不正确的语法错误,称为加载时错误,并动态生成错误。
- 运行时错误:由于错误使用 HTML 语言内部的命令而导致的错误。
- 逻辑错误:这些错误是由于对具有不同操作的函数执行了错误逻辑而发生的。
Java编写 5 年经验面试问题
51. Push 方法在 Java脚本?
push 方法用于将一个或多个元素添加或附加到数组末尾。使用此方法,我们可以通过传递多个参数来附加多个元素。
52. unshift 方法是什么 Java脚本?
Unshift 方法类似于推送方法,它在开始时起作用 排列。此方法用于将一个或多个元素添加到数组的开头。
53. 有什么区别 Java脚本和 Jscript?
两者几乎相似。Netscape 和 Jscript 开发 Java剧本由 Microsoft.
54.对象属性是如何分配的?
属性按以下方式分配给对象 -
obj ["class"] = 12; or obj.class = 12;
55. Linux 中的“严格模式”是什么 Java脚本,如何启用它?
严格模式增加了一些强制要求 Java脚本。在严格模式下, Java脚本显示一段代码的错误,这段代码之前没有显示错误,但可能有问题并且可能不安全。严格模式还解决了一些妨碍 Java脚本引擎高效工作。
通过在文件上方添加字符串文字“use strict”可以启用严格模式。这可以通过给定的示例来说明:
function myfunction() { "use strict;" var v = "This is a strict mode function"; }
56. 如何获取支票状态Box?
可以通过以下方式获取状态 -
alert(document.getElementById('checkbox1').checked);
如果支票Box 被选中,此警报将返回 TRUE。
57. 如何检测客户端机器的操作系统?
navigator.appVersion 字符串可用于检测客户端机器上的操作系统。
58. 什么是window.onload和onDocumentReady?
直到页面上的所有信息都加载完毕后,onload 函数才会运行。这会导致在执行任何代码之前出现相当大的延迟。
onDocumentReady 在 DOM 加载后立即加载代码。这允许对代码进行早期操作。
59. 闭包是如何工作的 Java脚本?
闭包是与函数相关的本地声明的变量,当函数返回时,该变量将保留在内存中。
例如:
function greet(message) { console.log(message); } function greeter(name, age) { return name + " says howdy!! He is " + age + " years old"; } // Generate the message var message = greeter("James", 23); // Pass it explicitly to greet greet(message); This function can be better represented by using closures function greeter(name, age) { var message = name + " says howdy!! He is " + age + " years old"; return function greet() { console.log(message); }; } // Generate the closure var JamesGreeter = greeter("James", 23); // Use the closure JamesGreeter();
60. 如何将值附加到数组?
可以按照给定的方式将值附加到数组 -
arr[arr.length] = value;
61. for-in 循环是什么 Javascript?
for-in 循环用于循环遍历对象的属性。
for-in 循环的语法是 -
for (variable name in object){ statement or block to execute }
每次循环中,对象的一个属性与变量名相关联。循环持续进行,直到对象的所有属性都用完为止。
62. 匿名函数的重要属性是什么? Java脚本?
声明时未使用任何命名标识符的函数称为匿名函数。通常,匿名函数在声明后将无法访问。
匿名函数声明 –
var anon = function() { alert('I am anonymous'); }; anon();
63. .call() 和 .apply() 有什么区别?
函数 .call() 和 .apply() 的用法非常相似,只有一点不同。当程序员知道函数参数的数量时,使用 .call(),因为必须在调用语句中将它们作为参数提及。另一方面,当不知道数量时,使用 .apply()。函数 .apply() 要求参数是一个数组。
.call() 和 .apply() 之间的基本区别在于传递给函数的参数的方式。 可以通过给定的示例来说明它们的用法。
var someObject = { myProperty : 'Foo', myMethod : function(prefix, postfix) { alert(prefix + this.myProperty + postfix); } }; someObject.myMethod('<', '>'); // alerts '<Foo>' var someOtherObject = { myProperty : 'Bar.' }; someObject.myMethod.call(someOtherObject, '<', '>'); // alerts '<Bar>' someObject.myMethod.apply(someOtherObject, ['<', '>']); // alerts '<Bar>'
64.什么是事件冒泡?
Java脚本允许 DOM 元素相互嵌套。在这种情况下,如果子元素的处理程序被点击,父元素的处理程序也会像被点击一样工作。
65。 是 Java脚本区分大小写?请给出例子。
是的, Java脚本区分大小写。例如,函数 parseInt 与函数 Parseint 不同。
66. 哪些布尔运算符可用于 Java脚本?
“和” Operator (&&),“或” Operator(||)和“不” Operator(!)可用于 Java脚本。
*Operators 没有括号。
67. 如何通过超链接定位到特定框架? Java脚本?
这可以通过使用“目标”属性在超链接中包含所需框架的名称来实现。
<a href="/zh-CN/newpage.htm" target="newframe">>New Page</a>
68. break 和 continue 语句的作用是什么?
break 语句用于退出当前循环。相反,continue 语句会继续当前循环并进行新的递归。
69. 写出网络花园和网络农场之间的区别?
web-garden 和 web-farm 都是网络托管系统。唯一的区别是 web-garden 是一个在单个服务器中包含多个处理器的设置。同时,web-farm 是一个使用多个服务器的大型设置。
70.对象属性是如何分配的?
为对象分配属性的方式与为变量分配值的方式相同。例如,表单对象的操作值按以下方式分配为“提交” - Document.form.action=”submit”
71. 在 Linux 中读写文件的方法是什么? Java脚本?
这可以通过使用 Java脚本扩展(运行自 Java脚本编辑器),例如,打开一个文件 –
fh = fopen(getScriptPath(), 0);
72. DOM 在 Java脚本?
DOM 代表文档对象模型,负责文档中各种对象如何相互作用。开发网页需要 DOM,其中包括段落、链接等对象。可以操作这些对象,包括添加或删除等操作。DOM 还需要为网页添加额外功能。除此之外,使用 API 比其他现有模型更具优势。
73. 如何使用事件处理程序 Java脚本?
事件是由用户点击链接或填写表单等活动引起的操作。需要事件处理程序来管理所有这些事件的正确执行。事件处理程序是对象的一个额外属性。此属性包括事件的名称以及事件发生时采取的操作。
74. 延迟脚本在 Java脚本?
页面加载时HTML代码的解析默认会暂停,直到脚本还没有停止执行。如果服务器很慢或者脚本特别重,那么网页就会延迟。
使用 Deferred 时,脚本会延迟执行脚本,直到 HTML 解析器运行时。这减少了网页的加载时间,并使其显示得更快。
75. 空调系统中有哪些功能部件? Java脚本?
不同的功能组件 Java脚本是-
- 一等函数: 函数在 Java脚本被用作一级对象。这通常意味着这些函数可以作为参数传递给其他函数,作为其他函数的值返回,分配给变量,也可以存储在数据结构中。
- 嵌套函数: 在其他函数内部定义的函数称为嵌套函数。每次调用主函数时都会调用它们。
76. 写出 Java脚本?
Java脚本会给出一条消息,就好像它遇到了错误。识别的错误是 –
- 加载时错误: 页面加载时显示的错误属于加载时错误。使用不正确的语法会遇到这些错误,因此在页面加载时会被检测到。
- 运行时错误: 这是程序运行时出现的错误。例如,非法操作导致数字被零除或访问不存在的内存区域。
- 逻辑错误: 它是由语法正确的代码引起的,但该代码无法完成所需的任务 - 例如无限循环。
77. 什么是 Screen 对象?
屏幕对象用于从客户端屏幕读取信息。屏幕对象的属性包括:
- AvailHeight:给出客户端屏幕的高度
- AvailWidth:给出客户端屏幕的宽度
- ColorDepth:提供客户端屏幕上图像的位深度
- 高度:给出客户端屏幕的总高度,包括任务栏
- 宽度:给出客户端屏幕的总宽度,包括任务栏
78.什么是unshift()方法?
与 push() 不同,此方法在数组开始时起作用。它将所需数量的元素添加到数组的顶部。例如 –
var name = [ "john" ]; name.unshift( "charlie" ); name.unshift( "joseph", "Jane" ); console.log(name);
输出如下所示:
[" joseph ,"," Jane ,", " charlie ", " john "]
79.什么是unescape()和escape()函数?
escape()函数负责编码字符串,以便通过网络将信息从一台计算机传输到另一台计算机。
对于实施例:
<script> document.write(escape("Hello? How are you!")); </script>
输出: Hello%3F%20How%20are%20you%21
unescape() 函数非常重要,因为它可以解码编码的字符串。
它的工作原理如下。例如:
<script> document.write(unescape("Hello%3F%20How%20are%20you%21")); </script>
输出: 你好吗!
80.什么是decodeURI()和encodeURI()?
EncodeURl() 用于将 URL 转换为十六进制编码。DecodeURI() 用于将编码后的 URL 恢复为正常 URL。
<script> var uri="my test.asp?name=ståle&car=saab"; document.write(encodeURI(uri)+ "<br>"); document.write(decodeURI(uri)); </script>
输出–
我的%20test.asp?name=st%C3%A5le&car=saab
我的 test.asp?name=ståle&car=saab
Java编写 10 年以上经验的面试问题
81. 为什么你不应该在 Java脚本?
innerHTML 内容每次都会刷新,因此速度较慢。innerHTML 中没有验证范围。因此,更容易在文档中插入恶意代码并使网页不稳定。
82. 下列语句声明了什么?
var myArray = [[[]]];
它声明了一个三维数组。
83. 怎么样 JavaScript 和 ECMA Script 相关吗?
ECMA Script 就像规则和指南,而 Javascript 是一种用于Web开发的脚本语言。
84. 什么是命名空间 Java脚本,以及如何使用?
命名空间用于将所需的函数、变量等分组到一个唯一的名称下。该名称已附加到所需的函数、对象和属性。这提高了编码的模块化程度并实现了代码重用。
85.怎么可以 Java脚本代码被不支持的旧浏览器隐藏 Java脚本?
为了隐藏 Java旧浏览器的脚本代码:
添加 ” 标签。
在代码中,在 tag.
旧浏览器现在将处理此问题 Java脚本代码作为长 HTML 注释。虽然支持 Java脚本将采用“ ”作为一行注释。
86. 如何在 Java脚本?
当您重复执行相同的代码行特定次数或只要特定条件为真时,循环非常有用。假设您想在网页上输入 100 次“Hello”消息。当然,您必须复制并粘贴同一行 100 次。相反,如果您使用循环,您只需 3 或 4 行即可完成此任务。
87. 如何在 Javascript?
主要有四种类型的循环 Java脚本。
for循环
for/in 循环(稍后解释)
while循环
做…while 循环
for循环
语法:
for(statement1; statement2; statment3) { lines of code to be executed }
- Statement1 先执行,甚至在执行循环代码之前。因此,此语句通常用于为循环内使用的变量赋值。
- statement2 是执行的条件 循环.
- 每次执行循环代码后都会执行statement3。
<html> <head> <script type="text/javascript"> var students = new Array("John", "Ann", "Aaron", "Edwin", "Elizabeth"); document.write("<b>Using for loops </b><br />"); for (i=0;i<students.length;i++) { document.write(students[i] + "<br />"); } </script> </head> <body> </body> </html>
while循环
语法:
while(condition) { lines of code to be executed }
只要指定条件为真,就会执行“while 循环”。在 while 循环中,您应该包含将在某个时间点结束循环的语句。否则,您的循环将永远不会结束,并且您的浏览器可能会崩溃。
做…while 循环
语法:
<pre> do { block of code to be executed } while (condition)
do…while 循环与 while 循环非常相似。唯一的区别是,在 do…while 循环中,代码块在检查条件之前就执行了一次。
示例:
<html> <head> <script type="text/javascript"> document.write("<b>Using while loops </b><br />"); var i = 0, j = 1, k; document.write("Fibonacci series less than 40<br />"); while(i<40) { document.write(i + "<br />"); k = i+j; i = j; j = k; } </script> </head> <body> </body> </html>
88. 重要的 Java脚本数组方法请举例解释?
Java脚本数组方法
Array 对象具有许多属性和方法,可帮助开发人员轻松高效地处理数组。您可以通过指定 arrayname.property 获取属性的值,并通过指定 arrayname.method() 获取方法的输出。
- 长度属性 –> 如果想知道数组中元素的数量,可以使用 length 属性。
- 原型属性 –> 如果您想添加新的属性和方法,您可以使用prototype属性。
- 逆向方法 –> 您可以使用反向方法反转数组中项目的顺序。
- 排序方法 –> 您可以使用排序方法对数组中的项目进行排序。
- pop 方法 –> 您可以使用 pop 方法删除数组的最后一项。
- 转移法 –> 您可以使用 shift 方法删除数组的第一个项目。
- 推送方法 –> 您可以添加一个值作为数组的最后一项。
<html> <head> <title>Arrays!!!</title> <script type="text/javascript"> var students = new Array("John", "Ann", "Aaron", "Edwin", "Elizabeth"); Array.prototype.displayItems=function(){ for (i=0;i<this.length;i++){ document.write(this[i] + "<br />"); } } document.write("students array<br />"); students.displayItems(); document.write("<br />The number of items in students array is " + students.length + "<br />"); document.write("<br />The SORTED students array<br />"); students.sort(); students.displayItems(); document.write("<br />The REVERSED students array<br />"); students.reverse(); students.displayItems(); document.write("<br />THE students array after REMOVING the LAST item<br />"); students.pop(); students.displayItems(); document.write("<br />THE students array after PUSH<br />"); students.push("New Stuff"); students.displayItems(); </script> </head> <body> </body> </html>
89. OOPS 概念是什么 Java脚本?
很多时候,变量或数组不足以模拟现实生活中的情况。 Java脚本允许您创建像真实对象一样的对象。学生或家庭可以是具有许多独特特征的对象。您可以为对象创建属性和方法,以简化编程。如果您的对象是学生,它将具有名字、姓氏、ID 等属性,以及计算排名、更改地址等方法。如果您的对象是家庭,它将具有房间数、油漆颜色、位置等属性。方法包括计算面积、更改所有者等。
如何创建对象
你可以创建一个这样的对象:
var objName = new Object(); objName.property1 = value1; objName.property2 = value2; objName.method1 = function() { line of code }
OR
var objName= {property1:value1, property2:value2, method1: function() { lines of code} };
90. 什么是循环遍历对象的属性?
for/in 循环通常用于循环遍历对象的属性。您可以为变量指定任何名称,但对象的名称应与您需要循环遍历的现有对象相同。
语法:
for (variablename in objectname) { lines of code to be executed }
示例:
<html> <head> <script type="text/javascript"> var employee={first:"John", last:"Doe", department:"Accounts"}; var details = ""; document.write("<b>Using for/in loops </b><br />"); for (var x in employee) { details = x + ": " + employee[x]; document.write(details + "<br />"); } </script> </head> <body> </body> </html>
91。 什么是 Java脚本单元测试,以及面临的挑战是什么 Java脚本单元测试?
Java脚本单元测试是一种测试方法,其中 Java脚本测试为网页或 Web 应用程序模块编写的代码。它与 HTML 结合作为内联事件处理程序并在浏览器中执行,以测试所有功能是否正常运行。然后,这些单元测试被组织在测试套件中。
每个套件都包含几个为单独模块执行的测试。最重要的是,它们不会与任何其他模块冲突,并且运行时彼此之间的依赖性较低(某些关键情况可能会导致依赖性)。
的挑战 Java脚本单元测试:
以下是 Java脚本单元测试:
- 许多其他语言都支持浏览器(稳定环境和运行时环境)中的单元测试,但是 Java脚本不能
- 你可以用其他语言理解一些系统操作,但 Java脚本
- 有 Java脚本是为可能具有多个依赖项的 Web 应用程序编写的。
- Java脚本适合与 HTML 和 CSS 结合使用,而不是在网络上使用
- 页面渲染和 DOM 操作困难
- 有时,你会在屏幕上发现一条错误消息,提示“无法加载 example.js”或其他任何 Java有关版本控制的脚本错误。这些漏洞属于单元测试 Java脚本
的解决方案 Java脚本单元测试:
为了避免此类问题,您可以采取以下措施:
- 不要使用全局变量。
- 不要操纵预定义的对象。
- 根据该库设计核心功能。
- 尝试创建依赖性较少的小块功能。
92. 哪些是重要的 Java脚本单元测试框架?
以下是精选的热门 Java广泛使用的脚本单元测试框架和工具:
Unit.js: 它被称为在浏览器和 Node.js 上运行的开源断言库。它与其他 Java脚本单元测试框架,如 Mocha、Karma、Jasmine、QUnit、Protractor 等。提供断言列表的完整记录 API。
量子单元(QUnit): 它用于客户端和服务器端 Java脚本单元测试。这个免费 Java脚本测试框架用于 jQuery 项目。它遵循通用 JS 单元测试规范,用于 Java脚本。支持节点长期支持计划。
茉莉花: Jasmine 是用于单元测试的行为驱动开发框架 Java脚本。它用于测试同步和异步 Java脚本代码。它不需要 DOM,并且带有可用于任何测试的简单语法。
因果报应: Karma 是一个开源的高效测试环境。在命令行上运行,轻松控制工作流。提供使用 Jasmine、Mocha 和 QUnit 编写测试的自由。您可以在真实设备上运行测试并轻松调试。
摩卡: Mocha 在 Node.js 和浏览器中运行。Mocha 可以更简单地执行异步测试。提供准确且灵活的报告。提供对丰富功能(例如测试特定的超时)的强大支持, Java脚本 API。
笑话: Facebook 目前使用 jest 来测试所有 Java脚本代码。它提供“零配置”测试体验。支持独立、不间断地运行测试,不会产生任何冲突。不需要任何其他设置配置和库。
阿瓦: AVA 是一种简单的 Java脚本单元测试框架。测试以并行和串行方式运行。并行测试运行时不会相互中断。此测试框架还支持异步测试。AVA 使用子进程来运行单元测试 Java脚本。
93. 什么是快速排序算法 Java脚本?
快速排序算法遵循分而治之的方法。它根据某些条件将元素分成更小的部分,然后对分成的较小部分执行排序操作。
快速排序算法是所有编程语言中最常用和最流行的算法之一。如果你是 Java脚本开发人员,您可能听说过 sort(),它已在 Java脚本。然后,你可能一直在思考为什么需要这个快速排序算法。要理解这一点,首先,我们需要了解什么是排序,以及什么是默认排序 Java脚本。
快速排序遵循 分而治之 算法。它根据某些条件将元素划分为较小的部分,并对这些划分的较小部分执行排序操作。因此,它适用于大型数据集。因此,以下是快速排序的简单工作步骤。
- 首先,选择一个元素,称为 枢纽 元件。
- 接下来,将所有数组元素与选定的枢轴元素进行比较,并将它们排列成小于枢轴元素的元素在左侧,大于枢轴元素的元素在右侧。
- 最后对枢轴元素的左右两侧元素进行同样的操作。
这就是快速排序的基本概要。以下是执行快速排序需要逐一遵循的步骤。
94.快速排序如何工作
步骤1) 首先,找到 “枢” 数组中的元素。
步骤2) 将左指针置于数组的第一个元素处。
步骤3) 将右指针从数组的最后一个元素开始。
步骤4) 将指向的元素与左指针进行比较,如果小于枢轴元素,则将左指针向右移动(左侧索引加 1)。继续此操作,直到左侧元素大于或等于枢轴元素。
步骤5) 将指向的元素与右指针进行比较。如果它大于枢轴元素,则将右指针向左移动(将右侧索引减 1)。继续此操作,直到右侧元素小于或等于枢轴元素。
步骤6) 检查左指针是否小于或等于右指针,然后查看这些指针位置上的元素。
步骤7) 增加左指针并减少右指针。
步骤8) 如果左指针索引仍然小于右指针的索引,则重复该过程;否则,返回左指针的索引。
那么,让我们通过一个例子来看一下这些步骤。假设我们需要排序的元素数组是 [5,3,7,6,2,9]。
下面是执行快速排序的步骤,以 [5,3,7,6,2,9] 为例。
步骤1) 确定枢轴作为中间元素。因此, 7 是枢轴元素。
步骤2) 将左指针和右指针分别作为数组的第一个和最后一个元素。左指针指向索引 5 处的 0,右指针指向 9 位于索引 5。
步骤3) 将左指针元素与枢轴元素进行比较,由于 5 < 6,因此将左指针向右移动到索引 1。
步骤4) 现在,仍然有 3 < 6,因此将左指针向右移动一个索引。现在 7 > 6 停止增加左指针,现在左指针为索引 2。
步骤5) 现在,将右指针的值与枢轴元素进行比较。由于 9 > 6,因此将右指针向左移动。现在,由于 2 < 6,因此停止移动右指针。
步骤6) 将左指针和右指针处的值相互交换。
步骤7) 将两个指针再移动一步。
步骤8) 由于 6 = 6,将指针再移动一步,并在左指针穿过右指针时停止并返回左指针的索引。
这里基于上述方法,我们需要编写代码来交换元素并对数组进行分区,如上述步骤中所述。
示例:
var items = [5,3,7,6,2,9]; function swap(items, leftIndex, rightIndex){ var temp = items[leftIndex]; items[leftIndex] = items[rightIndex]; items[rightIndex] = temp; } function: partition(items, left, right) { var pivot = items[Math.floor((right + left) / 2)], //middle element i = left, //left pointer j = right; //right pointer while (i <= j) { while (items[i] < pivot) { i++; } while (items[j] > pivot) { j--; } if (i <= j) { swap(items, i, j); //sawpping two elements i++; j--; } } return i; } function quickSort(items, left, right) { var index; if (items.length > 1) { index = partition(items, left, right); //index returned from partition if (left < index - 1) { //more elements on the left side of the pivot quickSort(items, left index - 1); } if (index < right) { //more elements on the right side of the pivot quickSort(items, index, right); } } return items; } // first call to quick sort var sortedArray = quickSort(items, 0, items.length - 1); console.log(sortedArray); //prints [2,3,5,6,7,9]
95. DOM 是什么 Java脚本?
Java脚本可以使用文档对象模型 (DOM) 访问网页中的所有元素。网页加载时,网络浏览器会创建网页的 DOM。
96. 如何使用 DOM 和事件?
使用 DOM, Java脚本可以执行多项任务。它可以创建新的元素和属性,更改现有的元素和属性,甚至删除现有的元素和属性。 Java脚本还可以对现有事件做出反应并在页面中创建新事件。
- getElementById, innerHTML 示例
- getElementById:访问已设置 id 的元素和属性。
- innerHTML:访问元素的内容。
<html> <head> <title>DOM!!!</title> </head> <body> <h3 id="one">Welcome</h3> <p>This is the welcome message.</p> <h3>Technology</h3> <p>This is the technology section.</p> <script type="text/javascript"> var text = document.getElementById("one").innerHTML; alert("The first heading is " + text); </script> </body> </html>
2.getElementsByTagName 示例
getElementsByTagName:使用标签名称访问元素和属性。此方法将返回具有相同标签名称的所有项目的数组。
<html> <head> <title>DOM!!!</title> </head> <body> <h3>Welcome</h3> <p>This is the welcome message.</p> <h3>Technology</h3> <p id="second">This is the technology section.</p> <script type="text/javascript"> var paragraphs = document.getElementsByTagName("p"); alert("Content in the second paragraph is " + paragraphs[1].innerHTML); document.getElementById("second").innerHTML = "The orginal message is changed."; </script> </body> </html>
事件处理程序示例
- createElement:创建新元素
- removeChild:删除一个元素
- 您可以添加 事件处理程序 像这样的特定元素
document.getElementById(id).onclick=function() { lines of code to be executed }
OR
document.getElementById(id).addEventListener("click", functionname)
示例:
<html> <head> <title>DOM!!!</title> </head> <body> <input type="button" id="btnClick" value="Click Me!!" /> <script type="text/javascript"> document.getElementById("btnClick").addEventListener("click", clicked); function clicked() { alert("You clicked me!!!"); } </script> </body> </html>
97.什么是外部 Java脚本?
您计划在所有网页上显示当前日期和时间。假设您编写了代码并将其复制到所有网页(例如 100 个)。但后来,您想更改显示日期或时间的格式。在这种情况下,您必须对所有 100 个网页进行更改。这将是一项非常耗时且困难的任务。
因此,保存 Java在扩展名为 .js 的新文件中编写脚本代码。然后在所有网页中添加一行代码以指向您的 .js 文件,如下所示:
<script type="text/javascript," src="/currentdetails.js,">
请注意: 假设 .js 文件和您的所有网页都位于同一文件夹中。如果 external.js 文件位于不同的文件夹中,则需要在 src 属性中指定文件的完整路径。
示例:
var currentDate = new Date(); var day = currentDate.getDate(); Var month = currentDate.getMonth() + 1; var monthName; var hours = currentDate.getHours(); var mins = currentDate.getMinutes(); var secs = currentDate.getSeconds(); var strToAppend; It (hours >12 ) { hours1 = "0" + (hours - 12); strToAppend = "PM"; } else if (hours <12) { hours1 = "0" + hours; strToAppend = "AM"; } else { hours1 = hours; strToAppend = "PM"; } if(mins<10) mins = "0" + mins; if (secs<10) secs = "0" + secs; switch (month) { case 1: monthName = "January"; break; case 2: monthName = "February"; break; case 3: monthName = "March"; break; case 4: monthName = "April"; break; case 5: monthName = "May"; break; case 6: monthName = "June"; break; case 7: monthName = "July"; break; case 8: monthName = "August"; break; case 9: monthName = "September"; break; case 10: monthName = "October"; break; case 11: monthName = "November"; break; case 12: monthName = "December"; break; } var year = currentDate.getFullYear(); var myString; myString = "Today is " + day + " - " + monthName + " - " + year + ".<br />Current time is " + hours1 + ":" + mins + ":" + secs + " " + strToAppend + "."; document.write(myString);
98. 何时使用内部和外部 Java脚本代码?
假设你只有几行特定于特定网页的代码。在这种情况下,最好保留你的 JavaHTML 文档内部的脚本代码。
另一方面,如果您的 Java脚本代码用于许多网页,您应该考虑将代码保存在单独的文件中。如果您希望对代码进行一些更改,则只需更改一个文件,这样可以轻松维护代码。如果您的代码太长,最好将其保存在单独的文件中。这有助于轻松调试。
99. 什么是 Cookie Java脚本?
Cookie 是存储在计算机上供浏览器访问的一段数据。您可能有意或无意地享受过 Cookie 带来的好处。您是否曾保存过 Facebook 密码,这样就不必每次尝试登录时都输入密码?如果是,那么您正在使用 Cookie。Cookie 以键/值对的形式保存。
Javascript 设置Cookie:
您可以像这样使用 document.cookie 属性创建 cookie。
document.cookie = "cookiename=cookievalue"
您甚至可以为 Cookie 添加到期日期,以便在指定日期从计算机中删除特定 Cookie。到期日期应采用 UTC/GMT 格式。如果您不设置到期日期,则当用户关闭浏览器时,Cookie 将被删除。
document.cookie = "cookiename=cookievalue; expires= Thu, 21 Aug 2014 20:00:00 UTC"
还可以设置域和路径,指定Cookie属于哪个域以及该域中的哪些目录。默认情况下,Cookie属于设置Cookie的页面。
document.cookie = "cookiename=cookievalue; expires= Thu, 21 Aug 2014 20:00:00 UTC; path=/
//创建一个包含当前页面域名和整个域名路径的 cookie。
Java脚本获取Cookie
您可以像这样访问 Cookie,它将返回为当前域保存的所有 Cookie。
var x = document.cookie
Java脚本删除 Cookie
要删除 cookie,您只需将 cookie 的值设置为空,并将 expires 的值设置为过去的日期。
示例:
<html> <head> <title>Cookie!!!</title> <script type="text/javascript"> function createCookie(cookieName,cookieValue,daysToExpire) { var date = new Date(); date.setTime(date.getTime()+(daysToExpire*24*60*60*1000)); document.cookie = cookieName + "=" + cookieValue + "; expires=" + date.toGMTString(); } function accessCookie(cookieName) { var name = cookieName + "="; var allCookieArray = document.cookie.split(';'); for(var i=0; i<allCookieArray.length; i++) { var temp = allCookieArray[i].trim(); if (temp.indexOf(name)==0) return temp.substring(name.length,temp.length); } return ""; } function checkCookie() { var user = accessCookie("testCookie"); if (user!="") alert("Welcome Back " + user + "!!!"); else { user = prompt("Please enter your name"); num = prompt("How many days you want to store your name on your computer?"); It (user!="" && user!=null) { createCookie("testCookie", user, num); } } } </script> </head> <body onload="checkCookie()"></body> </html>
100. 举个例子 Java脚本乘法表
这里有一个简单乘法表的例子,询问用户想要的行数和列数。
示例:
<html> <head> <title>Multiplication Table</title> <script type="text/javascript"> var rows = prompt("How many rows for your multiplication table?"); var cols = prompt("How many columns for your multiplication table?"); if(rows == "" || rows == null) rows = 10; if(cols== "" || cols== null) cols = 10; createTable(rows, cols); function createTable(rows, cols) { var j=1; var output = "<table border='1' width='500' cellspacing='0'cellpadding='5'>"; for(i=1;i<=rows;i++) { output = output + "<tr>"; while(j<=cols) { output = output + "<td>" + i*j + "</td>"; j = j+1; } output = output + "</tr>"; j = 1; } output = output + "</table>"; document.write(output); } </script> </head> <body> </body> </html>
101. 使用事件解释弹出消息(示例)
在您的演示网页上显示一条简单消息“欢迎!!!”,当用户将鼠标悬停在消息上时,应显示一个弹出窗口,其中包含一条消息“欢迎来到我的网页!!!”。
示例:
<html> <head> <title>Event!!!</title> <script type="text/javascript"> function trigger() { document.getElementById("hover").addEventListener("mouseover", popup); function popup() { alert("Welcome to my WebPage!!!"); } } </script> <style> p{ font-size:50px; position: fixed; left: 550px; top: 300px; } </style> </head> <body onload="trigger();"> <p id="hover">Welcome!!!</p> </body> </html>
这些面试问题也会对你的口试有帮助