Hướng dẫn what happens if function call has missing parameters javascript? - Điều gì sẽ xảy ra nếu lệnh gọi hàm thiếu tham số javascript?

Trang chủ / Cài đặt Giá trị mặc định cho các tham số bị thiếu trong hàm JavaScriptSetting default values for missing parameters in a Javascript function

Các hàm JavaScript có thể được truyền ít hoặc nhiều tham số tùy thích - số lượng chính xác các tham số được chỉ định trong khai báo hàm không chính xác là những gì phải được truyền vào. Bài đăng này cho thấy cách đặt giá trị mặc định cho tham số nếu nó không được truyền Trong.

Nếu một tham số không được truyền trong đó sẽ không được xác định

Ví dụ sau đây minh họa điều này, trong đó hàm lấy ba tham số và ghi vào tài liệu giá trị của chúng:

function foo[a, b, c] {
    document.write['a: ' + a + ' '];
    document.write['b: ' + b + ' '];
    document.write['c: ' + c + ' '];
    document.write['
']; }

Để kiểm tra nó:

foo[];
foo[1];
foo[1, 2];
foo[1, 2, 3];

Và kết quả:

a: undefined b: undefined c: undefined
a: 1 b: undefined c: undefined
a: 1 b: 2 c: undefined
a: 1 b: 2 c: 3

Cuộc gọi chức năng đầu tiên không vượt qua bất kỳ tham số nào, vì vậy mỗi thông số không được xác định. Thứ hai chỉ vượt qua tham số "A" để có giá trị và các tham số khác không được xác định, v.v.

Để chỉ định giá trị mặc định cho tham số trong hàm JavaScript nếu nó không được truyền, hãy kiểm tra xem nó có được xác định không và nếu không đặt giá trị mặc định. Ví dụ:

function foo[a, b, c] {

    if[typeof a == 'undefined'] {
        a = 'AAA';
    }
    if[typeof b == 'undefined'] {
        b = 'BBB';
    }
    if[typeof c == 'undefined'] {
        c = 'CCC';
    }

    document.write['a: ' + a + ' '];
    document.write['b: ' + b + ' '];
    document.write['c: ' + c + ' '];
    document.write['
']; }

Để kiểm tra nó:

foo[];
foo[1];
foo[1, 2];
foo[1, 2, 3];

Và kết quả:

a: AAA b: BBB c: CCC
a: 1 b: BBB c: CCC
a: 1 b: 2 c: CCC
a: 1 b: 2 c: 3

Cuộc gọi chức năng đầu tiên không vượt qua bất kỳ tham số nào, vì vậy mỗi thông số không được xác định. Thứ hai chỉ vượt qua tham số "A" để có giá trị và các tham số khác không được xác định, v.v.

Để chỉ định giá trị mặc định cho tham số trong hàm JavaScript nếu nó không được truyền, hãy kiểm tra xem nó có được xác định không và nếu không đặt giá trị mặc định. Ví dụ:

a = a || "AAA";

Một giải pháp tốt hơn

function foo[a, b, c] {

    a = a || "AAA";
    b = b || "BBB";
    c = c || "CCC";

    document.write['a: ' + a + ' '];
    document.write['b: ' + b + ' '];
    document.write['c: ' + c + ' '];
    document.write['
']; }

Nhờ một trong những độc giả của tôi, tôi đã học được một cách tốt hơn để thiết lập giá trị mặc định cho một biến và ví dụ này ở đây là một bản cập nhật để trả lời email của anh ấy. Một biến có thể được gán một mặc định nếu không có giá trị nào cho nó đã được đặt như vậy trong JavaScript:

Ngoại lệ JavaScript "Thiếu tham số chính thức" xảy ra khi khai báo hàm của bạn bị thiếu các tham số hợp lệ.

Thông điệp

SyntaxError: missing formal parameter [Firefox]
SyntaxError: Unexpected number '3'. Expected a parameter pattern or a ']' in parameter list. [Safari]
SyntaxError: Unexpected string literal "x". Expected a parameter pattern or a ']' in parameter list. [Safari]

Loại lỗi

Có chuyện gì?

"Tham số chính thức" là một cách nói "tham số chức năng" lạ mắt. Tuyên bố chức năng của bạn bị thiếu các tham số hợp lệ. Trong tuyên bố của một hàm, các tham số phải là định danh, không phải bất kỳ giá trị nào như số, chuỗi hoặc đối tượng. Khai báo các chức năng và chức năng gọi là hai bước riêng biệt. Khai báo yêu cầu định danh là tham số và chỉ khi gọi [gọi] hàm, bạn cung cấp các giá trị mà hàm nên sử dụng.

Trong JavaScript, các định danh chỉ có thể chứa các ký tự chữ và số [hoặc "$" hoặc "_"] và có thể không bắt đầu bằng một chữ số. Một định danh khác với một chuỗi ở chỗ một chuỗi là dữ liệu, trong khi một định danh là một phần của mã.string in that a string is data, while an identifier is part of the code.

Ví dụ

Cung cấp các tham số chức năng thích hợp

Các tham số chức năng phải là định danh khi thiết lập một hàm. Tất cả các khai báo chức năng này đều thất bại, vì chúng đang cung cấp các giá trị cho các tham số của chúng:

function square[3] {
  return number * number;
};
// SyntaxError: missing formal parameter

function greet["Howdy"] {
  return greeting;
};
// SyntaxError: missing formal parameter

function log[{ obj: "value"}] {
  console.log[arg]
};
// SyntaxError: missing formal parameter

Bạn sẽ cần sử dụng số nhận dạng trong khai báo chức năng:

foo[];
foo[1];
foo[1, 2];
foo[1, 2, 3];
0

Sau đó, bạn có thể gọi các chức năng này với các đối số bạn thích:

foo[];
foo[1];
foo[1, 2];
foo[1, 2, 3];
1

Xem thêm

Điều gì xảy ra khi bạn gọi một chức năng JavaScript với một đối số bị thiếu?

Nếu một hàm trong JavaScript được gọi với các đối số bị thiếu [ít hơn được khai báo], các giá trị bị thiếu được đặt thành không xác định.the missing values are set to undefined .

Điều gì xảy ra nếu bạn không vượt qua bất kỳ tham số nào trong hàm JavaScript?

Không có gì xảy ra- có nghĩa là bạn sẽ không gặp lỗi hoặc cảnh báo vì việc truyền các tham số trong JavaScript là tùy chọn.- meaning you won't get an error or a warning as passing the parameters in javascript is optional.

Chức năng JavaScript không có tham số?

Các hàm có các cấu trúc khác nhau như tham số hoặc không có tham số và một số giá trị trả về hàm và một số không có trong JavaScript.Hàm đơn giản nhất là một hàm không có tham số và không trả lại.Hàm tính toán các câu lệnh của nó và sau đó trực tiếp đưa ra kết quả.some do not in JavaScript. The simplest of function is the one without an parameters and without return. The function compute its statements and then directly output the results.

Có thể gọi một chức năng mà không cần tham số?

Bạn cũng có thể sử dụng chức năng tích hợp mà không cần phải vượt qua các tham số.Hàm không có đối số có nghĩa là bạn không vượt qua bất kỳ đối số nào trong hàm.. The function without arguments means that you do not pass any arguments in the function.

Bài Viết Liên Quan

Chủ Đề