Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Sự khác biệt giữa Kiến thức Thủ tục (Procedural) và Kiến thức Khai báo (Declarative)


Kiến thức Thủ tục (Procedural Knowledge)

Kiến thức thủ tục hay mệnh lệnh (imperative) làm rõ cách thực hiện một nhiệm vụ cụ thể. Nó liệt kê các bước để thực hiện. Ví dụ: cách sao chép mảng bằng JavaScript theo cách thủ tục.

Ví dụ

var a=[1, 2, 3, 4, 5]; var b=[]; for(var i=0;i < a.length;i++) { b.push(a[i]); } console.log(b);

Kết quả

[1, 2, 3, 4, 5]

Kiến thức Khai báo (Declarative Knowledge)

Kiến thức khai báo hay hàm (functional) làm rõ cái gì cần làm để thực hiện nhiệm vụ. Nó định nghĩa hàm để thực hiện. Ví dụ: cách sao chép mảng bằng JavaScript theo cách khai báo.

Ví dụ

var a=[1, 2, 3, 4, 5]; var b=a.map(function(number){ return number*1 }); console.log(b);

Kết quả

[1, 2, 3, 4, 5]

Dưới đây là những khác biệt quan trọng giữa Kiến thức Thủ tục và Kiến thức Khai báo:

STT Tiêu chí Kiến thức Thủ tục Kiến thức Khai báo
1 Tên gọi Còn gọi là kiến thức mệnh lệnh (imperative knowledge). Còn gọi là kiến thức hàm (functional knowledge).
2 Cơ sở Xoay quanh khái niệm Cách thức (How to). Xoay quanh khái niệm Mục đích (What to).
3 Truyền đạt Khó truyền đạt. Dễ truyền đạt.
4 Định hướng Hướng tới quy trình (process-oriented). Hướng tới dữ liệu (data-oriented).
5 Xác thực Xác thực không dễ dàng. Xác thực khá dễ dàng.
6 Gỡ lỗi (Debugging) Gỡ lỗi không dễ dàng. Gỡ lỗi khá dễ dàng.