Kiểm tra javascript nếu tham số tồn tại

Nếu bạn muốn kiểm tra xem một biến đã được khởi tạo hay định nghĩa chưa (i. e. kiểm tra xem một biến đã được khai báo và gán giá trị hay chưa), bạn có thể sử dụng toán tử typeof

Lý do quan trọng nhất của việc sử dụng toán tử typeof là nó không ném ReferenceError nếu biến chưa được khai báo. Hãy cùng xem ví dụ sau

Hàm JavaScript là một khối mã được thiết kế để thực hiện một tác vụ cụ thể. Nó được thực thi khi nó được gọi (khi một cái gì đó gọi nó). Một chức năng có thể là một chức năng được đặt tên hoặc ẩn danh. Bài viết này nói về cách kiểm tra xem một biến có thuộc loại 'Hàm' hay không. Trước khi chúng ta hiểu các phương pháp khác nhau để thực hiện điều này và cũng như lý do tại sao bất kỳ ai cũng muốn gán một hàm cho một biến, hãy xem cách các hàm được đặt tên và ẩn danh được khai báo

Mục lục

  • Các kiểu khai báo hàm
  • Lợi ích của việc gán một chức năng cho một biến
  • Mã số
  • Hãy cẩn thận

Các kiểu khai báo hàm

Khai báo hàm được đặt tên

Hàm này có một mã định danh được đặt tên được liên kết với nó, có thể được sử dụng để gọi hàm

function functionName(parameter1, paramter2) { //code}

Khai báo hàm ẩn danh

Đó là một chức năng được khai báo mà không có bất kỳ định danh được đặt tên nào để tham chiếu đến nó

var anon = function() { //code }

Lợi ích của việc gán một chức năng cho một biến

Việc gán một hàm cho một biến cho phép chúng ta chuyển biến này làm tham số cho một hàm khác. Điều này đặc biệt hữu ích trong các tình huống yêu cầu thời gian chạy linh hoạt. Bạn sẽ chủ yếu sử dụng các chức năng như vậy để chạy tải mã để phản hồi một sự kiện kích hoạt. Ví dụ: một nút được nhấp bằng trình xử lý sự kiện

myButton.onclick = function() {
    //response actions
}

Mã số

Sử dụng toán tử instanceof

Toán tử instanceof được sử dụng để kiểm tra loại đối tượng trong thời gian chạy. Toán tử này trả về một giá trị Boolean (true hoặc false). Trong ví dụ dưới đây, câu lệnh IF được sử dụng để kiểm tra xem loại tham số được truyền cho checkFunction() có phải là loại Hàm hay không

//javascript check if function-Using instanceof operator
<
script >

    // Declare a variable and initialize it // Declare a variable and initialize it with an anonymous function
    var exampleVar = function() {
        /* A set of statements */ };

// to check a variable is of function type or not
function checkFunction(x) {

    if (x instanceof Function) {
        document.write("Variable is of function type");
    } else {
        document.write("Variable is not of function type");
    }
}

// Function call
checkFunction(exampleVar);

<
/script>

Sử dụng phép so sánh Bình đẳng nghiêm ngặt (===) cùng với toán tử typeof

Trong JavaScript, Toán tử so sánh đẳng thức nghiêm ngặt (===) được sử dụng để kiểm tra xem hai thực thể không chỉ có giá trị bằng nhau mà còn có cùng loại. Toán tử typeof trả về một chuỗi cho biết loại toán hạng chưa được đánh giá. Cả hai toán tử này đều cung cấp kết quả Boolean. Kết quả này có thể được so sánh bằng cách sử dụng câu lệnh IF để kiểm tra xem loại đối tượng có phải là "Hàm"

//javascript check if function-Using Strict Equality comparison (===) along with typeof operator

Sử dụng đối tượng. nguyên mẫu. toString

Phương pháp này sử dụng đối tượng. nguyên mẫu. toString. Mọi đối tượng đều có một phương thức toString(), phương thức này trả về '[loại đối tượng]' trong đó 'loại' là loại đối tượng. Câu lệnh IF có thể được sử dụng để so sánh xem giá trị trả về có thuộc loại 'Hàm' hay không

//javascript check if function-Using object.prototype.toString

Hãy cẩn thận

Trong Chrome typeof(obj) === 'hàm' dường như là nhanh nhất;