Tôi có thể chuyển không xác định thành chức năng javascript không?

Khám phá hành vi này từ https. //github. com/acdlite/flux-standard-action/pull/45/commits/78a9065914b2ca4848dfba8fc0b47c54e2d0e319

Đây là mã gốc

export interface FSA {
  ...
  payload?: Payload;
  ...
}

Tuy nhiên, điều này không hoạt động tốt với loại bảo vệ

function isSomeAction(action: any): action is FSA<{ message: string }, void> {
  return true;
}

let action = {...};
if (isSomeAction(action)) {
  // `action.payload` may be undefined.
  console.log(action.payload.message);
}

Vì loại chung có thể là bất kỳ thứ gì, kể cả undefined, nên tôi đang xem xét loại bỏ chỉ định tùy chọn

Nếu một hàm được gọi với các đối số bị thiếu (ít hơn so với khai báo), các giá trị bị thiếu được đặt thành undefined

Đôi khi điều này có thể chấp nhận được, nhưng đôi khi tốt hơn là gán giá trị mặc định cho tham số


Giá trị tham số mặc định

ES6 cho phép các tham số chức năng có giá trị mặc định

Thí dụ

Nếu y không được thông qua hoặc không xác định, thì y = 10

function myFunction(x, y = 10) {
  return x + y;
}
myFunction(

Tự mình thử »


Thông số phần còn lại chức năng

Tham số còn lại (. ) cho phép một hàm coi số lượng đối số không xác định là một mảng

Thí dụ

hàm tổng(. args) {
  let sum = 0;
  for (let args of args) sum += arg;
  return sum;
}

đặt x = tổng(4, 9, 16, 25, 29, 100, 66, 77);

Tự mình thử »



Đối tượng đối số

Các hàm JavaScript có một đối tượng tích hợp được gọi là đối tượng đối số

Đối tượng đối số chứa một mảng các đối số được sử dụng khi hàm được gọi (gọi)

Bằng cách này, bạn có thể chỉ cần sử dụng một hàm để tìm (ví dụ) giá trị cao nhất trong danh sách các số

Thí dụ

x = findMax(1, 123, 500, 115, 44, 88);

function findMax() {
  let max = -Infinity;
  for (let i = 0; i < đối số. chiều dài;
    if (arguments[i] > max) {
      max = arguments[i];
    }
  }
  return max;
}

Tự mình thử »

Hoặc tạo một hàm để tính tổng tất cả các giá trị đầu vào

Thí dụ

x = sumAll(1, 123, 500, 115, 44, 88);

function sumAll() {
  let sum = 0;
  for (let i = 0; i < đối số. chiều dài;
    sum += arguments[i];
  }
  return sum;
}

Tự mình thử »

Nếu một hàm được gọi với quá nhiều đối số (nhiều hơn so với khai báo), những đối số này có thể được truy cập bằng cách sử dụng đối tượng đối số


Các đối số được truyền theo giá trị

Tham số, trong lời gọi hàm, là đối số của hàm

Đối số JavaScript được truyền theo giá trị. Hàm chỉ biết các giá trị, không biết vị trí của đối số

Như chúng ta đã thấy trong phần biến, chúng ta có thể gán bất kỳ loại giá trị nguyên thủy hoặc không nguyên thủy nào cho một biến. JavaScript bao gồm hai giá trị kiểu nguyên thủy bổ sung - null và không xác định, có thể được gán cho một biến có ý nghĩa đặc biệt

vô giá trị

Bạn có thể gán null cho một biến để biểu thị rằng hiện tại biến đó chưa có bất kỳ giá trị nào nhưng sau này nó sẽ có. null có nghĩa là không có giá trị

Thí dụ. vô giá trị

var myVar = null;

alert(myVar); // null 

Trong ví dụ trên, null được gán cho một biến myVar. Nó có nghĩa là chúng ta đã định nghĩa một biến nhưng chưa gán bất kỳ giá trị nào, vì vậy giá trị không có

Tôi có thể chuyển không xác định thành chức năng javascript không?
null thuộc loại đối tượng e. g. typeof null sẽ trả về "đối tượng"

Nếu bạn cố gắng tìm phần tử DOM bằng tài liệu. getElelementByID chẳng hạn, và nếu phần tử được tìm thấy thì nó sẽ trả về giá trị rỗng. Vì vậy, nên kiểm tra null trước khi làm điều gì đó với phần tử đó

Thí dụ. vô giá trị

var saveButton = document.getElementById("save");

if (saveButton !== null)
        saveButton.submit();

Một giá trị null đánh giá là sai trong biểu thức điều kiện. Vì vậy, bạn không cần phải sử dụng các toán tử so sánh như === hoặc. == để kiểm tra giá trị null

Thí dụ. null trong biểu thức điều kiện

var myVar = null;

if (myVar)
    alert("myVar is not null');
else
    alert("myVar is null" );

chưa xác định

Không xác định cũng là một giá trị nguyên thủy trong JavaScript. Một biến hoặc một đối tượng có giá trị không xác định khi không có giá trị nào được gán trước khi sử dụng nó. Vì vậy, bạn có thể nói rằng không xác định có nghĩa là thiếu giá trị hoặc giá trị không xác định

Thí dụ. chưa xác định

var myVar;

alert(myVar); // undefined 

Tôi có thể chuyển không xác định thành chức năng javascript không?
không xác định là một mã thông báo. typeof không xác định sẽ trả về không xác định không phải là một đối tượng

Trong ví dụ trên, chúng tôi chưa gán bất kỳ giá trị nào cho biến có tên 'myVar'. Biến 'myVar' thiếu giá trị. Vì vậy, nó là không xác định

Bạn sẽ nhận được giá trị không xác định khi bạn gọi một thuộc tính hoặc phương thức không tồn tại của một đối tượng

Thí dụ. chưa xác định

function Sum(val1, val2)
{
    var result = val1 + val2;
}

var result = Sum(5, 5);
alert(result);// undefined 

Trong ví dụ trên, một hàm Sum không trả về bất kỳ kết quả nào nhưng chúng tôi vẫn cố gắng gán giá trị kết quả của nó cho một biến. Vì vậy, trong trường hợp này, kết quả sẽ không được xác định

Nếu bạn truyền ít đối số hơn trong lời gọi hàm thì tham số đó sẽ có giá trị không xác định

Thí dụ. chưa xác định

function Sum(val1, val2)
{
    return val1 + val2;  // val2 is undefined 
}

Sum(5);

Một giá trị không xác định là sai khi được sử dụng trong biểu thức điều kiện

Thí dụ. không xác định trong Biểu thức có điều kiện

________số 8

null và undefined là một trong những lý do chính gây ra lỗi thời gian chạy trong ứng dụng JavaScript. Điều này xảy ra nếu bạn không kiểm tra giá trị của các biến trả về không xác định trước khi sử dụng nó. Nếu bạn không chắc chắn rằng một biến sẽ luôn có giá trị nào đó, thì cách tốt nhất là kiểm tra giá trị của biến xem có null hay không xác định trước khi sử dụng chúng

Hàm JavaScript có thể trả về không xác định không?

Hàm trả về giá trị không xác định nếu giá trị không được trả về . Ghi chú. Mặc dù bạn có thể sử dụng undefined làm định danh (tên biến) trong bất kỳ phạm vi nào ngoài phạm vi toàn cầu (vì undefined không phải là từ dành riêng), nhưng làm như vậy là một ý tưởng rất tồi sẽ khiến mã của bạn khó bảo trì và gỡ lỗi.

Bạn có nên sử dụng không xác định trong JavaScript không?

TLDR; . Đó là một giá trị mà trình biên dịch JS sẽ tự động đặt cho bạn khi bạn khai báo các biến mà không gán hoặc nếu bạn cố truy cập các thuộc tính của các đối tượng không có tham chiếu. Don't use the undefined primitive. It's a value that the JS compiler will automatically set for you when you declare variables without assignment or if you try to access properties of objects for which there is no reference.

Bạn có thể chuyển một đối tượng tới một hàm trong JavaScript không?

Chúng ta có thể truyền một đối tượng vào hàm JavaScript , nhưng các đối số phải có cùng tên với tên thuộc tính Đối tượng.

Không xác định == JavaScript không xác định?

Trả lời. Sử dụng toán tử đẳng thức ( == ) . Do đó, nếu bạn cố gắng hiển thị giá trị của biến đó, từ "không xác định" sẽ được hiển thị. if a variable has been declared, but has not been assigned a value, is automatically assigned the value undefined . Therefore, if you try to display the value of such variable, the word "undefined" will be displayed.