Chào các bạn, hôm nay cafedev chia sẻ cho ace một danh sách các bài tập từ cơ bản tới nâng cao liên quan tới các kiến thức cơ bản trong lập trình Javascript. Cụ thể, trong bài này chúng ta sẽ làm quen với phương thức, Number, String. Từ đó giúp ace nâng cao kiến thức, kỹ năng, kinh nghiệm lập trình của mình và áp dụng nó vào thực tế.

Trước khi đi vào chi tiết bài tập, cafedev khuyến khích ace tự code bài tập của mình trước khi tham khảo bài hướng dẫn nhé.

Để chạy hoặc code các bài tập sau, ace có thể code trên trang web này như sau:

  • Chọn new
  • Chọn dự án bạn muốn code, ở đây có nhiều lựa chọn như Javascript, AngularJS, React,…. Tất nhiên mình sẽ chọn Javascript.
  • Sau đó bạn sẽ thấy nơi bạn code.
  • Sau khi code sau chọn Preview để xem kết quả.

Ngoài ra ace cũng có thể dùng các IDE đã được giới thiệu tại đây để code và chạy code đó trên máy tính của mình nhé.

Lưu ý: Mọi bài tập bên dưới cũng như các bài tập khác trong Series Javascript này được tạo ra từ các bài học và kiến thức của từng phần trong series tự học Javascript này. Nếu ace nào chưa làm được hoặc chưa hiểu kỹ về bài học thì bạn có thể tham khảo lại series tự học này nhé. Chúc các bạn thành công.

Bài 1

Hãy xem xét đoạn code sau:

let str = "Hello Cafedev";

str.test = 5;

alert(str.test);

Bạn nghĩ như thế nào, nó sẽ hoạt động không? Những gì sẽ được hiển thị là gì?

Bài 2

Tạo một tập lệnh nhắc khách nhập hai số và sau đó hiển thị tổng của chúng.

Bài 3

Theo tài liệu Math.round và toFixed, cả hai đều làm tròn số gần nhất: 0..4 làm tròn xuống trong khi 5..9 làm tròn lên.

Trong ví dụ dưới đây, tại sao 6,35 được làm tròn thành 6,3, không phải 6,4?

alert( 6.35.toFixed(1) ); // 6.3

Làm thế nào để làm tròn 6,35 đúng cách?

Bài 4

Tạo một hàm readNumber nhập một số cho đến khi khách nhập một giá trị số hợp lệ.

Giá trị kết quả phải được trả về dưới dạng số.

Khách truy cập cũng có thể dừng quá trình bằng cách nhập một dòng trống hoặc nhấn “HỦY”. Trong trường hợp đó, hàm sẽ trả về null.

Bài 5

Vòng lặp này là vô hạn. Nó không bao giờ kết thúc. Tại sao?

let i = 0;
while (i != 10) {
  i += 0.2;
}

Bài 6

Hàm Math.random() cài sẵn để tạo ra một giá trị ngẫu nhiên từ 0 đến 1 (không bao gồm 1).

Viết hàm random (min, max) để tạo một số dấu phẩy động ngẫu nhiên từ min đến max (không bao gồm max).

Ví dụ về công việc của nó:

alert( random(1, 5) ); // 1.2345623452
alert( random(1, 5) ); // 3.7894332423
alert( random(1, 5) ); // 4.3435234525

Hướng dẫn cách xem và tải tài liệu từ trang cafedev tại đây.


Bài giải 1,2,3,4,5,6

Bài 7

Viết một hàm ucFirst (str) trả về chuỗi str với ký tự đầu tiên viết hoa, ví dụ:

ucFirst("john") == "John";

Bài 8

Viết một hàm checkSpam(str) trả về true nếu str chứa ‘cafedev’ hoặc ‘Youtube Cafedev’, ngược lại là false.

Hàm phải không phân biệt chữ hoa chữ thường:

checkSpam('cafedev) == true
checkSpam('Youtube Cafedev') == true
checkSpam("OK yiou") == false

Bài 9

Tạo một hàm truncate(str, maxlength) để kiểm tra độ dài của str và nếu nó vượt quá maxlength – thay thế phần cuối của str bằng ký tự dấu chấm lửng “…”, để làm cho độ dài của nó bằng maxlength.

Kết quả của hàm phải là chuỗi được cắt ngắn (nếu cần).

Bài 10

Chúng ta có một chi phí ở dạng “$ 120”. Đó là: ký hiệu đô la đi trước, sau đó đến số.

Tạo một hàm extractCurrencyValue(str) sẽ trích xuất giá trị số từ chuỗi đó và trả về.


Bài giải 7,8,9,10

Nguồn và Tài liệu tiếng anh tham khảo:

Tài liệu từ cafedev:

Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:

Chào thân ái và quyết thắng!

Đăng ký kênh youtube để ủng hộ Cafedev nha các bạn, Thanks you!