ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
0 và ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
1 là hai khái niệm tương đối mới về khai báo biến trong JavaScript. Như chúng tôi đã đề cập trước đó, ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
0 tương tự như ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
3 ở một số khía cạnh, nhưng cho phép người dùng tránh một số "sự cố" phổ biến mà người dùng gặp phải trong JavaScriptts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
1 là phần mở rộng của ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
0 ở chỗ nó ngăn việc gán lại cho một biếnVới TypeScript là một phần mở rộng của JavaScript, ngôn ngữ này tự nhiên hỗ trợ ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
0 và ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
1. Ở đây chúng tôi sẽ giải thích thêm về những khai báo mới này và lý do tại sao chúng lại thích hợp hơn ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
3Nếu bạn đã quen sử dụng JavaScript, phần tiếp theo có thể là một cách hay để bạn nhớ lại. Nếu bạn đã quen thuộc với tất cả những điều kỳ quặc của khai báo ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
3 trong JavaScript, thì bạn có thể thấy việc bỏ qua phía trước dễ dàng hơntsfunction sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum;}3 tờ khaiKhai báo một biến trong JavaScript theo truyền thống luôn được thực hiện với từ khóa ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
3ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
2Như bạn có thể đã hình dung ra, chúng ta vừa khai báo một biến tên là ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
32 với giá trị ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
33Chúng ta cũng có thể khai báo một biến bên trong hàm ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
5và chúng ta cũng có thể truy cập các biến tương tự trong các chức năng khác ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
6Trong ví dụ trên, ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
34 đã bắt được biến ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
32 được khai báo trong ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
36. Tại bất kỳ thời điểm nào mà ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
34 được gọi, giá trị của ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
32 sẽ được gắn với giá trị của ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
32 trong ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
36. Ngay cả khi ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
34 được gọi sau khi ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
36 chạy xong, nó sẽ có thể truy cập và sửa đổi ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
32ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
7quy tắc phạm viKhai báo ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
3 có một số quy tắc phạm vi kỳ lạ đối với những quy tắc được sử dụng cho các ngôn ngữ khác. Lấy ví dụ sauts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
9Một số độc giả có thể thực hiện gấp đôi ví dụ này. Biến ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
05 đã được khai báo trong khối ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
06, nhưng chúng tôi vẫn có thể truy cập nó từ bên ngoài khối đó. Đó là bởi vì các khai báo ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
3 có thể truy cập được ở bất kỳ đâu trong hàm chứa, mô-đun, không gian tên hoặc phạm vi toàn cầu - tất cả những gì chúng ta sẽ xem xét sau - bất kể khối chứa là gì. Một số người gọi đây là phạm vi ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) {
sum += currentRow[i]; } } return sum; } 3 hoặc phạm vi chức năng. Các tham số cũng nằm trong phạm vi chức năngCác quy tắc phạm vi này có thể gây ra một số loại lỗi. Một vấn đề mà chúng làm trầm trọng thêm là việc khai báo cùng một biến nhiều lần không phải là lỗi ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
Có thể dễ dàng phát hiện ra đối với một số nhà phát triển JavaScript có kinh nghiệm, nhưng vòng lặp ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
09 bên trong sẽ vô tình ghi đè lên biến ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
60 vì ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
60 đề cập đến cùng một biến trong phạm vi chức năng. Như các nhà phát triển có kinh nghiệm đã biết, các loại lỗi tương tự sẽ lọt qua các bài đánh giá mã và có thể là nguồn gây thất vọng vô tận.Quirks chụp biếnHãy nhanh chóng đoán xem đầu ra của đoạn mã sau là gì ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
3Đối với những người không quen thuộc, ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
62 sẽ cố gắng thực thi một chức năng sau một số mili giây nhất định (mặc dù phải đợi mọi thứ khác ngừng chạy)Sẳn sàng? ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
0Nhiều nhà phát triển JavaScript rất quen thuộc với hành vi này, nhưng nếu bạn thấy ngạc nhiên, thì chắc chắn bạn không đơn độc. Hầu hết mọi người mong đợi đầu ra là ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
6Hãy nhớ những gì chúng tôi đã đề cập trước đó về chụp biến? Hãy dành một phút để xem xét điều đó có nghĩa là gì. ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
62 sẽ chạy một chức năng sau một số mili giây, nhưng chỉ sau khi vòng lặp ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
09 đã ngừng thực thi; . Vì vậy, mỗi khi hàm đã cho được gọi, nó sẽ in ra ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
33Một công việc phổ biến xung quanh là sử dụng IIFE - Biểu thức hàm được gọi ngay lập tức - để ghi lại ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
60 tại mỗi lần lặpts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
1Mô hình trông kỳ lạ này thực sự khá phổ biến. ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
60 trong danh sách tham số thực sự che khuất ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
60 được khai báo trong vòng lặp ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
09, nhưng vì chúng tôi đặt tên chúng giống nhau nên chúng tôi không phải sửa đổi thân vòng lặp quá nhiềutsfunction sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum;}0 tờ khaiBây giờ bạn đã phát hiện ra rằng ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
3 có một số vấn đề, đó chính là lý do tại sao câu lệnh ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
0 được giới thiệu. Ngoài từ khóa được sử dụng, câu lệnh ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
0 được viết giống như cách viết câu lệnh ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
3ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
50Sự khác biệt chính không nằm ở cú pháp, mà ở ngữ nghĩa, mà bây giờ chúng ta sẽ đi sâu vào phạm vi khốiKhi một biến được khai báo bằng cách sử dụng ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
0, nó sẽ sử dụng cái mà một số người gọi là phạm vi từ vựng hoặc phạm vi khối. Không giống như các biến được khai báo với ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
3 có phạm vi rò rỉ ra hàm chứa của chúng, các biến có phạm vi khối không hiển thị bên ngoài khối chứa gần nhất của chúng hoặc vòng lặp ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
09ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
51Ở đây, chúng ta có hai biến cục bộ ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
32 và ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
504. Phạm vi của ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
32 được giới hạn trong phần thân của ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
36 trong khi phạm vi của ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
504 được giới hạn trong khối chứa câu lệnh ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
06Các biến được khai báo trong mệnh đề ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i];
} } return sum; } 509 cũng có các quy tắc xác định phạm vi tương tựts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
52Một thuộc tính khác của các biến trong phạm vi khối là chúng không thể được đọc hoặc ghi trước khi chúng thực sự được khai báo. Mặc dù các biến này “hiện diện” trong phạm vi của chúng, nhưng tất cả các điểm cho đến khi khai báo của chúng là một phần của vùng chết tạm thời của chúng. Đây chỉ là một cách phức tạp để nói rằng bạn không thể truy cập chúng trước câu lệnh ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
0 và may mắn là TypeScript sẽ cho bạn biết điều đóts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
53Một điều cần lưu ý là bạn vẫn có thể nắm bắt một biến trong phạm vi khối trước khi nó được khai báo. Vấn đề duy nhất là việc gọi hàm đó trước khi khai báo là bất hợp pháp. Nếu nhắm mục tiêu ES2015, thời gian chạy hiện đại sẽ gây ra lỗi; ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
54Để biết thêm thông tin về các vùng chết tạm thời, hãy xem nội dung liên quan trên Mozilla Developer Network Khai báo lại và ShadowingVới khai báo ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
3, chúng tôi đã đề cập rằng việc bạn khai báo biến bao nhiêu lần không quan trọng; ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
55Trong ví dụ trên, tất cả các khai báo của ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
05 thực sự đề cập đến cùng một ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
05 và điều này hoàn toàn hợp lệ. Điều này thường kết thúc là một nguồn lỗi. Rất may, khai báo ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
0 không dễ tha thứts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
56Các biến không nhất thiết phải nằm trong phạm vi khối để TypeScript cho chúng tôi biết rằng có sự cố ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
57Điều đó không có nghĩa là một biến trong phạm vi khối không bao giờ có thể được khai báo bằng một biến trong phạm vi chức năng. Biến phạm vi khối chỉ cần được khai báo trong một khối khác biệt rõ ràng ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
58Hành động giới thiệu một tên mới trong một phạm vi lồng nhau hơn được gọi là tạo bóng. Đó là một con dao hai lưỡi ở chỗ nó có thể tự giới thiệu một số lỗi nhất định trong trường hợp vô tình bị che khuất, đồng thời ngăn chặn một số lỗi nhất định. Chẳng hạn, hãy tưởng tượng chúng ta đã viết hàm ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
515 trước đó bằng cách sử dụng biến ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
0ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
59Phiên bản này của vòng lặp sẽ thực sự thực hiện phép tính tổng một cách chính xác vì ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
60 của vòng lặp bên trong đổ bóng ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
60 từ vòng lặp bên ngoàiShadowing thường nên tránh để viết mã rõ ràng hơn. Mặc dù có một số tình huống có thể phù hợp để tận dụng lợi thế của nó, nhưng bạn nên sử dụng phán đoán tốt nhất của mình Chụp biến trong phạm vi khốiKhi chúng tôi lần đầu tiên chạm vào ý tưởng thu thập biến bằng khai báo ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
3, chúng tôi đã tìm hiểu sơ qua về cách các biến hoạt động sau khi được thu thập. Để hiểu rõ hơn về điều này, mỗi khi một phạm vi được chạy, nó sẽ tạo ra một “môi trường” của các biến. Môi trường đó và các biến bị bắt của nó có thể tồn tại ngay cả sau khi mọi thứ trong phạm vi của nó đã thực thi xongts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
60Bởi vì chúng ta đã chiếm được ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
520 từ bên trong môi trường của nó, nên chúng ta vẫn có thể truy cập nó mặc dù thực tế là khối ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
06 đã thực thi xongNhớ lại rằng với ví dụ ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
62 trước đó của chúng tôi, cuối cùng chúng tôi cần sử dụng IIFE để nắm bắt trạng thái của một biến cho mỗi lần lặp của vòng lặp ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
09. Trên thực tế, những gì chúng tôi đang làm là tạo một môi trường biến mới cho các biến đã chụp của chúng tôi. Đó là một chút khó khăn, nhưng may mắn thay, bạn sẽ không bao giờ phải làm điều đó một lần nữa trong TypeScriptKhai báo ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
0 có hành vi khác hẳn khi được khai báo như một phần của vòng lặp. Thay vì chỉ giới thiệu một môi trường mới cho chính vòng lặp, các khai báo này sẽ tạo ra một phạm vi mới cho mỗi lần lặp lại. Vì đây là những gì chúng tôi đang làm với IIFE của mình, chúng tôi có thể thay đổi ví dụ ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
62 cũ của mình để chỉ sử dụng khai báo ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
0ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
61và như mong đợi, điều này sẽ in ra ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
6tsfunction sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum;}1 tờ khaiKhai báo ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
1 là một cách khác để khai báo biếnts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
63Chúng giống như các khai báo ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
0, nhưng như tên gọi của chúng, giá trị của chúng không thể thay đổi một khi chúng bị ràng buộc. Nói cách khác, chúng có cùng quy tắc phạm vi như ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) {
sum += currentRow[i]; } } return sum; } 0, nhưng bạn không thể gán lại cho chúngKhông nên nhầm lẫn điều này với ý tưởng rằng các giá trị mà chúng đề cập đến là bất biến ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
64Trừ khi bạn thực hiện các biện pháp cụ thể để tránh nó, trạng thái bên trong của biến ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
1 vẫn có thể sửa đổi được. May mắn thay, TypeScript cho phép bạn chỉ định rằng các thành viên của một đối tượng là ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
532. Chương về Giao diện có các chi tiếttsfunction sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum;}0 so với. tsfunction sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum;}1Cho rằng chúng tôi có hai loại khai báo với ngữ nghĩa phạm vi tương tự nhau, thật tự nhiên khi chúng tôi hỏi nên sử dụng loại nào. Giống như hầu hết các câu hỏi rộng, câu trả lời là. nó phụ thuộc Áp dụng nguyên tắc đặc quyền tối thiểu, tất cả các khai báo khác với những gì bạn định sửa đổi nên sử dụng ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
1. Cơ sở lý luận là nếu một biến không cần phải ghi vào, thì những biến khác làm việc trên cùng một cơ sở mã sẽ không thể tự động ghi vào đối tượng và sẽ cần xem xét liệu chúng có thực sự cần gán lại cho biến đó hay không. Sử dụng ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
1 cũng làm cho mã dễ đoán hơn khi lập luận về luồng dữ liệuSử dụng phán đoán tốt nhất của bạn và nếu có thể, hãy tham khảo vấn đề với những người còn lại trong nhóm của bạn Phần lớn sổ tay này sử dụng các tờ khai ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
0hủy diệtMột tính năng khác của ECMAScript 2015 mà TypeScript có là phá hủy. Để có tài liệu tham khảo đầy đủ, hãy xem bài viết trên Mozilla Developer Network. Trong phần này, chúng tôi sẽ cung cấp một cái nhìn tổng quan ngắn Phá hủy mảngHình thức phá hủy đơn giản nhất là phép gán phá hủy mảng ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
65Điều này tạo ra hai biến mới có tên là ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
538 và ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
539. Điều này tương đương với việc sử dụng lập chỉ mục, nhưng tiện lợi hơn nhiềuts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
66Việc hủy cấu trúc cũng hoạt động với các biến đã được khai báo ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
67Và với các tham số cho một chức năng ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
68Bạn có thể tạo một biến cho các mục còn lại trong danh sách bằng cú pháp ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
540ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
69Tất nhiên, vì đây là JavaScript, nên bạn có thể bỏ qua các phần tử ở cuối mà bạn không quan tâm ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
70Hoặc các yếu tố khác ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
71Tuple phá hủyCác bộ dữ liệu có thể bị phá hủy giống như các mảng; ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
72Có lỗi khi hủy cấu trúc một bộ ngoài phạm vi các phần tử của nó ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
73Như với mảng, bạn có thể hủy cấu trúc phần còn lại của bộ dữ liệu bằng ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
540, để có bộ dữ liệu ngắn hơnts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
74Hoặc bỏ qua các phần tử theo sau hoặc các phần tử khác ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
75phá hủy đối tượngBạn cũng có thể hủy cấu trúc các đối tượng ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
76Điều này tạo ra các biến mới ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
32 và ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
504 từ ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
544 và ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
545. Lưu ý rằng bạn có thể bỏ qua ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
546 nếu không cầnGiống như hủy mảng, bạn có thể gán mà không cần khai báo ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
77Lưu ý rằng chúng ta phải bao quanh tuyên bố này bằng dấu ngoặc đơn. JavaScript thường phân tích cú pháp ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
547 khi bắt đầu khốiBạn có thể tạo một biến cho các mục còn lại trong một đối tượng bằng cú pháp ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
540ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
78đổi tên tài sảnBạn cũng có thể đặt tên khác cho thuộc tính ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
79Ở đây cú pháp bắt đầu trở nên khó hiểu. Bạn có thể đọc ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
549 thành ”ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
32 thành ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
551”. Hướng từ trái sang phải, như thể bạn đã viếtts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
90Thật khó hiểu, dấu hai chấm ở đây không chỉ ra loại. Loại, nếu bạn chỉ định, vẫn cần được viết sau khi hủy toàn bộ ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
91Giá trị mặc địnhGiá trị mặc định cho phép bạn chỉ định giá trị mặc định trong trường hợp thuộc tính không được xác định ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
92Trong ví dụ này, ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
552 chỉ ra rằng ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
504 là tùy chọn, vì vậy có thể là ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
554. ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
555 hiện có một biến cho ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
556 cũng như các thuộc tính ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
32 và ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
504, ngay cả khi ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
504 không được xác địnhkhai báo hàmViệc hủy cấu trúc cũng hoạt động trong khai báo hàm. Đối với các trường hợp đơn giản, điều này là đơn giản ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
93Nhưng việc chỉ định các giá trị mặc định phổ biến hơn đối với các tham số và việc xác định đúng các giá trị mặc định bằng cách hủy có thể khó khăn. Trước hết, bạn cần nhớ đặt mẫu trước giá trị mặc định ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
94Đoạn mã trên là một ví dụ về suy luận kiểu, đã được giải thích trước đó trong sổ tay
Sau đó, bạn cần nhớ đặt mặc định cho các thuộc tính tùy chọn trên thuộc tính bị hủy cấu trúc thay vì trình khởi tạo chính. Hãy nhớ rằng ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
560 được xác định với tùy chọn ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
504ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
95Sử dụng phá hủy một cách cẩn thận. Như ví dụ trước cho thấy, bất cứ điều gì ngoại trừ biểu thức phá hủy đơn giản nhất đều khó hiểu. Điều này đặc biệt đúng với việc phá hủy được lồng sâu, điều này thực sự khó hiểu ngay cả khi không chồng chất đổi tên, giá trị mặc định và chú thích loại. Cố gắng giữ cho các biểu thức phá hủy nhỏ và đơn giản. Bạn luôn có thể viết các bài tập mà việc phá hủy sẽ tự tạo ra Lây lanToán tử trải rộng ngược lại với phá hủy. Nó cho phép bạn trải một mảng thành một mảng khác hoặc một đối tượng thành một đối tượng khác. Ví dụ ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
96Điều này mang lại cho bothPlus giá trị ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
562. Trải rộng tạo ra một bản sao nông của ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
538 và ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
539. Chúng không bị thay đổi bởi sự lây lanBạn cũng có thể lây lan các đối tượng ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
97Bây giờ ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
565 là ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
566. Trải rộng đối tượng phức tạp hơn trải rộng mảng. Giống như mảng trải rộng, nó tiến hành từ trái sang phải, nhưng kết quả vẫn là một đối tượng. Điều này có nghĩa là các thuộc tính xuất hiện sau trong đối tượng trải rộng sẽ ghi đè lên các thuộc tính xuất hiện trước đó. Vì vậy, nếu chúng ta sửa đổi ví dụ trước để trải rộng ở cuốits function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
98Sau đó, thuộc tính ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
567 trong ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
568 ghi đè lên ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
569, đây không phải là điều chúng tôi muốn trong trường hợp nàyTrải rộng đối tượng cũng có một vài giới hạn đáng ngạc nhiên khác. Đầu tiên, nó chỉ bao gồm các thuộc tính vô số của riêng một đối tượng. Về cơ bản, điều đó có nghĩa là bạn mất các phương thức khi trải rộng các thể hiện của một đối tượng ts function sumMatrix(matrix: number[][]) { var sum = 0; for (var i = 0; i < matrix.length; i++) { var currentRow = matrix[i]; for (var i = 0; i < currentRow.length; i++) { sum += currentRow[i]; } } return sum; }
99Thứ hai, trình biên dịch TypeScript không cho phép trải rộng các tham số kiểu từ các hàm chung. Tính năng đó được mong đợi trong các phiên bản tương lai của ngôn ngữ
Biến JavaScript nào không được khai báo?
Bạn không thể khai báo một biến trùng lặp bằng cách sử dụng từ khóa let có cùng tên và viết thường. JavaScript sẽ đưa ra một lỗi cú pháp. Mặc dù, các biến có thể có cùng tên nếu được khai báo bằng từ khóa var (đây là lý do tại sao nên sử dụng let ).
Từ khóa nào Không thể được sử dụng để khai báo một biến trong JavaScript?
Chúng tôi không thể sử dụng bất kỳ từ khóa dành riêng nào ( function, return, typeof, break , v.v. ) của Javascript dưới dạng tên biến.
Có bao nhiêu loại chúng ta có thể khai báo biến trong JavaScript?
JavaScript có ba kiểu khai báo biến. Khai báo một biến, tùy ý khởi tạo nó thành một giá trị.
Không thể là một tên biến trong JavaScript?
Tên biến không được là từ khóa . Ví dụ: từ 'let' được coi là từ khóa trong JavaScript. Do đó, bạn không thể định nghĩa một biến gọi là 'let'. Đoạn mã sau dẫn đến lỗi. |