Ngu ngơ học làm web (19) - Căn bản lập trình JavaScript (2)

tiếp theo của: Ngu ngơ học làm web (18) -  Căn bản lập trình JavaScript (1)
---------

Phần 19.       Căn bản lập trình JavaScript (2)


Clip 14: Đối tượng Number


Đối tượng Number bao gồm số nguyên và số thực.

Ví dụ,

var n = new Number(10);
      document.write(n);

Clip 15: thuộc tính của đối tượng Number


Thuộc tính constructor trả về hàm khởi tạo. Ví dụ,

var n = new Number(10);
      document.write(n.constructor);

Kết quả xuất ra màn hình là:

function Number() { [native code] }

Hàm isNaN() để kiểm tra một đối tượng không phải là số, nếu là số trả về false, nếu không là số trả về true.

Ví dụ,

document.write(isNaN('abc')); // true
document.write(isNaN(9)); //false

Ví dụ sử dụng isNaN(),

      var a = 5;
      var b = 'xyz';
      var result;
      if(isNaN(a/b)){
        result = 'Phép toán không thực hiện được';
      } else {
        result = a/b;
      }
      document.write('Ket qua: ' + result);

Thuộc tính prototype được sử dụng để thêm phương thức hoặc thuộc tính cho một đối tượng. Ví dụ thêm thuộc tính rezo cho đối tượng Number,

var n = new Number(9);
      Number.prototype.zero = 0;
      document.write(n.zero);

Clip 16: một số phương thức của đối tượng Number


– toFixed(): dùng để làm tròn một số, biến được làm tròn sẽ chuyển thành kiểu string, có thể kiểm tra bằng typeof() hoặc thuộc tính constructor.

Ví dụ,

var n = new Number(9.1234);
      document.write('Làm tròn 2 số thập phân: ' + n.toFixed(2));
//Kết quả: Làm tròn 2 số thập phân: 9.12

– toPrecision(): xác định số chữ số sẽ lấy

Ví dụ,

var n = new Number(9.1234);
      document.write('2 số: ' + n.toPrecision(2) + '<br>'); // 9.1
      document.write('giữ nguyên số: ' + n.toPrecision() + '<br>'); // 9.1234
      document.write('3 số: ' + n.toPrecision(3)); // 9.12

– valueOf(): lấy giá trị của đối tượng Number (xem thêm trong phần tạo một prototype)

var n = new Number(15);
      document.write('Giá trị của biến n: ' + n.valueOf());

Tìm hiểu thêm các phương thức khác của đối tượng Number.

Clip 17: Tạo prototype cho đối tượng Number


Viết hàm trả về kí số lớn nhất của một số, ví dụ cho số 1463 thì trả về kí số 6.

var n = 1463;
      var maxDigit = 0;

      while(n > 0){
        var temp = n % 10;
        maxDigit = maxDigit < temp ? temp : maxDigit;
        n = (n - temp) / 10;
      }
      document.write(maxDigit);

Chuyển hàm trên thành một prototype của đối tượng Number,

var n = 1463;
      Number.prototype.getMaxDigit = function(){
        var maxDigit = 0;
        var number = this.valueOf();
        while(number > 0){
          var temp = number % 10;
          maxDigit = maxDigit < temp ? temp : maxDigit;
          number = (number - temp) / 10;
        }
        return maxDigit;
      }
      document.write(n.getMaxDigit());

Bài tập làm thêm:

– Đảo ngược các kí số của một số tự nhiên

– Tìm ước chung lớn nhất của hai số

– Tìm bội chung nhỏ nhất của hai số

Clip 18: đối tượng Array


Ba cách khai báo một đối tượng Array:

(1) var arr1 = new Array();
arr1[0] = 'HTML';
arr1[1] = 'CSS';
arr1[2] = 'JS';
(2) var arr2 = new Array('HTML', 'CSS', 'JS');
(3) var arr3 = ['HTML', 'CSS', 'JS'];

Dùng vòng lặp for (in) để duyệt tất cả phần tử của mảng,

for(x in arr1){ // x đóng vai trò là chỉ số i
        document.write(arr1[x] + '<br>');
      }

Nếu muốn in mảng, đơn giản chỉ là,

document.write(arr1);

Để biết mảng có bao nhiêu phần tử, sử dụng thuộc tính length,

document.write(arr1.length);

Clip 19: phương thức của Array


Để nối mảng dùng phương thức concat(),

var arr1 = new Array('HTML', 'CSS', 'JS');
      var arr2 = ['PHP'];
      var arr3 = new Array();
      arr3 = arr1.concat(arr2);
      document.write(arr3);

Trả về vị trí tìm thấy (đầu tiên) một phần tử trong mảng, dùng phương thức indexOf(),

var arr1 = new Array('HTML', 'CSS', 'JS', 'JS');
      document.write('Vị trí của JS (đầu tiên): ' + arr1.indexOf('JS'));

Trả về vị trí tìm thấy (cuối cùng) một phần tử trong mảng, dùng phương thức lastIndexOf(),

var arr1 = new Array('HTML', 'CSS', 'JS', 'JS');
      document.write('Vị trí (cuối cùng) của JS: ' + arr1.lastIndexOf('JS'));

Sử dụng phương thức join() để chèn “kí tự nối” giữa các phần tử,

var arr1 = new Array('HTML', 'CSS', 'JS', 'JS');
      document.write('Mảng mới: ' + arr1.join('-'));

Clip 20: phương thức của Array (tt)


– pop(): lấy phần tử cuối ra khỏi mảng

Ví dụ,

var arr = new Array('HTML', 'CSS', 'JS');
      var lastItem = arr.pop();
      document.write('lastItem: ' + lastItem + '<br>');
      document.write('arr: ' + arr);

– shift(): lấy phần tử đầu ra khỏi mảng

Ví dụ,

      var arr = new Array('HTML', 'CSS', 'JS');
      var firstItem = arr.shift();
      document.write('firstItem: ' + firstItem + '<br>');
      document.write('arr: ' + arr);

– push(): thêm phần tử vào cuối mảng. Hàm này trả về số phần tử hiện có của mảng

Ví dụ,

var arr = new Array('HTML', 'CSS', 'JS');
      var newItem = 'PHP';
      document.write('pushed: ' + arr.push(newItem) + '<br>');
      document.write('arr: ' + arr);

– unshift(): thêm phần tử vào đầu mảng. Hàm này trả về số phần tử hiện có của mảng

Ví dụ,

var arr = new Array('HTML', 'CSS', 'JS');
      var newItem = 'PHP';
      document.write('unshifted: ' + arr.unshift(newItem) + '<br>');
      document.write('arr: ' + arr);

Clip 21: phương thức của đối tượng Array(tt)


– slice(start, end): copy các phần tử của mảng, từ phần tử start đến phần tử end (không tính phần tử end), các phần tử được copy  ra một mảng mới.

Ví dụ,

var arr = new Array('HTML', 'CSS', 'JS', 'PHP', 'Bootstrap');
      var newArr = new Array();
      newArr = arr.slice(1, 3); //lấy hai phần tử thứ 1, và 2
      document.write('newArr: ' + newArr + '<br>');
      document.write('arr: ' + arr);

– sort(): sắp xếp mảng

var arr = new Array('HTML', 'CSS', 'JS', 'PHP', 'Bootstrap');
      document.write('sorted: ' + arr.sort() + '<br>');

– splice(): để thêm và xóa các phần tử của một mảng

Ví dụ xóa phần tử,

var arr = new Array('HTML', 'CSS', 'JS', 'PHP', 'Bootstrap');
      document.write('arr: ' + arr + '<br>');
      // xóa từ vị trí 1, xóa 2 phần tử
      document.write('spliced: ' + arr.splice(1, 2) + '<br>');
      document.write('arr: ' + arr + '<br>');

Ví dụ thêm phần tử,

var arr = new Array('HTML', 'CSS', 'JS', 'PHP', 'Bootstrap');
      document.write('arr: ' + arr + '<br>');
      // thêm từ vị trí 1, thêm 2 phần tử
      document.write('spliced: ' + arr.splice(1, 0, 'HTML1', 'HTML2') + '<br>');
      document.write('arr: ' + arr + '<br>');

Ví dụ, xóa hai phần tử, thêm ba phần tử,

var arr = new Array('HTML', 'CSS', 'JS', 'PHP', 'Bootstrap');
      document.write('arr: ' + arr + '<br>');
      // xóa từ vị trí 1, xóa 2 phần tử, sau đó thêm 3 phần tử
      document.write('spliced: ' + arr.splice(1, 2, 'HTML1', 'HTML2', 'HTML3') + '<br>');
      document.write('arr: ' + arr + '<br>');

– reverse(): đảo ngược các phần tử của mảng

Ví dụ,

var arr = new Array('HTML', 'CSS', 'JS', 'PHP', 'Bootstrap');
      document.write('arr: ' + arr + '<br>');
      document.write('reversed: ' + arr.reverse() + '<br>');


– toString(): chuyển mảng thành chuỗi
-----------
Cập nhật [3/9/2020]
-----------
Xem thêm: 
Tổng hợp các bài viết về Ngu ngơ học làm web
Ngu ngơ học làm web (20) -  Căn bản lập trình JavaScript (3)