wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Quizz tổng hợp React + TS (HKT)

Total questions: 74

Worksheet time: 37mins

Name
Class
Date
1.

Trong ES6, từ khóa nào dùng để khai báo biến có phạm vi block?

a)

A. var

b)

B. const

c)

C. let

d)

D. function

2.

Từ khóa const dùng để làm gì?

a)

A. Gán lại giá trị nhiều lần

b)

B. Khai bào biến hằng số

c)

C. Tạo biến toàn cục

d)

D. Gán biến trong vòng lặp

3.

const với object có thể...?

a)

A. Gán object mới

b)

B. Thay đổi thuộc tính bên trong

c)

C. Gán lại const

d)

D. Xóa object

4.

let và const được giới thiệu từ phiên bản nào?

a)

A. ES5

b)

B. ES6

c)

C. ES3

d)

D. ES7

5.

Template literals trong JavaScript được tạo bằng ký tự nào?

a)

A. ' (nháy đơn)

b)

B. " (nháy kép)

c)

C. ` (backtick)

d)

D. \ (backslash)

6.

Để chèn biến vào chuỗi template literal, bạn dùng cú pháp nào?

a)

A. {{variable}}

b)

B. @variable

c)

C. ${variable}

d)

D. %variable%

7.

Biểu thức nào sau đây là đúng khi dùng template string?

a)

A. `Hello, ${name}`

b)

B. 'Hello, $(name)'

c)

C. "Hello, ${name}"

d)

D. `Hello, #(name)`

8.

Destructuring assignment dùng để làm gì?

a)

A. Tạo mảng mới

b)

B. Sao chép mảng

c)

C. Gán phần tử từ mảng hoặc đối tượng vào biến

d)

D. Xoá phần tử trong mảng

9.

Cú pháp nào sau đây đúng với array destructuring?

a)

A. const [a, b] = [1, 2];

b)

B. const a = [1, 2];

c)

C. const {a, b} = [1, 2];

d)

D. const (a, b) = [1, 2]

10.

Destructuring giúp xử lý dữ liệu như thế nào?

a)

A. Chậm hơn nhưng ngắn

b)

B. Dễ đọc, gọn và hiệu quả hơn

c)

C. Khó bảo trì

d)

D. Không khác biệt

11.

Spread Operator trong JavaScript được ký hiệu là gì?

a)

A. &&

b)

B. ...

c)

C. ##

d)

D. $$

12.

Rest Parameter dùng để làm gì?

a)

A. Sao chép object

b)

B. Gom nhiều đối số thành mảng

c)

C. Thêm phần tử vào object

d)

D. Kết thúc vòng lặp

13.

Spread Operator có thể dùng để sao chép mảng đúng không?

a)

A. Không

b)

B. Có, và tạo bản sao nông

c)

C. Có, tạo bản sao sâu

d)

D. Chỉ với object

14.

Default Parameter trong JavaScript là gì?

a)

A. Giá trị mặc định cho biến toàn cục

b)

B. Giá trị gán cho biến khi chương trình bắt đầu

c)

C. Giá trị mặc định cho tham số hàm khi không được truyền

d)

D. Giá trị trả về mặc định

15.

Phương thức includes() trong JavaScript dùng để làm gì?

a)

A. Kiểm tra chuỗi bắt đầu bằng đoạn con

b)

B. Kiểm tra chuỗi kết thúc bằng đoạn con

c)

C. Kiểm tra chuỗi có chứa đoạn con

d)

D. Tạo chuỗi mới từ chuỗi con

16.

Phương thức startsWith() trả về kết quả gì?

a)

A. true/false

b)

B. Vị trí đoạn con

c)

C. Mảng chuỗi

d)

D. Chuỗi con đầu tiên

17.

Phương thức endsWith() kiểm tra điều gì?

a)

A. Chuỗi có chứa đoạn con bất kỳ

b)

B. Chuỗi kết thúc bằng đoạn con

c)

C. Chuỗi bắt đầu bằng đoạn con

d)

D. Độ dài chuỗi

18.

Từ khóa nào dùng để khai báo class trong JavaScript?

a)

A. class

b)

B. function

c)

C. struct

d)

D. constructor

19.

Từ khóa nào dùng để kế thừa một class khác?

a)

A. extends

b)

B. implements

c)

C. inherits

d)

D. super

20.

Để tạo đối tượng từ class, ta dùng từ khóa nào?

a)

A. this

b)

B. class

c)

C. create

d)

D. new

21.

Modules trong ES6 giúp gì cho việc tổ chức mã nguồn?

a)

A. Viết code nhanh hơn

b)

B. Tăng tốc độ Internet

c)

C. Tổ chức, chia nhỏ, tái sử dụng code

d)

D. Thay thế toàn bộ cú pháp JS

22.

Từ khóa dùng để xuất giá trị ra khỏi file module?

a)

A. require

b)

B. import

c)

C. include

d)

D. export

23.

Export Default có đặc điểm gì?

a)

A. Chỉ dùng cho biến

b)

B. Mỗi file chỉ có một default

c)

C. Cần phải import bằng {}

d)

D. Không thể import ở file khác

24.

Tại sao nên import chỉ những phần cần thiết?

a)

A. Để bảo mật

b)

B. Để tăng dung lượng

c)

C. Để giảm tải code không cần thiết

d)

D. Để tránh lỗi runtime

25.

TypeScript được biên dịch thành ngôn ngữ nào?

a)

A. C++

b)

B. Java

c)

C. JavaScript

d)

D. HTML

26.

Tập tin nào được tạo khi dùng lệnh npm init -y?

a)

A. tsconfig.json

b)

B. package-lock.json

c)

C. node_modules/

d)

D. package.json

27.

Trường outDir trong tsconfig.json có vai trò gì?

a)

A. Tên file đầu ra

b)

B. Đường dẫn chứa file JS sau khi build

c)

C. Cấu hình thư viện ngoài

d)

D. Chỉ định module cần export

28.

File tsconfig.json dùng để làm gì?

a)

A. Cài đặt extension

b)

B. Cấu hình cách TypeScript biên dịch mã

c)

C. Lưu biến môi trường

d)

D. Ghi log chương trình

29.

Đâu là cú pháp khai báo mảng đúng trong TypeScript?

a)

A. let nums = int[ ]

b)

B. let nums: number[] = [1, 2, 3];

c)

C. let nums = [1, 2, 3]: number[]

d)

D. number nums[] = [1,2,3];

30.

Kiểu dữ liệu nào biểu diễn giá trị đúng/sai?

a)

A. string

b)

B. number

c)

C. boolean

d)

D. null

31.

Khi bạn gán let city = "Hanoi";, biến city có kiểu gì?

a)

A. any

b)

B. undefined

c)

C. string

d)

D. void

32.

enum trong TypeScript được dùng để làm gì?

a)

A. Tạo hàm không trả giá trị

b)

B. Lưu danh sách các biến toàn cục

c)

C. Nhóm các hằng số có tên

d)

D. Tạo mảng

33.

Giá trị mặc định của enum trong TypeScript là:

a)

A. Kiểu string

b)

B. Tăng dần theo bảng chữ cái

c)

C. Giá trị số tăng dần từ 0

d)

D. Giá trị null

34.

Kiểu void thường được dùng cho:

a)

A. Biến lưu giá trị từ API

b)

B. Hàm không trả về giá trị

c)

C. Hàm tính toán

d)

D. Tạo mảng

35.

Nếu bạn return giá trị từ hàm có kiểu void, điều gì xảy ra?

a)

A. Code chạy bình thường

b)

B. Gặp lỗi khi chạy

c)

C. TypeScript cảnh báo

d)

D. Không có gì xảy ra

36.

Mảng trong TypeScript thường được dùng để:

a)

A. Lưu trữ các kiểu dữ liệu bất kỳ

b)

B. Lưu trữ giá trị trong các biến riêng biệt

c)

C. Lưu trữ nhiều giá trị có cùng kiểu dữ liệu trong một biến

d)

D. Không hỗ trợ trong TypeScript

37.

Trong TypeScript, cú pháp number[] là ví dụ của:

a)

A. Tuple

b)

B. Generic

c)

C. Khai báo mảng các giá trị là các số

d)

D. Object

38.

Từ khóa readonly dùng để làm gì với mảng trong TypeScript?

a)

A. Tăng hiệu năng xử lý

b)

B. Biến đổi kiểu dữ liệu

c)

C. Ngăn không cho thay đổi mảng

d)

D. Là một loại mảng mới

39.

Hàm map() trong mảng dùng để làm gì?

a)

A. Lọc phần tử

b)

B. Biến đổi từng phần tử và tạo mảng mới

c)

C. Xóa phần tử cuối

d)

D. Tìm kiếm

40.

Hàm .filter() có tác dụng gì với mảng?

a)

A. Biến đổi từng phần tử

b)

B. Tính tổng các phần tử

c)

C. Lọc ra các phần tử thỏa mãn điều kiện

d)

D. Sắp xếp các phần tử

41.

Interface trong TypeScript dùng để làm gì?

a)

A. Thay thế cho class

b)

B. Tái sử dụng kiểu dữ liệu

c)

C. Khai báo biến toàn cục

d)

D. Định nghĩa hàm

42.

TypeScript giúp phát hiện lỗi ở đâu?

a)

A. Khi chạy chương trình

b)

B. Khi biên dịch chương trình (compile-time)

c)

C. Khi deploy

d)

D. Khi kiểm thử

43.

Object trong TypeScript khác với JavaScript ở điểm nào?

a)

A. TypeScript yêu cầu khai báo kiểu rõ ràng

b)

B. JavaScript an toàn hơn

c)

C. JavaScript kiểm tra kiểu tốt hơn

d)

D. TypeScript không hỗ trợ object

44.

Union Type trong TypeScript là gì?

a)

A. Kiểu dữ liệu cố định

b)

B. Kiểu dữ liệu cho phép một biến có thể nhận nhiều kiểu khác nhau

c)

C. Một loại object đặc biệt

d)

D. Một mảng nhiều kiểu

45.

Cú pháp nào dưới đây khai báo Union Type đúng cách?

a)

A. let x = string | number

b)

B. let x: string or number

c)

C. let x: string | number

d)

D. let x = [string, number]

46.

Trong hàm sử dụng Union Type, bạn cần làm gì để an toàn?

a)

A. Không cần kiểm tra

b)

B. Ép kiểu bằng as

c)

C. Kiểm tra kiểu trước khi thao tác (type narrowing)

d)

D. Sử dụng interface

47.

Dùng typeof để làm gì với Union Type?

a)

A. Khởi tạo object

b)

B. Kiểm tra kiểu dữ liệu

c)

C. Xóa biến

d)

D. Tạo mảng

48.

Intersection Type trong TypeScript dùng để làm gì?

a)

A. Tạo kiểu dữ liệu không có thuộc tính

b)

B. Kết hợp nhiều kiểu dữ liệu lại thành một kiểu duy nhất chứa tất cả thuộc tính

c)

C. Chuyển đổi từ kiểu string sang number

d)

D. Ép kiểu tự động

49.

Ký hiệu để định nghĩa Intersection Type là gì?

a)

A. |

b)

B. &

c)

C. +

d)

D. :

50.

Khi dùng intersection để gộp kiểu, kết quả sẽ có gì?

a)

A. Chỉ thuộc tính của kiểu đầu

b)

B. Chỉ thuộc tính của kiểu sau

c)

C. Tất cả thuộc tính từ cả hai kiểu

d)

D. Không có thuộc tính nào

51.

Đâu không phải là một trong bốn tính chất của OOP ?

a)

A. Kế thừa

b)

B. Đóng gói

c)

C. Callback

d)

D. Đa hình

52.

Từ khóa nào được dùng để khai báo class trong TypeScript?

a)

A. struct

b)

B. interface

c)

C. class

d)

D. object

53.

Phát biểu nào đúng về private trong class?

a)

A. Truy cập được ở mọi nơi

b)

B. Truy cập được trong class và class con

c)

C. Truy cập được từ bên ngoài

d)

D. Chỉ truy cập được bên trong class

54.

Trong class, từ khóa nào dùng để khai báo thuộc tính công khai?

a)

A. private

b)

B. readonly

c)

C. protected

d)

D. public

55.

protected khác private ở điểm nào?

a)

A. Không thể kế thừa

b)

B. Cho phép truy cập từ lớp con

c)

C. Không dùng được trong constructor

d)

D. Không cần khai báo

56.

Thuộc tính model?: string nghĩa là gì?

a)

A. model là bắt buộc

b)

B. model là tuỳ chọn, có thể là undefined

c)

C. model là readonly

d)

D. model là private

57.

Để tạo đối tượng từ class, dùng cú pháp nào?

a)

A. create ClassName()

c)

C. new ClassName()

d)

D. let ClassName()

58.

Lớp con trong TypeScript có thể kế thừa bao nhiêu lớp cha cùng lúc?

a)

A. Một

b)

B. Hai

c)

C. Không giới hạn

d)

D. Phụ thuộc vào interface

59.

Khi lớp cha có constructor có tham số, lớp con phải:

a)

A. Không được kế thừa nữa

b)

B. Gọi super(...) trong constructor

c)

C. Bỏ qua constructor

d)

D. Dùng this()

60.

Từ khóa implements dùng trong trường hợp nào sau đây?

a)

A. Kế thừa từ class

b)

B. Triển khai interface

c)

C. Khởi tạo biến

d)

D. Gọi hàm interface

61.

Interface trong OOP có thể chứa:

a)

A. Khai báo phương thức nhưng không có thân hàm

b)

B. Toàn bộ code xử lý

c)

C. Thuộc tính private

d)

D. Hàm constructor

62.

Khi nào ta cần override một phương thức?

a)

A. Khi muốn gọi constructor lớp cha

b)

B. Khi muốn thay đổi hành vi mặc định từ lớp cha

c)

C. Khi không cần logic riêng

d)

D. Khi dùng getter

63.

Điều nào đúng về lớp trừu tượng?

a)

A. Có thể khởi tạo trực tiếp bằng new

b)

B. Không được chứa phương thức bình thường

c)

C. Có thể chứa cả phương thức trừu tượng và thường

d)

D. Không thể kế thừa

64.

Array<T> trong TypeScript tương đương với cách viết nào?

a)

A. object[]

b)

B. any[]

c)

C. T[]

d)

D. Array

65.

Promise<T> trong TypeScript biểu thị điều gì?

a)

A. Một biến đồng bộ

b)

B. Một đối tượng chứa nhiều kiểu dữ liệu

c)

C. Một lời hứa sẽ trả về kiểu dữ liệu T trong tương lai

d)

D. Một kiểu enum

66.

Set<T> có đặc điểm gì nổi bật?

a)

A. Lưu trữ các giá trị trùng nhau

b)

B. Chỉ chứa các giá trị boolean

c)

C. Chứa các phần tử duy nhất kiểu T

d)

D. Là một mảng

67.

Khi nào bạn nên dùng Partial<T>?

a)

A. Khi muốn tất cả thuộc tính trở thành bắt buộc

b)

B. Khi muốn chỉ định một kiểu cụ thể

c)

C. Khi chỉ muốn cung cấp một phần dữ liệu của T

d)

D. Khi không muốn kiểm tra kiểu

68.

Generic trong TypeScript giúp giải quyết vấn đề gì?

a)

A. Tăng tốc độ biên dịch

b)

B. Cho phép dùng biến toàn cục

c)

C. Làm việc với nhiều kiểu dữ liệu nhưng vẫn an toàn kiểu

d)

D. Bắt buộc phải dùng class

69.

Câu nào sau đây KHÔNG đúng về generic?

a)

A. Có thể dùng với function

b)

B. Có thể dùng với interface

c)

C. Có thể dùng với class

d)

D. Chỉ dùng được với kiểu số

70.

Constraint Generic là gì?

a)

A. Một biến toàn cục trong TypeScript

b)

B. Một cách khai báo biến dùng trong HTML

c)

C. Kỹ thuật ràng buộc tham số kiểu phải thỏa điều kiện cụ thể

d)

D. Một kiểu dữ liệu đặc biệt

71.

Kết quả của đoạn mã sau là gì?

a)

undefined

b)

null

c)

"Tom"

d)

Gây lỗi vì không có kiểu trả về

72.

Kết quả của đoạn mã sau là gì?

a)

"Meow"

b)

"Purr"

c)

undefined

d)

this.sound

73.

Kết quả của đoạn mã sau là gì?

a)

-50

b)

100

c)

0

d)

Lỗi do không thể gán cho getter

74.

Kết quả của đoạn mã sau là gì?

a)

"Animal sound"

b)

"Woof!"

c)

undefined

d)

Lỗi vì pet kiểu Animal không có phương thức speak()