Top 100 JavaCâu hỏi và câu trả lời phỏng vấn kịch bản (2025)

Dưới đây là JavaSoạn thảo câu hỏi và câu trả lời phỏng vấn dành cho cả ứng viên mới và có kinh nghiệm để có được công việc mơ ước.

 

JavaKịch bản câu hỏi phỏng vấn cho người mới

1. JavaKịch bản?

JavaScript là ngôn ngữ lập trình phía máy khách rất mạnh mẽ. JavaScript được sử dụng chủ yếu để tăng cường sự tương tác của người dùng với trang web. Nói cách khác, bạn có thể làm cho trang web của mình sống động và tương tác hơn với sự trợ giúp của JavaKịch bản. JavaScript cũng đang được sử dụng rộng rãi trong phát triển trò chơi và phát triển ứng dụng di động.

👉 Tải xuống bản PDF miễn phí: JavaCâu hỏi phỏng vấn kịch bản & Trả lời >>


2. Liệt kê sự khác biệt giữa Java và JavaKịch bản?

Java là một ngôn ngữ lập trình hoàn chỉnh. Ngược lại, JavaScript là một chương trình được mã hóa có thể được đưa vào các trang HTML. Hai ngôn ngữ này hoàn toàn không phụ thuộc lẫn nhau và được thiết kế cho các mục đích khác nhau. Java là một lập trình hướng đối tượng (OOPS) hoặc các ngôn ngữ lập trình có cấu trúc như C++ hoặc C, trong khi đó JavaScript là một ngôn ngữ kịch bản phía máy khách.


3. là gì JavaKiểu dữ liệu tập lệnh?

Sau đây là JavaKiểu dữ liệu Script:

  • Con số
  • Chuỗi
  • Boolean
  • Đối tượng
  • Không xác định

4. Công dụng của hàm isNaN là gì?

Hàm isNan trả về true nếu đối số không phải là số; nếu không, trả về false.


5. Cái nào nhanh hơn giữa JavaScript và script ASP?

JavaViết script nhanh hơn. JavaScript là ngôn ngữ phía máy khách, do đó nó không cần sự hỗ trợ của máy chủ web để thực thi. Mặt khác, ASP là ngôn ngữ phía máy chủ và do đó luôn chậm hơn JavaKịch bản. Javascript bây giờ cũng là ngôn ngữ phía máy chủ (nodejs).


6. Vô cực âm là gì?

Vô cực âm là một số trong JavaChữ viết có thể được suy ra bằng cách chia số âm cho số không.


7. Có thể gãy được không JavaViết mã thành nhiều dòng?

Việc ngắt trong câu lệnh chuỗi có thể được thực hiện bằng cách sử dụng dấu gạch chéo ngược, '\,' ở cuối dòng đầu tiên.

Ví dụ:

document. Write ("This is \a program,");

Và nếu bạn thay đổi sang một dòng mới khi không nằm trong câu lệnh chuỗi thì javaScript sẽ bỏ qua dấu ngắt dòng.

Ví dụ:

var x=1, y=2,
z=
x+y;

Đoạn mã trên hoàn toàn ổn, mặc dù không nên dùng vì nó cản trở việc gỡ lỗi.


8. Công ty nào phát triển JavaKịch bản?

Netscape là công ty phần mềm đã phát triển JavaKịch bản.


9. Biến không được khai báo và biến không xác định là gì?

Biến không được khai báo là những biến không tồn tại trong chương trình và không được khai báo. Nếu chương trình cố đọc giá trị của một biến không được khai báo thì sẽ gặp lỗi thời gian chạy.

Biến không xác định là những biến được khai báo trong chương trình nhưng chưa được gán bất kỳ giá trị nào. Nếu chương trình cố đọc giá trị của biến không xác định, giá trị không xác định sẽ được trả về.


10. Viết mã để thêm các phần tử mới một cách linh hoạt?

<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. Biến toàn cục là gì? Các biến này được khai báo như thế nào?

Các biến toàn cục có sẵn trong suốt chiều dài của mã nên nó không có phạm vi. Từ khóa var được sử dụng để khai báo một biến hoặc đối tượng cục bộ. Nếu từ khóa var bị bỏ qua, một biến toàn cục sẽ được khai báo.

Ví dụ:

// Khai báo một biến toàn cục: GlobalVariable = “Test”;

Các vấn đề gặp phải khi sử dụng biến toàn cục là sự xung đột giữa tên biến của phạm vi cục bộ và toàn cục. Ngoài ra, rất khó để gỡ lỗi và kiểm tra mã dựa trên các biến toàn cục.


12. Hộp nhắc nhở là gì?

Hộp nhắc là hộp cho phép người dùng nhập dữ liệu bằng cách cung cấp hộp văn bản. Nhãn và hộp sẽ được cung cấp để nhập văn bản hoặc số.


13. Từ khóa 'this' trong JavaKịch bản?

Từ khóa 'This' đề cập đến đối tượng nơi nó được gọi.


14. Chức năng của đồng hồ bấm giờ trong JavaKịch bản?

Bộ hẹn giờ được sử dụng để thực thi một đoạn mã tại một thời điểm đã đặt hoặc lặp lại mã trong một khoảng thời gian nhất định. Điều này được thực hiện bằng cách sử dụng các chức năng setTimeout, setInterval, ClearInterval.

setTimeout(chức năng, độ trễ) được sử dụng để bắt đầu bộ hẹn giờ gọi một chức năng cụ thể sau độ trễ đã đề cập. Các setInterval(hàm, độ trễ) hàm thực hiện lặp lại hàm đã cho trong độ trễ đã đề cập và chỉ dừng khi bị hủy. Các ClearInterval(id) chức năng hướng dẫn bộ đếm thời gian dừng lại.

Bộ hẹn giờ được vận hành trong một luồng duy nhất và do đó các sự kiện có thể xếp hàng chờ được thực thi.


15. Ký hiệu nào được dùng để bình luận trong Javascript?

// cho chú thích một dòng và

/* Đa

Dòng

Bình luận

*/


16. Sự khác biệt giữa ViewState và SessionState là gì?

  • 'ViewState' dành riêng cho một trang trong phiên.
  • 'SessionState' dành riêng cho dữ liệu dành riêng cho người dùng có thể được truy cập trên tất cả các trang ứng dụng web.

17. Toán tử === là gì?

=== được gọi là toán tử đẳng thức nghiêm ngặt, trả về true khi hai toán hạng có cùng giá trị mà không cần chuyển đổi.


18. Cách bạn có thể gửi biểu mẫu bằng cách sử dụng JavaKịch bản?

Để gửi biểu mẫu bằng cách sử dụng JavaSử dụng tập lệnh

document.form[0].submit();
document.form[0].submit();

19. Có JavaScript có hỗ trợ chuyển đổi kiểu tự động không?

Có, JavaScript hỗ trợ chuyển đổi kiểu tự động. Đây là cách chuyển đổi kiểu thông dụng được sử dụng bởi JavaNhà phát triển kịch bản


20. Làm cách nào để thay đổi kiểu/lớp của một phần tử?

Có thể thực hiện theo cách sau:

document.getElementById("myText"). style. fontSize = "20";

or

document. getElementById ("myText"). className = "anyclass";

21. Cách đọc và ghi file bằng JavaKịch bản?

Có hai cách để đọc và ghi một tập tin bằng cách sử dụng JavaScript

  • Sử dụng JavaPhần mở rộng tập lệnh
  • Sử dụng trang web và đối tượng Active X

22. Tất cả các cấu trúc vòng lặp trong JavaKịch bản?

Sau đây là các cấu trúc lặp trong Javascript:

  • Trong cáp
  • Trong khi
  • Vòng lặp do-while

23. Cái gọi là gõ biến Javascript?

Kiểu gõ biến được sử dụng để gán một số cho một biến. Biến tương tự có thể được gán cho một chuỗi.

Ví dụ:

i = 10;
i = "string;"

Điều này được gọi là gõ biến.


24. Làm thế nào bạn có thể chuyển đổi một chuỗi cơ số bất kỳ thành số nguyên trong JavaKịch bản?

Hàm ParseInt() được sử dụng để chuyển đổi các số giữa các cơ số khác nhau. ParseInt() lấy chuỗi cần chuyển đổi làm tham số đầu tiên. Tham số thứ hai là cơ sở của chuỗi đã cho.

Để chuyển đổi 4F (hoặc cơ số 16) thành số nguyên, mã được sử dụng sẽ là –

parseInt ("4F", 16);

25. Sự khác nhau giữa “==” và “===”?

“==” chỉ kiểm tra sự bằng nhau về giá trị, trong khi “===” là kiểm tra sự bằng nhau chặt chẽ hơn và trả về sai nếu giá trị hoặc loại của hai biến khác nhau.


JavaKịch bản câu hỏi phỏng vấn cho người có kinh nghiệm

26. Kết quả của 3+2+”7” sẽ là bao nhiêu?

Vì 3 và 2 là số nguyên nên chúng sẽ được cộng bằng số. Và vì 7 là một chuỗi nên việc nối chuỗi sẽ được thực hiện. Vậy kết quả sẽ là 57.


27. Làm cách nào để phát hiện hệ điều hành trên máy khách?

Để phát hiện hệ điều hành trên máy khách, navigator. Chuỗi nền tảng (thuộc tính) nên được sử dụng.


28. Bạn có ý nghĩa gì với từ NULL trong Javascript?

Giá trị NULL được sử dụng để biểu thị không có giá trị hoặc không có đối tượng. Nó ngụ ý không có đối tượng hoặc chuỗi null, không có giá trị boolean hợp lệ, không có số và không có đối tượng mảng.


29. Chức năng của toán tử xóa là gì?

Từ khóa delete được sử dụng để xóa thuộc tính cũng như giá trị của nó.

Ví dụ

var student= {age:20, batch:"ABC"};
Delete student. age;

30. Giá trị không xác định trong JavaKịch bản?

Giá trị không xác định có nghĩa là

  • Biến được sử dụng trong mã không tồn tại
  • Biến không được gán cho bất kỳ giá trị nào
  • Tài sản không tồn tại.

31. Có những loại hộp Pop up nào? JavaKịch bản?

  • Cảnh báo
  • Xác nhận và
  • nhanh chóng

32. Công dụng của Void (0) là gì?

Void(0) được sử dụng để ngăn trang làm mới và tham số “zero” được truyền trong khi gọi.

Void(0) được sử dụng để gọi một phương thức khác mà không cần làm mới trang.


33. Làm thế nào một trang có thể bị buộc phải tải một trang khác trong JavaKịch bản?

Phải chèn mã sau đây để đạt được hiệu ứng mong muốn:

<script language="JavaScript" type="text/javascript" >
<!-- location. href="https://www.guru99.com/javascript-interview-questions-answers.html"; //--></script>

34. Kiểu dữ liệu của biến trong JavaKịch bản?

Tất cả các biến trong JavaScript là kiểu dữ liệu đối tượng.


35. Sự khác nhau giữa hộp cảnh báo và hộp xác nhận là gì?

Hộp cảnh báo chỉ hiển thị một nút, đó là nút OK.

Nhưng hộp Xác nhận sẽ hiển thị hai nút, cụ thể là OK và Hủy.


36. Ký tự thoát là gì?

Ký tự thoát (Dấu gạch chéo ngược) được sử dụng khi làm việc với các ký tự đặc biệt như dấu ngoặc đơn, dấu ngoặc kép, dấu nháy đơn và dấu &. Đặt dấu gạch chéo ngược trước các ký tự để hiển thị.

Ví dụ:

document. write "I m a "good" boy."
document. write "I m a \"good\" boy."

37. là gì JavaCookie tập lệnh?

Cookies là các tệp thử nghiệm nhỏ được lưu trữ trong máy tính và được tạo ra khi người dùng truy cập trang web để lưu trữ thông tin họ cần. Ví dụ có thể là thông tin chi tiết về Tên người dùng và thông tin giỏ hàng từ các lần truy cập trước.


38. Thật là một phương thức pop() trong JavaKịch bản là gì?

Phương thức pop() tương tự như phương thức shift(), nhưng điểm khác biệt là Shift phương thức hoạt động khi bắt đầu mảng. Phương thức pop() lấy phần tử cuối cùng của mảng đã cho và trả về nó. Mảng mà nó được gọi sau đó sẽ bị thay đổi.

Ví dụ:

var cloths = ["Shirt", "Pant", "TShirt"];
cloths.pop();
//Now cloth becomes Shirt,Pant

39. Có JavaKịch bản có phạm vi ở mức khái niệm không?

Không. JavaScript không có phạm vi cấp khái niệm. Biến được khai báo bên trong hàm có phạm vi bên trong hàm.


40. Nhược điểm của việc sử dụng InnerHTML trong JavaKịch bản?

Nếu bạn sử dụng InternalHTML trong JavaKịch bản, nhược điểm là

  • Nội dung được thay thế ở mọi nơi
  • Chúng tôi không thể sử dụng nó như “nối thêm vào bên trongHTML
  • Ngay cả khi bạn sử dụng +=like “innerHTML = InnerHTML + 'html'” thì nội dung cũ vẫn được thay thế bằng html
  • Toàn bộ nội dung bên trongHTML được phân tích lại và xây dựng thành các phần tử. Vì vậy, nó chậm hơn nhiều
  • InnerHTML không cung cấp xác thực và do đó chúng tôi có thể chèn HTML hợp lệ và bị hỏng vào tài liệu và phá vỡ nó

41. Câu lệnh break và continue là gì?

Câu lệnh break thoát khỏi vòng lặp hiện tại.

Câu lệnh Continue tiếp tục với câu lệnh tiếp theo của vòng lặp.


42. Hai nhóm kiểu dữ liệu cơ bản trong JavaKịch bản?

  • Chúng giống như—Nguyên thủy
  • Các loại tài liệu tham khảo

Kiểu dữ liệu nguyên thủy là kiểu dữ liệu số và Boolean. Kiểu tham chiếu là kiểu dữ liệu phức tạp hơn như chuỗi và ngày tháng.


43. Làm thế nào có thể tạo ra các đối tượng chung?

Các đối tượng chung có thể được tạo dưới dạng:

var I = new object();

44. Công dụng của một loại toán tử là gì?

'Typeof' là toán tử được sử dụng để trả về mô tả chuỗi về loại biến.


45. Từ khóa nào được sử dụng để xử lý các trường hợp ngoại lệ?

Try… Catch—cuối cùng được sử dụng để xử lý các ngoại lệ trong JavaScript

Try{
    Code
}
Catch(exp){
    Code to throw an exception.
}
Finally{
    Code runs either it finishes successfully or after catch
}

46. ​​Từ khóa nào được sử dụng để in văn bản lên màn hình?

Tài liệu. Viết (“Chào mừng”) được sử dụng để in văn bản–Chào mừng trên màn hình.


47. Chức năng làm mờ có tác dụng gì?

Chức năng làm mờ được sử dụng để xóa tiêu điểm khỏi đối tượng được chỉ định.


48. Kiểu gõ biến là gì?

Gõ biến sẽ gán một số cho một biến và sau đó gán một chuỗi cho cùng một biến. Một ví dụ như sau:

i= 8;
i="john";

49. Cách tìm hệ điều hành trong máy khách bằng cách sử dụng JavaKịch bản?

'Hoa tiêu. phiên bản ứng dụng được sử dụng để tìm tên hệ điều hành trong máy khách.


50. Các loại lỗi khác nhau trong JavaKịch bản?

Có ba loại lỗi:

  • Lỗi thời gian tải: Các lỗi xuất hiện khi tải trang web, chẳng hạn như lỗi cú pháp không đúng, được gọi là lỗi Thời gian tải và tạo ra lỗi một cách linh hoạt.
  • Lỗi thời gian chạy: Lỗi xảy ra do sử dụng sai lệnh bên trong ngôn ngữ HTML.
  • Lỗi lôgic: Đây là những lỗi xảy ra do logic kém được thực hiện trên một hàm có thao tác khác.

JavaKịch bản câu hỏi phỏng vấn cho 5 năm kinh nghiệm

51. Việc sử dụng phương pháp Đẩy trong JavaKịch bản?

Phương thức push được sử dụng để thêm hoặc nối thêm một hoặc nhiều phần tử vào cuối mảng. Sử dụng phương pháp này, chúng ta có thể nối nhiều phần tử bằng cách truyền nhiều đối số.


52. Phương pháp unshift trong JavaKịch bản?

Phương thức Unshift giống như phương thức Push, hoạt động ở đầu mảng. Phương thức này được sử dụng để thêm một hoặc nhiều phần tử vào đầu mảng.


53. Đâu là sự khác biệt giữa JavaScript và Jscript?

Cả hai đều gần như giống nhau. Netscape và Jscript phát triển JavaKịch bản được phát triển bởi Microsoft.


54. Thuộc tính của đối tượng được gán như thế nào?

Thuộc tính được gán cho các đối tượng theo cách sau –

obj ["class"] = 12;
or
obj.class = 12;

55. 'Chế độ nghiêm ngặt trong JavaScript và làm thế nào để kích hoạt nó?

Chế độ nghiêm ngặt bổ sung một số ràng buộc nhất định vào JavaKịch bản. Theo chế độ nghiêm ngặt, JavaScript hiển thị lỗi cho một đoạn mã, trước đó không hiển thị lỗi, nhưng có thể có vấn đề và có khả năng không an toàn. Chế độ nghiêm ngặt cũng giải quyết một số lỗi cản trở JavaCác công cụ viết kịch bản hoạt động không hiệu quả.

Chế độ nghiêm ngặt có thể được bật bằng cách thêm chuỗi ký tự “use strict” phía trên tệp. Điều này có thể được minh họa bằng ví dụ đã cho:

function myfunction() {
    "use strict;"
    var v = "This is a strict mode function";
}

56. Cách để có được trạng thái Kiểm tra là gìBox?

Trạng thái có thể có được như sau -

 alert(document.getElementById('checkbox1').checked); 

Nếu Kiểm traBox được chọn, cảnh báo này sẽ trả về TRUE.


57. Làm thế nào có thể phát hiện được hệ điều hành của máy khách?

Người dẫn đường. Chuỗi appVersion có thể được sử dụng để phát hiện hệ điều hành trên máy khách.


58. window.onload và onDocumentReady là gì?

Chức năng onload không chạy cho đến khi tất cả thông tin trên trang được tải. Điều này dẫn đến độ trễ đáng kể trước khi bất kỳ mã nào được thực thi.

onDocumentReady tải mã ngay sau khi tải DOM. Điều này cho phép thao tác mã sớm.


59. Việc đóng cửa hoạt động như thế nào trong JavaKịch bản?

Bao đóng là một biến được khai báo cục bộ liên quan đến hàm vẫn còn trong bộ nhớ khi nó trả về.

Ví dụ:

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. Làm thế nào một giá trị có thể được thêm vào một mảng?

Một giá trị có thể được thêm vào một mảng theo cách đã cho –

 
arr[arr.length] = value; 

61. Vòng lặp for-in trong Javascript?

Vòng lặp for-in được sử dụng để lặp qua các thuộc tính của một đối tượng.

Cú pháp của vòng lặp for-in là –

for (variable name in object){
    statement or block to execute
}

Trong mỗi lần lặp lại, một thuộc tính của đối tượng được liên kết với tên biến. Vòng lặp được tiếp tục cho đến khi hết thuộc tính của đối tượng.


62. Các thuộc tính quan trọng của hàm ẩn danh trong JavaKịch bản?

Một hàm được khai báo mà không có bất kỳ định danh được đặt tên nào được gọi là hàm ẩn danh. Nói chung, một hàm ẩn danh không thể truy cập được sau khi khai báo.

Khai báo hàm ẩn danh –

var anon = function() {
    alert('I am anonymous');
};
anon();

63. Sự khác biệt giữa .call() và .apply() là gì?

Hàm .call() và .apply() rất giống nhau về cách sử dụng ngoại trừ một chút khác biệt. .call() được sử dụng khi lập trình viên biết số lượng đối số của hàm, vì chúng phải được đề cập dưới dạng đối số trong câu lệnh gọi. Mặt khác, .apply() được sử dụng khi không biết số. Hàm .apply() dự kiến ​​đối số sẽ là một mảng.

Sự khác biệt cơ bản giữa .call() và .apply() là ở cách truyền đối số cho hàm. Việc sử dụng chúng có thể được minh họa bằng ví dụ đã cho.

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. Sự kiện sủi bọt là gì?

JavaScript cho phép các phần tử DOM được lồng vào nhau. Trong trường hợp như vậy, nếu trình xử lý của phần tử con được nhấp, trình xử lý của phần tử cha cũng sẽ hoạt động như thể nó cũng được nhấp.


65. Là JavaCó phân biệt chữ hoa chữ thường không? Hãy cho ví dụ.

Có, JavaScript phân biệt chữ hoa chữ thường. Ví dụ, hàm parseInt không giống với hàm Parseint.


66. Các toán tử boolean nào có thể được sử dụng trong JavaKịch bản?

Và' Operator (&&), 'Hoặc' Operator (||) và 'Không' Operator (!) có thể được sử dụng trong JavaKịch bản.

*Operators không có dấu ngoặc đơn.


67. Làm thế nào một khung hình cụ thể có thể được nhắm mục tiêu, từ một siêu liên kết, trong JavaKịch bản?

Điều này có thể được thực hiện bằng cách đưa tên của khung được yêu cầu vào siêu liên kết bằng thuộc tính 'đích'.

<a href="/vi/newpage.htm" target="newframe">>New Page</a>

68. Vai trò của câu lệnh break và continue là gì?

Câu lệnh break được sử dụng để thoát khỏi vòng lặp hiện tại. Ngược lại, câu lệnh continue tiếp tục vòng lặp hiện tại với một lần lặp lại mới.


69. Hãy viết điểm khác biệt giữa web garden và web farm?

Cả web-garden và web-farm đều là hệ thống lưu trữ web. Sự khác biệt duy nhất là web-garden là một thiết lập bao gồm nhiều bộ xử lý trong một máy chủ. Đồng thời,web-farm là một thiết lập lớn hơn sử dụng nhiều máy chủ.


70. Thuộc tính của đối tượng được gán như thế nào?

Việc gán thuộc tính cho các đối tượng được thực hiện theo cùng cách như gán giá trị cho một biến. Ví dụ, giá trị hành động của đối tượng biểu mẫu được gán là 'submit' theo cách sau – Document. form.action=”submit”


71. Phương pháp đọc và ghi một tập tin trong JavaKịch bản?

Điều này có thể được thực hiện bằng cách sử dụng JavaPhần mở rộng tập lệnh (chạy từ JavaTrình soạn thảo tập lệnh), ví dụ, để mở một tệp –

 fh = fopen(getScriptPath(), 0);

72. DOM được sử dụng như thế nào trong JavaKịch bản?

DOM là viết tắt của Document Object Model và chịu trách nhiệm về cách các đối tượng khác nhau trong tài liệu tương tác với nhau. DOM là cần thiết để phát triển các trang web, bao gồm các đối tượng như đoạn văn, liên kết, v.v. Những đối tượng này có thể được vận hành để bao gồm các hành động như thêm hoặc xóa. DOM cũng được yêu cầu để thêm các khả năng bổ sung cho trang web. Trên hết, việc sử dụng API mang lại lợi thế hơn các mô hình hiện có khác.


73. Trình xử lý sự kiện được sử dụng như thế nào trong JavaKịch bản?

Sự kiện là các hành động bắt nguồn từ các hoạt động, chẳng hạn như nhấp vào liên kết hoặc điền vào biểu mẫu của người dùng. Cần có một trình xử lý sự kiện để quản lý việc thực hiện đúng tất cả các sự kiện này. Trình xử lý sự kiện là một thuộc tính bổ sung của đối tượng. Thuộc tính này bao gồm tên của sự kiện và hành động được thực hiện nếu sự kiện diễn ra.


74. Vai trò của các kịch bản trì hoãn trong JavaKịch bản?

Theo mặc định, việc phân tích cú pháp mã HTML trong khi tải trang bị tạm dừng cho đến khi tập lệnh không ngừng thực thi. Nếu máy chủ chậm hoặc tập lệnh đặc biệt nặng thì trang web sẽ bị chậm.

Trong khi sử dụng Trì hoãn, tập lệnh sẽ trì hoãn việc thực thi tập lệnh cho đến khi trình phân tích cú pháp HTML đang chạy. Điều này làm giảm thời gian tải trang web và chúng được hiển thị nhanh hơn.


75. Các thành phần chức năng khác nhau trong JavaKịch bản?

Các thành phần chức năng khác nhau trong JavaKịch bản là-

  • Chức năng hạng nhất: Các chức năng trong JavaScript được sử dụng như các đối tượng hạng nhất. Điều này thường có nghĩa là các hàm này có thể được truyền dưới dạng đối số cho các hàm khác, trả về dưới dạng giá trị từ các hàm khác, được gán cho các biến hoặc cũng có thể được lưu trữ trong các cấu trúc dữ liệu.
  • Các hàm lồng nhau: Các hàm được xác định bên trong các hàm khác được gọi là hàm lồng nhau. Chúng được gọi 'mỗi khi hàm chính được gọi.

76. Viết về những lỗi được thể hiện trong JavaKịch bản?

JavaScript đưa ra thông báo như thể nó gặp lỗi. Các lỗi được nhận dạng là –

  • Lỗi thời gian tải: Các lỗi hiển thị tại thời điểm tải trang được tính trong Lỗi thời gian tải. Việc sử dụng cú pháp không đúng sẽ gặp phải những lỗi này và do đó bị phát hiện trong khi trang đang được tải.
  • Lỗi thời gian chạy: Đây là lỗi xuất hiện khi chương trình đang chạy. Ví dụ: các hoạt động bất hợp pháp gây ra việc chia một số cho 0 hoặc truy cập vào một vùng không tồn tại của bộ nhớ.
  • Lỗi logic: Nguyên nhân là do mã đúng về mặt cú pháp, không hoàn thành nhiệm vụ được yêu cầu—ví dụ: vòng lặp vô hạn.

77. Đối tượng màn hình là gì?

Đối tượng màn hình được sử dụng để đọc thông tin từ màn hình của máy khách. Các thuộc tính của đối tượng màn hình là -

  • AvailHeight: Cung cấp chiều cao màn hình của khách hàng
  • AvailWidth: Cung cấp chiều rộng màn hình của khách hàng
  • ColorDepth: Cung cấp độ sâu bit của hình ảnh trên màn hình của khách hàng
  • Chiều cao: Cung cấp tổng chiều cao màn hình của khách hàng, bao gồm cả thanh tác vụ
  • Chiều rộng: Cung cấp tổng chiều rộng của màn hình máy khách, bao gồm cả thanh tác vụ

78. Phương thức unshift() là gì?

Phương thức này hoạt động khi bắt đầu mảng, không giống như push(). Nó thêm số phần tử mong muốn vào đầu mảng. Ví dụ -

var name = [ "john" ];
name.unshift( "charlie" );
name.unshift( "joseph", "Jane" );
console.log(name);

Đầu ra được hiển thị dưới đây:

[" joseph ,"," Jane ,", " charlie ", " john "]

79. Hàm unescape() và escape() là gì?

Hàm escape() có nhiệm vụ mã hóa một chuỗi để truyền thông tin từ máy tính này sang máy tính khác qua mạng.

Ví dụ:

<script>
document.write(escape("Hello? How are you!"));
</script>

Đầu ra: Hello%3F%20How%20are%20you%21

Hàm unescape() rất quan trọng vì nó giải mã chuỗi được mã hóa.

Nó hoạt động theo cách sau. Ví dụ:

<script>
    document.write(unescape("Hello%3F%20How%20are%20you%21"));
</script>

Đầu ra: Xin chào? Bạn có khỏe không!


80. Giải mãURI() và mã hóaURI() là gì?

EncodeURl() được sử dụng để chuyển đổi URL thành mã hex của chúng. Và DecodeURI() được sử dụng để chuyển đổi URL được mã hóa trở lại bình thường.

<script>
   var uri="my test.asp?name=ståle&car=saab";

   document.write(encodeURI(uri)+ "<br>");

    document.write(decodeURI(uri));
</script>

Đầu ra -

my%20test.asp?name=st%C3%A5le&car=saab

test.asp?name=ståle&car=saab của tôi


JavaKịch bản câu hỏi phỏng vấn cho 10+ năm kinh nghiệm

81. Tại sao bạn không nên sử dụng InternalHTML trong JavaKịch bản?

nội dung bên trongHTML được làm mới mọi lúc và do đó chậm hơn. Không có phạm vi xác thực trong InternalHTML. Vì vậy, việc chèn mã giả vào tài liệu sẽ dễ dàng hơn và khiến trang web không ổn định.


82. Câu lệnh sau đây khẳng định điều gì?

var myArray = [[[]]];

Nó khai báo một mảng ba chiều.


83. Thế nào JavaCó liên quan gì đến Script và ECMA Script không?

ECMA Script giống như các quy tắc và hướng dẫn, trong khi Javascript là một ngôn ngữ kịch bản được sử dụng để phát triển web.


84. Không gian tên trong JavaChữ viết và cách sử dụng nó như thế nào?

Không gian tên được sử dụng để nhóm các hàm, biến mong muốn, v.v., dưới một tên duy nhất. Đó là tên đã được gắn với các chức năng, đối tượng và thuộc tính mong muốn. Điều này cải thiện tính mô-đun trong mã hóa và cho phép tái sử dụng mã.


85. Làm thế nào có thể JavaMã lệnh sẽ được ẩn khỏi các trình duyệt cũ không hỗ trợ JavaKịch bản?

Để ẩn náu JavaMã lệnh từ trình duyệt cũ:

Thêm vào " nhãn.

Thêm “//–>” không có dấu ngoặc kép trong mã ngay trước tag.

Các trình duyệt cũ bây giờ sẽ xử lý vấn đề này JavaMã lệnh như một bình luận HTML dài. Trong khi trình duyệt hỗ trợ JavaKịch bản sẽ lấy “ ” dưới dạng bình luận một dòng.


86. Cách sử dụng Loop in JavaKịch bản?

Vòng lặp rất hữu ích khi bạn thực thi lặp đi lặp lại cùng một dòng mã với số lần cụ thể hoặc miễn là một điều kiện cụ thể là đúng. Giả sử bạn muốn nhập tin nhắn 'Xin chào' 100 lần trên trang web của mình. Tất nhiên, bạn sẽ phải sao chép và dán cùng một dòng 100 lần. Thay vào đó, nếu sử dụng vòng lặp, bạn có thể hoàn thành tác vụ này chỉ trong 3 hoặc 4 dòng.


87. Cách sử dụng Vòng lặp trong Javascript?

Chủ yếu có bốn loại vòng lặp trong JavaKịch bản.

vòng lặp for

for/in một vòng lặp (giải thích sau)

trong khi lặp lại

vòng lặp do...while

vòng lặp for

Cú pháp:

for(statement1; statement2; statment3)
 
{
 
lines of code to be executed
 
}
  1. Câu lệnh 1 được thực thi trước tiên, ngay cả trước khi thực thi mã lặp. Vì vậy, câu lệnh này thường được sử dụng để gán giá trị cho các biến được sử dụng bên trong vòng lặp.
  2. Câu lệnh 2 là điều kiện để thực hiện vòng lặp.
  3. Câu lệnh 3 được thực thi mỗi lần sau khi mã lặp được thực thi.
<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>

trong khi lặp lại

Cú pháp:

while(condition)

{

lines of code to be executed

}

"Vòng lặp while" được thực thi miễn là điều kiện được chỉ định là đúng. Bên trong vòng lặp while, bạn nên bao gồm câu lệnh sẽ kết thúc vòng lặp tại một thời điểm nào đó. Nếu không, vòng lặp của bạn sẽ không bao giờ kết thúc và trình duyệt của bạn có thể bị sập.

vòng lặp do...while

Cú pháp:

<pre>
do

{

block of code to be executed

} while (condition)

Vòng lặp do…while rất giống với vòng lặp while. Sự khác biệt duy nhất là trong vòng lặp do…while, khối mã được thực thi một lần ngay cả trước khi kiểm tra điều kiện.

Ví dụ:

<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. Điều quan trọng là gì? JavaGiải thích phương pháp Script Array bằng ví dụ?

JavaPhương pháp Mảng Script

Đối tượng Array có nhiều thuộc tính và phương thức giúp các nhà phát triển xử lý mảng một cách dễ dàng và hiệu quả. Bạn có thể nhận giá trị của một thuộc tính bằng cách chỉ định arrayname.property và đầu ra của một phương thức bằng cách chỉ định arrayname.method().

  • tài sản chiều dài –> Nếu muốn biết số phần tử trong một mảng, bạn có thể sử dụng thuộc tính length.
  • thuộc tính nguyên mẫu –> Nếu bạn muốn thêm thuộc tính và phương thức mới, bạn có thể sử dụng thuộc tính nguyên mẫu.
  • phương pháp đảo ngược –> Bạn có thể đảo ngược thứ tự các mục trong mảng bằng phương pháp đảo ngược.
  • phương pháp sắp xếp -> Bạn có thể sắp xếp các mục trong một mảng bằng phương thức sắp xếp.
  • phương pháp phổ biến –> Bạn có thể xóa mục cuối cùng của mảng bằng phương thức pop.
  • phương pháp dịch chuyển –> Bạn có thể xóa mục đầu tiên của mảng bằng phương thức shift.
  • phương pháp đẩy –> Bạn có thể thêm một giá trị làm mục cuối cùng của mảng.
<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. Khái niệm OOPS trong JavaKịch bản?

Nhiều khi, các biến hoặc mảng không đủ để mô phỏng các tình huống thực tế. JavaScript cho phép bạn tạo ra các đối tượng hoạt động như các đối tượng trong đời thực. Một học sinh hoặc một ngôi nhà có thể là một đối tượng có nhiều đặc điểm riêng biệt. Bạn có thể tạo các thuộc tính và phương thức cho các đối tượng của mình để lập trình dễ dàng hơn. Nếu đối tượng của bạn là học sinh, nó sẽ có các thuộc tính như tên, họ, id, v.v. và các phương thức như tính thứ hạng, thay đổi địa chỉ, v.v. Nếu đối tượng của bạn là một ngôi nhà, nó sẽ có các thuộc tính như số phòng, màu sơn, vị trí, v.v. Các phương thức như tính diện tích, thay đổi chủ sở hữu, v.v.

Cách tạo một đối tượng

Bạn có thể tạo một đối tượng như thế này:

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. Vòng lặp thuộc tính của một đối tượng là gì?

Vòng lặp for/in a thường được sử dụng để lặp qua các thuộc tính của một đối tượng. Bạn có thể đặt bất kỳ tên nào cho biến, nhưng tên của đối tượng phải giống với tên đối tượng đã tồn tại mà bạn cần lặp qua.

Cú pháp:

for (variablename in objectname)

{

lines of code to be executed

}

Ví dụ:

<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. JavaKiểm thử đơn vị tập lệnh và những thách thức trong JavaKiểm thử đơn vị kịch bản?

JavaKiểm thử đơn vị tập lệnh là một phương pháp kiểm thử trong đó JavaScript kiểm tra mã được viết cho một trang web hoặc mô-đun ứng dụng web. Nó được kết hợp với HTML như một trình xử lý sự kiện nội tuyến và được thực thi trong trình duyệt để kiểm tra xem tất cả các chức năng có hoạt động tốt không. Các bài kiểm tra đơn vị này sau đó được tổ chức trong bộ kiểm tra.

Mỗi bộ chứa một số thử nghiệm được thiết kế để thực hiện cho một mô-đun riêng biệt. Quan trọng nhất, chúng không xung đột với bất kỳ mô-đun nào khác và chạy với ít sự phụ thuộc lẫn nhau hơn (một số tình huống nghiêm trọng có thể gây ra sự phụ thuộc).

Những thách thức của JavaKiểm thử đơn vị tập lệnh:

Đây là những thách thức quan trọng của JavaKiểm thử đơn vị tập lệnh:

  • Nhiều ngôn ngữ khác hỗ trợ kiểm tra đơn vị trong trình duyệt, trong môi trường ổn định cũng như trong thời gian chạy, nhưng JavaKịch bản không thể
  • Bạn có thể hiểu một số hành động của hệ thống bằng các ngôn ngữ khác, nhưng điều này không xảy ra với JavaScript
  • Một số JavaScript được viết cho một ứng dụng web có thể có nhiều phụ thuộc.
  • JavaScript tốt hơn khi sử dụng kết hợp với HTML và CSS thay vì trên web
  • Khó khăn khi hiển thị trang và thao tác DOM
  • Đôi khi bạn tìm thấy thông báo lỗi trên màn hình về 'Không thể tải example.js' hoặc bất kỳ thông báo nào khác JavaLỗi tập lệnh liên quan đến kiểm soát phiên bản. Các lỗ hổng này nằm trong Kiểm thử đơn vị JavaScript

Giải pháp của JavaKiểm thử đơn vị tập lệnh:

Để tránh những vấn đề như vậy, điều bạn có thể làm là;

  • Không sử dụng các biến toàn cục.
  • Không thao tác với các đối tượng được xác định trước.
  • Thiết kế các chức năng cốt lõi dựa trên thư viện.
  • Cố gắng tạo ra các phần chức năng nhỏ với ít sự phụ thuộc hơn.

92. Một số điều quan trọng là gì? JavaKhung kiểm thử đơn vị kịch bản?

Sau đây là danh sách được tuyển chọn của các JavaCác công cụ và khuôn khổ kiểm thử đơn vị kịch bản được sử dụng rộng rãi:

Đơn vị.js: Nó được biết đến như một thư viện xác nhận mã nguồn mở chạy trên trình duyệt và Node.js. Nó cực kỳ tương thích với các JavaCác khuôn khổ kiểm thử đơn vị tập lệnh như Mocha, Karma, Jasmine, QUnit, Protractor, v.v. Cung cấp API có tài liệu đầy đủ về danh sách khẳng định.

QUnit: Nó được sử dụng cho cả phía máy khách và phía máy chủ JavaKiểm tra đơn vị tập lệnh. Miễn phí này JavaKhung kiểm thử tập lệnh được sử dụng cho các dự án jQuery. Nó tuân theo Đặc tả kiểm thử đơn vị JS chung để kiểm thử đơn vị trong JavaScript. Nó hỗ trợ Lịch trình hỗ trợ dài hạn của Node.

Hoa nhài: Jasmine là khung phát triển dựa trên hành vi để kiểm thử đơn vị JavaScript. Nó được sử dụng để kiểm tra cả đồng bộ và không đồng bộ JavaMã lệnh. Mã này không yêu cầu DOM và đi kèm cú pháp dễ viết cho bất kỳ bài kiểm tra nào.

Karma: Karma là một môi trường thử nghiệm năng suất nguồn mở. Kiểm soát quy trình làm việc dễ dàng chạy trên dòng lệnh. Cung cấp quyền tự do viết bài kiểm tra với Jasmine, Mocha và QUnit. Bạn có thể chạy thử nghiệm trên thiết bị thực và dễ dàng gỡ lỗi.

cà phê: Mocha chạy trên Node.js và trong trình duyệt. Mocha thực hiện thử nghiệm không đồng bộ đơn giản hơn. Cung cấp độ chính xác và tính linh hoạt trong báo cáo. Cung cấp hỗ trợ to lớn cho các tính năng phong phú như thời gian chờ cụ thể cho thử nghiệm, JavaAPI tập lệnh.

đùa: Facebook sử dụng jest cho đến nay để kiểm tra tất cả JavaMã lệnh. Nó cung cấp 'trải nghiệm thử nghiệm không cấu hình. Hỗ trợ các thử nghiệm chạy độc lập và không bị gián đoạn mà không có bất kỳ xung đột nào. Không yêu cầu bất kỳ cấu hình thiết lập và thư viện nào khác.

AVA: AVA rất đơn giản JavaKhung kiểm thử đơn vị tập lệnh. Các bài kiểm thử được chạy song song và tuần tự. Các bài kiểm thử song song chạy mà không làm gián đoạn lẫn nhau. Khung kiểm thử này cũng hỗ trợ kiểm thử không đồng bộ. AVA sử dụng các quy trình con để chạy kiểm thử đơn vị JavaKịch bản.


93. Thuật toán QuickSort là gì JavaKịch bản?

Thuật toán Sắp xếp nhanh tuân theo phương pháp Chia để trị. Nó chia các phần tử thành các phần nhỏ hơn dựa trên một số điều kiện và thực hiện các loại thao tác trên các phần được chia nhỏ hơn đó.

Thuật toán Quick Sort là một trong những thuật toán được sử dụng nhiều nhất và phổ biến nhất trong bất kỳ ngôn ngữ lập trình nào. Nếu bạn là JavaNhà phát triển tập lệnh, bạn có thể đã nghe nói đến sort() hiện đã có trong JavaScript. Sau đó, bạn có thể đã nghĩ về nhu cầu của thuật toán Quick Sort này là gì. Để hiểu điều này, trước tiên, chúng ta cần sắp xếp là gì và sắp xếp mặc định trong JavaKịch bản.

Quicksort tuân theo Phân chia và chinh phục thuật toán. Nó chia các phần tử thành các phần nhỏ hơn dựa trên một số điều kiện và thực hiện các thao tác sắp xếp trên các phần được chia nhỏ hơn đó. Do đó, nó hoạt động tốt cho các tập dữ liệu lớn. Vì vậy, đây là các bước về cách Quicksort hoạt động bằng những từ đơn giản.

  1. Đầu tiên, chọn một phần tử được gọi là pivot thành phần.
  2. Tiếp theo, so sánh tất cả các phần tử mảng với phần tử trục đã chọn và sắp xếp chúng sao cho còn lại các phần tử nhỏ hơn phần tử trục. Lớn hơn trục nằm ở bên phải của nó.
  3. Cuối cùng, thực hiện các thao tác tương tự trên các phần tử bên trái và bên phải của phần tử trụ.

Vì vậy, đó là phác thảo cơ bản của Quicksort. Dưới đây là các bước cần được thực hiện từng bước một để thực hiện Quicksort.


94. QuickSort hoạt động như thế nào

Bước 1) Đầu tiên, hãy tìm "trục" phần tử trong mảng.

Bước 2) Bắt đầu con trỏ bên trái ở phần tử đầu tiên của mảng.

Bước 3) Bắt đầu con trỏ bên phải ở phần tử cuối cùng của mảng.

Bước 4) So sánh phần tử trỏ với con trỏ trái, nếu nhỏ hơn phần tử trụ thì di chuyển con trỏ trái sang phải (thêm 1 vào chỉ số bên trái). Tiếp tục điều này cho đến khi phần tử bên trái lớn hơn hoặc bằng phần tử trụ.

Bước 5) So sánh phần tử trỏ với con trỏ bên phải. Nếu nó lớn hơn phần tử trụ, hãy di chuyển con trỏ phải sang trái (trừ 1 cho chỉ mục bên phải). Tiếp tục điều này cho đến khi phần tử bên phải nhỏ hơn hoặc bằng phần tử trụ.

Bước 6) Kiểm tra xem con trỏ bên trái có nhỏ hơn hoặc bằng con trỏ bên phải hay không, sau đó xem các phần tử ở vị trí của các con trỏ này.

Bước 7) Tăng con trỏ bên trái và giảm con trỏ bên phải.

Bước 8) Nếu chỉ số con trỏ bên trái vẫn nhỏ hơn chỉ số của con trỏ bên phải, hãy lặp lại quy trình; nếu không, trả về chỉ mục của con trỏ bên trái.

Công việc sắp xếp nhanh

Vì vậy, chúng ta hãy xem các bước này bằng một ví dụ. Chúng ta hãy xem xét một mảng các phần tử mà chúng ta cần sắp xếp là [5,3,7,6,2,9].

Dưới đây là các bước để thực hiện Sắp xếp nhanh được hiển thị với ví dụ [5,3,7,6,2,9].

BƯỚC 1) Xác định trục là phần tử ở giữa. Vì thế, 7 là phần tử trục.

BƯỚC 2) Bắt đầu con trỏ trái và phải lần lượt là phần tử đầu tiên và cuối cùng của mảng. Con trỏ bên trái trỏ đến 5 tại chỉ số 0 và con trỏ bên phải trỏ đến 9 ở chỉ số 5.

BƯỚC 3) So sánh phần tử con trỏ trái với phần tử trụ, vì 5 < 6 dịch chuyển con trỏ trái sang phải đến chỉ số 1.

BƯỚC 4) Bây giờ, vẫn là 3 <6, vì vậy hãy chuyển con trỏ bên trái sang một chỉ mục nữa ở bên phải. Bây giờ 7 > 6 dừng tăng con trỏ bên trái và bây giờ con trỏ bên trái có chỉ số 2.

BƯỚC 5) Bây giờ, so sánh giá trị ở con trỏ bên phải với phần tử trụ. Vì 9 > 6 nên di chuyển con trỏ phải sang trái. Bây giờ, khi 2 < 6, ngừng di chuyển con trỏ sang phải.

BƯỚC 6) Hoán đổi cả hai giá trị hiện tại ở con trỏ trái và phải với nhau.

BƯỚC 7) Di chuyển cả hai con trỏ thêm một bước nữa.

BƯỚC 8) Vì 6 = 6, di chuyển con trỏ tới một bước nữa và dừng lại khi con trỏ bên trái vượt qua con trỏ bên phải và trả về chỉ mục của con trỏ bên trái.

Ở đây, dựa trên cách tiếp cận trên, chúng ta cần viết mã để hoán đổi các phần tử và phân vùng mảng như đã đề cập ở các bước trên.

Ví dụ:

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 là gì trong JavaKịch bản?

JavaScript có thể truy cập tất cả các thành phần trong trang web bằng cách sử dụng Document Object Model (DOM). Trình duyệt web tạo DOM của trang web khi trang được tải.


96. Sử dụng DOM và Sự kiện như thế nào?

Sử dụng DOM, JavaScript có thể thực hiện nhiều tác vụ. Nó có thể tạo các phần tử và thuộc tính mới, thay đổi các phần tử và thuộc tính hiện có và thậm chí xóa các phần tử và thuộc tính hiện có. JavaScript cũng có thể phản ứng với các sự kiện hiện có và tạo ra các sự kiện mới trong trang.

  1. getElementById, ví dụ về HTML bên trong
  2. getElementById: Để truy cập các phần tử và thuộc tính có id được đặt.
  3. bên trongHTML: Để truy cập nội dung của một phần tử.
<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 Ví dụ

getElementsByTagName: Để truy cập các phần tử và thuộc tính bằng tên thẻ. Phương thức này sẽ trả về một mảng gồm tất cả các mục có cùng tên thẻ.

<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>

Ví dụ xử lý sự kiện

  1. createElement: Để tạo phần tử mới
  2. RemoveChild: Xóa một phần tử
  3. bạn có thể thêm một xử lý sự kiện đến một yếu tố cụ thể như thế này
    document.getElementById(id).onclick=function()
        {
            lines of code to be executed
        }

OR

document.getElementById(id).addEventListener("click", functionname)

Ví dụ:

<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. Bên ngoài là gì JavaKịch bản?

Bạn dự định hiển thị ngày và giờ hiện tại trên tất cả các trang web của mình. Giả sử bạn đã viết mã và sao chép vào tất cả các trang web của mình (ví dụ 100 trang). Nhưng sau đó, bạn muốn thay đổi định dạng hiển thị ngày hoặc giờ. Trong trường hợp này, bạn sẽ phải thay đổi tất cả 100 trang web. Đây sẽ là một nhiệm vụ rất tốn thời gian và khó khăn.

Vì vậy, hãy lưu JavaMã lệnh trong tệp mới có phần mở rộng .js. Sau đó, thêm một dòng mã vào tất cả các trang web của bạn để trỏ đến tệp .js như thế này:

<script type="text/javascript," src="/currentdetails.js,">

Lưu ý: Giả định rằng tệp .js và tất cả các trang web của bạn nằm trong cùng một thư mục. Nếu tệp external.js nằm trong một thư mục khác, bạn cần chỉ định đường dẫn đầy đủ của tệp trong thuộc tính src.

Ví dụ:

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. Khi nào nên sử dụng nội bộ và bên ngoài JavaMã lệnh?

Giả sử bạn chỉ có một vài dòng mã dành riêng cho một trang web cụ thể. Trong trường hợp đó, tốt hơn hết là bạn nên giữ JavaMã lệnh bên trong tài liệu HTML của bạn.

Mặt khác, nếu JavaMã script được sử dụng trong nhiều trang web, bạn nên cân nhắc giữ mã của mình trong một tệp riêng. Nếu bạn muốn thực hiện một số thay đổi cho mã của mình, bạn chỉ phải thay đổi một tệp, giúp bảo trì mã dễ dàng. Nếu mã của bạn quá dài, tốt hơn là giữ nó trong một tệp riêng. Điều này giúp gỡ lỗi dễ dàng.


99. Cookies là gì JavaKịch bản?

Cookie là một phần dữ liệu được lưu trữ trên máy tính của bạn để trình duyệt của bạn có thể truy cập. Bạn cũng có thể đã tận hưởng những lợi ích của cookie một cách có chủ ý hoặc vô tình. Bạn đã bao giờ lưu mật khẩu Facebook của mình để không phải nhập mật khẩu mỗi khi bạn cố gắng đăng nhập chưa? Nếu có, thì bạn đang sử dụng cookie. Cookie được lưu dưới dạng cặp khóa/giá trị.

Javascript Đặt-Cookie:

Bạn có thể tạo cookie bằng document. thuộc tính cookie như thế này.

document.cookie = "cookiename=cookievalue"

Bạn thậm chí có thể thêm ngày hết hạn vào Cookie của mình để xóa Cookie cụ thể khỏi máy tính vào ngày đã chỉ định. Ngày hết hạn phải được đặt ở định dạng UTC/GMT. Nếu bạn không đặt ngày hết hạn, cookie sẽ bị xóa khi người dùng đóng trình duyệt.

document.cookie = "cookiename=cookievalue; expires= Thu, 21 Aug 2014 20:00:00 UTC"

Bạn cũng có thể đặt miền và đường dẫn để chỉ định miền nào và thư mục nào trong miền cụ thể mà Cookie thuộc về. Theo mặc định, cookie thuộc về trang đặt Cookie.

document.cookie = "cookiename=cookievalue; expires= Thu, 21 Aug 2014 20:00:00 UTC; path=/		

//tạo cookie có tên miền đến trang hiện tại và đường dẫn đến toàn bộ tên miền.

JavaScript lấy Cookie

Bạn có thể truy cập Cookie như thế này, thao tác này sẽ trả về tất cả cookie đã lưu cho miền hiện tại.

var x =  document.cookie

JavaTập lệnh xóa cookie

Để xóa cookie, bạn chỉ cần đặt giá trị của cookie thành trống và đặt giá trị hết hạn thành ngày đã qua.

Ví dụ:

<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. Hãy cho một ví dụ về JavaBảng nhân tập lệnh

Dưới đây là ví dụ về bảng nhân đơn giản hỏi người dùng số hàng và cột mà họ muốn.

Ví dụ:

<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. Giải thích Popup Message sử dụng sự kiện với ví dụ

Hiển thị một thông báo đơn giản “Chào mừng!!!” trên trang web demo của bạn và khi người dùng di chuột qua tin nhắn, một cửa sổ bật lên sẽ hiển thị với thông báo “Chào mừng đến với Trang web của tôi!!!”.

Ví dụ:

<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>		

Những câu hỏi phỏng vấn này cũng sẽ giúp ích cho bài thi viva(orals) của bạn