Font size
WorksheetsQuizz tổng hợp React + TS (HKT)
Total questions: 74
Worksheet time: 37mins
Trong ES6, từ khóa nào dùng để khai báo biến có phạm vi block?
A. var
B. const
C. let
D. function
Từ khóa const dùng để làm gì?
A. Gán lại giá trị nhiều lần
B. Khai bào biến hằng số
C. Tạo biến toàn cục
D. Gán biến trong vòng lặp
const với object có thể...?
A. Gán object mới
B. Thay đổi thuộc tính bên trong
C. Gán lại const
D. Xóa object
let và const được giới thiệu từ phiên bản nào?
A. ES5
B. ES6
C. ES3
D. ES7
Template literals trong JavaScript được tạo bằng ký tự nào?
A. ' (nháy đơn)
B. " (nháy kép)
C. ` (backtick)
D. \ (backslash)
Để chèn biến vào chuỗi template literal, bạn dùng cú pháp nào?
A. {{variable}}
B. @variable
C. ${variable}
D. %variable%
Biểu thức nào sau đây là đúng khi dùng template string?
A. `Hello, ${name}`
B. 'Hello, $(name)'
C. "Hello, ${name}"
D. `Hello, #(name)`
Destructuring assignment dùng để làm gì?
A. Tạo mảng mới
B. Sao chép mảng
C. Gán phần tử từ mảng hoặc đối tượng vào biến
D. Xoá phần tử trong mảng
Cú pháp nào sau đây đúng với array destructuring?
A. const [a, b] = [1, 2];
B. const a = [1, 2];
C. const {a, b} = [1, 2];
D. const (a, b) = [1, 2]
Destructuring giúp xử lý dữ liệu như thế nào?
A. Chậm hơn nhưng ngắn
B. Dễ đọc, gọn và hiệu quả hơn
C. Khó bảo trì
D. Không khác biệt
Spread Operator trong JavaScript được ký hiệu là gì?
A. &&
B. ...
C. ##
D. $$
Rest Parameter dùng để làm gì?
A. Sao chép object
B. Gom nhiều đối số thành mảng
C. Thêm phần tử vào object
D. Kết thúc vòng lặp
Spread Operator có thể dùng để sao chép mảng đúng không?
A. Không
B. Có, và tạo bản sao nông
C. Có, tạo bản sao sâu
D. Chỉ với object
Default Parameter trong JavaScript là gì?
A. Giá trị mặc định cho biến toàn cục
B. Giá trị gán cho biến khi chương trình bắt đầu
C. Giá trị mặc định cho tham số hàm khi không được truyền
D. Giá trị trả về mặc định
Phương thức includes() trong JavaScript dùng để làm gì?
A. Kiểm tra chuỗi bắt đầu bằng đoạn con
B. Kiểm tra chuỗi kết thúc bằng đoạn con
C. Kiểm tra chuỗi có chứa đoạn con
D. Tạo chuỗi mới từ chuỗi con
Phương thức startsWith() trả về kết quả gì?
A. true/false
B. Vị trí đoạn con
C. Mảng chuỗi
D. Chuỗi con đầu tiên
Phương thức endsWith() kiểm tra điều gì?
A. Chuỗi có chứa đoạn con bất kỳ
B. Chuỗi kết thúc bằng đoạn con
C. Chuỗi bắt đầu bằng đoạn con
D. Độ dài chuỗi
Từ khóa nào dùng để khai báo class trong JavaScript?
A. class
B. function
C. struct
D. constructor
Từ khóa nào dùng để kế thừa một class khác?
A. extends
B. implements
C. inherits
D. super
Để tạo đối tượng từ class, ta dùng từ khóa nào?
A. this
B. class
C. create
D. new
Modules trong ES6 giúp gì cho việc tổ chức mã nguồn?
A. Viết code nhanh hơn
B. Tăng tốc độ Internet
C. Tổ chức, chia nhỏ, tái sử dụng code
D. Thay thế toàn bộ cú pháp JS
Từ khóa dùng để xuất giá trị ra khỏi file module?
A. require
B. import
C. include
D. export
Export Default có đặc điểm gì?
A. Chỉ dùng cho biến
B. Mỗi file chỉ có một default
C. Cần phải import bằng {}
D. Không thể import ở file khác
Tại sao nên import chỉ những phần cần thiết?
A. Để bảo mật
B. Để tăng dung lượng
C. Để giảm tải code không cần thiết
D. Để tránh lỗi runtime
TypeScript được biên dịch thành ngôn ngữ nào?
A. C++
B. Java
C. JavaScript
D. HTML
Tập tin nào được tạo khi dùng lệnh npm init -y?
A. tsconfig.json
B. package-lock.json
C. node_modules/
D. package.json
Trường outDir trong tsconfig.json có vai trò gì?
A. Tên file đầu ra
B. Đường dẫn chứa file JS sau khi build
C. Cấu hình thư viện ngoài
D. Chỉ định module cần export
File tsconfig.json dùng để làm gì?
A. Cài đặt extension
B. Cấu hình cách TypeScript biên dịch mã
C. Lưu biến môi trường
D. Ghi log chương trình
Đâu là cú pháp khai báo mảng đúng trong TypeScript?
A. let nums = int[ ]
B. let nums: number[] = [1, 2, 3];
C. let nums = [1, 2, 3]: number[]
D. number nums[] = [1,2,3];
Kiểu dữ liệu nào biểu diễn giá trị đúng/sai?
A. string
B. number
C. boolean
D. null
Khi bạn gán let city = "Hanoi";, biến city có kiểu gì?
A. any
B. undefined
C. string
D. void
enum trong TypeScript được dùng để làm gì?
A. Tạo hàm không trả giá trị
B. Lưu danh sách các biến toàn cục
C. Nhóm các hằng số có tên
D. Tạo mảng
Giá trị mặc định của enum trong TypeScript là:
A. Kiểu string
B. Tăng dần theo bảng chữ cái
C. Giá trị số tăng dần từ 0
D. Giá trị null
Kiểu void thường được dùng cho:
A. Biến lưu giá trị từ API
B. Hàm không trả về giá trị
C. Hàm tính toán
D. Tạo mảng
Nếu bạn return giá trị từ hàm có kiểu void, điều gì xảy ra?
A. Code chạy bình thường
B. Gặp lỗi khi chạy
C. TypeScript cảnh báo
D. Không có gì xảy ra
Mảng trong TypeScript thường được dùng để:
A. Lưu trữ các kiểu dữ liệu bất kỳ
B. Lưu trữ giá trị trong các biến riêng biệt
C. Lưu trữ nhiều giá trị có cùng kiểu dữ liệu trong một biến
D. Không hỗ trợ trong TypeScript
Trong TypeScript, cú pháp number[] là ví dụ của:
A. Tuple
B. Generic
C. Khai báo mảng các giá trị là các số
D. Object
Từ khóa readonly dùng để làm gì với mảng trong TypeScript?
A. Tăng hiệu năng xử lý
B. Biến đổi kiểu dữ liệu
C. Ngăn không cho thay đổi mảng
D. Là một loại mảng mới
Hàm map() trong mảng dùng để làm gì?
A. Lọc phần tử
B. Biến đổi từng phần tử và tạo mảng mới
C. Xóa phần tử cuối
D. Tìm kiếm
Hàm .filter() có tác dụng gì với mảng?
A. Biến đổi từng phần tử
B. Tính tổng các phần tử
C. Lọc ra các phần tử thỏa mãn điều kiện
D. Sắp xếp các phần tử
Interface trong TypeScript dùng để làm gì?
A. Thay thế cho class
B. Tái sử dụng kiểu dữ liệu
C. Khai báo biến toàn cục
D. Định nghĩa hàm
TypeScript giúp phát hiện lỗi ở đâu?
A. Khi chạy chương trình
B. Khi biên dịch chương trình (compile-time)
C. Khi deploy
D. Khi kiểm thử
Object trong TypeScript khác với JavaScript ở điểm nào?
A. TypeScript yêu cầu khai báo kiểu rõ ràng
B. JavaScript an toàn hơn
C. JavaScript kiểm tra kiểu tốt hơn
D. TypeScript không hỗ trợ object
Union Type trong TypeScript là gì?
A. Kiểu dữ liệu cố định
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. Một loại object đặc biệt
D. Một mảng nhiều kiểu
Cú pháp nào dưới đây khai báo Union Type đúng cách?
A. let x = string | number
B. let x: string or number
C. let x: string | number
D. let x = [string, number]
Trong hàm sử dụng Union Type, bạn cần làm gì để an toàn?
A. Không cần kiểm tra
B. Ép kiểu bằng as
C. Kiểm tra kiểu trước khi thao tác (type narrowing)
D. Sử dụng interface
Dùng typeof để làm gì với Union Type?
A. Khởi tạo object
B. Kiểm tra kiểu dữ liệu
C. Xóa biến
D. Tạo mảng
Intersection Type trong TypeScript dùng để làm gì?
A. Tạo kiểu dữ liệu không có thuộc tính
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. Chuyển đổi từ kiểu string sang number
D. Ép kiểu tự động
Ký hiệu để định nghĩa Intersection Type là gì?
A. |
B. &
C. +
D. :
Khi dùng intersection để gộp kiểu, kết quả sẽ có gì?
A. Chỉ thuộc tính của kiểu đầu
B. Chỉ thuộc tính của kiểu sau
C. Tất cả thuộc tính từ cả hai kiểu
D. Không có thuộc tính nào
Đâu không phải là một trong bốn tính chất của OOP ?
A. Kế thừa
B. Đóng gói
C. Callback
D. Đa hình
Từ khóa nào được dùng để khai báo class trong TypeScript?
A. struct
B. interface
C. class
D. object
Phát biểu nào đúng về private trong class?
A. Truy cập được ở mọi nơi
B. Truy cập được trong class và class con
C. Truy cập được từ bên ngoài
D. Chỉ truy cập được bên trong class
Trong class, từ khóa nào dùng để khai báo thuộc tính công khai?
A. private
B. readonly
C. protected
D. public
protected khác private ở điểm nào?
A. Không thể kế thừa
B. Cho phép truy cập từ lớp con
C. Không dùng được trong constructor
D. Không cần khai báo
Thuộc tính model?: string nghĩa là gì?
A. model là bắt buộc
B. model là tuỳ chọn, có thể là undefined
C. model là readonly
D. model là private
Để tạo đối tượng từ class, dùng cú pháp nào?
Lớp con trong TypeScript có thể kế thừa bao nhiêu lớp cha cùng lúc?
A. Một
B. Hai
C. Không giới hạn
D. Phụ thuộc vào interface
Khi lớp cha có constructor có tham số, lớp con phải:
A. Không được kế thừa nữa
B. Gọi super(...) trong constructor
C. Bỏ qua constructor
D. Dùng this()
Từ khóa implements dùng trong trường hợp nào sau đây?
A. Kế thừa từ class
B. Triển khai interface
C. Khởi tạo biến
D. Gọi hàm interface
Interface trong OOP có thể chứa:
A. Khai báo phương thức nhưng không có thân hàm
B. Toàn bộ code xử lý
C. Thuộc tính private
D. Hàm constructor
Khi nào ta cần override một phương thức?
A. Khi muốn gọi constructor lớp cha
B. Khi muốn thay đổi hành vi mặc định từ lớp cha
C. Khi không cần logic riêng
D. Khi dùng getter
Điều nào đúng về lớp trừu tượng?
A. Có thể khởi tạo trực tiếp bằng new
B. Không được chứa phương thức bình thường
C. Có thể chứa cả phương thức trừu tượng và thường
D. Không thể kế thừa
Array<T> trong TypeScript tương đương với cách viết nào?
A. object[]
B. any[]
C. T[]
D. Array
Promise<T> trong TypeScript biểu thị điều gì?
A. Một biến đồng bộ
B. Một đối tượng chứa nhiều kiểu dữ liệu
C. Một lời hứa sẽ trả về kiểu dữ liệu T trong tương lai
D. Một kiểu enum
Set<T> có đặc điểm gì nổi bật?
A. Lưu trữ các giá trị trùng nhau
B. Chỉ chứa các giá trị boolean
C. Chứa các phần tử duy nhất kiểu T
D. Là một mảng
Khi nào bạn nên dùng Partial<T>?
A. Khi muốn tất cả thuộc tính trở thành bắt buộc
B. Khi muốn chỉ định một kiểu cụ thể
C. Khi chỉ muốn cung cấp một phần dữ liệu của T
D. Khi không muốn kiểm tra kiểu
Generic trong TypeScript giúp giải quyết vấn đề gì?
A. Tăng tốc độ biên dịch
B. Cho phép dùng biến toàn 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. Bắt buộc phải dùng class
Câu nào sau đây KHÔNG đúng về generic?
A. Có thể dùng với function
B. Có thể dùng với interface
C. Có thể dùng với class
D. Chỉ dùng được với kiểu số
Constraint Generic là gì?
A. Một biến toàn cục trong TypeScript
B. Một cách khai báo biến dùng trong HTML
C. Kỹ thuật ràng buộc tham số kiểu phải thỏa điều kiện cụ thể
D. Một kiểu dữ liệu đặc biệt
Kết quả của đoạn mã sau là gì?
undefined
null
"Tom"
Gây lỗi vì không có kiểu trả về
Kết quả của đoạn mã sau là gì?
"Meow"
"Purr"
undefined
this.sound
Kết quả của đoạn mã sau là gì?
-50
100
0
Lỗi do không thể gán cho getter
Kết quả của đoạn mã sau là gì?
"Animal sound"
"Woof!"
undefined
Lỗi vì pet kiểu Animal không có phương thức speak()
