You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 1-js/03-code-quality/01-debugging-chrome/article.md
+19-19Lines changed: 19 additions & 19 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -33,7 +33,7 @@ Giờ đây, bạn có thể nhấp lại vào nút chuyển đổi <span class=
33
33
34
34
## Bảng điều khiển
35
35
36
-
Nếu chúng ta nhấn `key:Esc`, thì bảng điều khiển(console) sẽ mở ra bên dưới. Chúng ta có thể gõ lệnh ở đó và nhấn `key:Enter` để thực thi.
36
+
Nếu chúng ta nhấn `key:Esc`, thì bảng điều khiển(console) sẽ mở ra bên dưới. Chúng ta có thể gõ lệnh ở đó và nhấn `key:Enter` để thực thi.
37
37
38
38
Sau khi một câu lệnh được thực thi, kết quả của nó được hiển thị bên dưới.
39
39
@@ -95,22 +95,22 @@ Khi điểm ngắt được đặt, quá trình thực thi tạm dừng ở dòn
95
95
96
96
Vui lòng mở menu thả xuống thông tin ở bên phải (được đánh dấu bằng các mũi tên). Chúng cho phép bạn kiểm tra trạng thái mã hiện tại:
97
97
98
-
1.**`Xem` -- hiển thị các giá trị hiện tại cho bất kỳ biểu thức nào.**
98
+
1.**`Watch` -- hiển thị các giá trị hiện tại cho bất kỳ biểu thức nào.**
99
99
100
100
Bạn có thể nhấp vào dấu cộng `+` và nhập một biểu thức. Trình gỡ lỗi sẽ hiển thị giá trị của nó bất kỳ lúc nào, tự động tính toán lại giá trị đó trong quá trình thực thi.
101
101
102
-
2.**`Ngăn xếp cuộc gọi` -- hiển thị chuỗi cuộc gọi lồng nhau.**
102
+
2.**`Ngăn xếp cuộc gọi(Call Stack)` -- hiển thị chuỗi cuộc gọi lồng nhau.**
103
103
104
-
Tại thời điểm hiện tại, trình gỡ lỗi nằm trong lệnh gọi `hello()`, được gọi bởi một tập lệnh trong `index.html` (không có hàm nào ở đó, vì vậy nó được gọi là "ẩn danh").
104
+
Tại thời điểm hiện tại, trình gỡ lỗi nằm trong lệnh gọi `hello()`, được gọi bởi một tập lệnh trong `index.html` (không có hàm nào ở đó, vì vậy nó được gọi là "ẩn danh").
105
105
106
106
Nếu bạn nhấp vào một mục trong ngăn xếp (ví dụ: "ẩn danh"), trình gỡ lỗi sẽ chuyển đến mã tương ứng và tất cả các biến của nó cũng có thể được kiểm tra.
107
-
3.**`Phạm vi` -- biến hiện tại.**
107
+
3.**`Scope` -- biến hiện tại.**
108
108
109
-
`Cục bộ` hiển thị các biến hàm cục bộ. Bạn cũng có thể thấy các giá trị của chúng được đánh dấu ngay trên nguồn.
109
+
`Local` hiển thị các biến hàm cục bộ. Bạn cũng có thể thấy các giá trị của chúng được đánh dấu ngay trên nguồn.
110
110
111
-
`Global` có các biến toàn cục (ngoài bất kỳ hàm nào).
111
+
`Global` có các biến toàn cục (ngoài bất kỳ hàm nào).
112
112
113
-
Ngoài ra còn có từ khóa `this` mà chúng ta chưa nghiên cứu, nhưng chúng ta sẽ làm điều đó sớm thôi.
113
+
Ngoài ra còn có từ khóa `this` mà chúng ta chưa nghiên cứu, nhưng chúng ta sẽ làm điều đó sớm thôi.
114
114
115
115
## Theo dõi việc thực hiện
116
116
@@ -121,7 +121,7 @@ Có các nút cho nó ở trên cùng của bảng điều khiển bên phải.
121
121
<spanclass="devtools"style="background-position:-146px-168px"></span> -- "Resume": tiếp tục thực hiện, phím nóng `key:F8`.
122
122
: Tiếp tục thực thi. Nếu không có điểm dừng bổ sung, thì quá trình thực thi sẽ tiếp tục và trình gỡ lỗi sẽ mất quyền kiểm soát.
123
123
124
-
Đây là những gì chúng ta có thể thấy sau khi nhấp vào nó:
124
+
Đây là những gì chúng ta có thể thấy sau khi nhấp vào nó:
125
125
126
126

127
127
@@ -130,23 +130,23 @@ Có các nút cho nó ở trên cùng của bảng điều khiển bên phải.
130
130
<spanclass="devtools"style="background-position:-200px-190px"></span> -- "Step": chạy lệnh tiếp theo, phím nóng `key:F9`.
131
131
: Chạy câu lệnh tiếp theo. Nếu chúng ta nhấp vào nó ngay bây giờ, `alert` sẽ được hiển thị.
132
132
133
-
Nhấp đi bấm lại vào đây sẽ lần lượt duyệt qua tất cả các câu lệnh trong tập lệnh.
133
+
Nhấp đi bấm lại vào đây sẽ lần lượt duyệt qua tất cả các câu lệnh trong tập lệnh.
134
134
135
135
<spanclass="devtools"style="background-position:-62px-192px"></span> -- "Step over": chạy lệnh tiếp theo, nhưng *không đi vào hàm*, phím nóng `key :F10`.
136
136
: Tương tự như lệnh "Step" trước đó, nhưng hoạt động khác nếu câu lệnh tiếp theo là lệnh gọi hàm. Đó là: không phải là hàm tích hợp sẵn, như `alert`, mà là một hàm của riêng chúng ta.
137
137
138
-
Lệnh "Step" đi vào nó và tạm dừng thực thi ở dòng đầu tiên, trong khi "Step over" thực hiện lời gọi hàm lồng nhau một cách vô hình, bỏ qua các phần bên trong hàm.
138
+
Lệnh "Step" đi vào nó và tạm dừng thực thi ở dòng đầu tiên, trong khi "Step over" thực hiện lời gọi hàm lồng nhau một cách vô hình, bỏ qua các phần bên trong hàm.
139
139
140
-
Việc thực thi sau đó bị tạm dừng ngay sau hàm đó.
140
+
Việc thực thi sau đó bị tạm dừng ngay sau hàm đó.
141
141
142
-
Điều đó tốt nếu chúng ta không quan tâm đến việc xem điều gì xảy ra bên trong lời gọi hàm.
142
+
Điều đó tốt nếu chúng ta không quan tâm đến việc xem điều gì xảy ra bên trong lời gọi hàm.
: Điều đó tương tự như "Step", nhưng hoạt động khác trong trường hợp gọi hàm không đồng bộ. Nếu bạn chỉ mới bắt đầu học JavaScript, thì bạn có thể bỏ qua sự khác biệt, vì chúng ta chưa có cuộc gọi không đồng bộ.
146
146
147
-
Trong tương lai, chỉ cần lưu ý rằng lệnh "Step" bỏ qua các hành động không đồng bộ, chẳng hạn như `setTimeout` (gọi hàm theo lịch trình), thực thi sau. "Bước vào" đi vào mã của hàm, đợi hàm nếu cần. Xem [Hướng dẫn sử dụng DevTools](https://developers.google.com/web/updates/2018/01/devtools#async) để biết thêm chi tiết.
147
+
Trong tương lai, chỉ cần lưu ý rằng lệnh "Step" bỏ qua các hành động không đồng bộ, chẳng hạn như `setTimeout` (gọi hàm theo lịch trình), thực thi sau. "Bước vào" đi vào mã của hàm, đợi hàm nếu cần. Xem [Hướng dẫn sử dụng DevTools](https://developers.google.com/web/updates/2018/01/devtools#async) để biết thêm chi tiết.
148
148
149
-
<spanclass="devtools"style="background-position:-32px-194px"></span> -- "Step out": tiếp tục thực thi cho đến khi kết thúc hàm hiện tại, phím nóng `key:Shift+F11`.
149
+
<spanclass="devtools"style="background-position:-32px-194px"></span> -- "Step out": tiếp tục thực thi cho đến khi kết thúc hàm hiện tại, phím nóng `key:Shift+F11`.
150
150
: Tiếp tục thực thi và dừng nó ở dòng cuối cùng của hàm hiện tại. Điều đó rất hữu ích khi chúng ta vô tình tham gia một cuộc gọi lồng nhau bằng cách sử dụng <spanclass="devtools"style="background-position:-200px-190px"></span>, nhưng nó không khiến chúng ta quan tâm và chúng ta muốn tiếp tục đến cuối cuộc gọi đó sớm nhất có thể.
151
151
152
152
<spanclass="devtools"style="background-position:-61px-74px"></span> -- bật/tắt tất cả các điểm dừng.
@@ -155,17 +155,17 @@ Có các nút cho nó ở trên cùng của bảng điều khiển bên phải.
155
155
<spanclass="devtools"style="background-position:-90px-146px"></span> -- bật/tắt tự động tạm dừng trong trường hợp có lỗi.
156
156
: Khi được bật và các công cụ dành cho nhà phát triển đang mở, lỗi tập lệnh sẽ tự động tạm dừng quá trình thực thi. Sau đó, chúng ta có thể phân tích các biến để xem điều gì đã xảy ra. Vì vậy, nếu tập lệnh của chúng ta chết do lỗi, chúng ta có thể mở trình gỡ lỗi, bật tùy chọn này và tải lại trang để xem tập lệnh chết ở đâu và bối cảnh tại thời điểm đó là gì.
157
157
158
-
```smart header="Cntinue to here"
159
-
Nhấp chuột phải vào một dòng mã sẽ mở menu ngữ cảnh với một tùy chọn tuyệt vời có tên "Tiếp tục đến đây".
158
+
```smart header="Continue to here"
159
+
Nhấp chuột phải vào một dòng mã sẽ mở menu ngữ cảnh với một tùy chọn tuyệt vời có tên "Continue to here".
160
160
161
161
Điều đó rất hữu ích khi chúng ta muốn di chuyển nhiều bước về phía trước dòng, nhưng chúng ta quá lười để đặt điểm dừng.
162
162
```
163
163
164
164
## Ghi nhật ký
165
165
166
-
Để xuất nội dung nào đó ra bảng điều khiển từ mã của chúng ta, có chức năng`console.log`.
166
+
Để xuất nội dung nào đó ra bảng điều khiển từ mã của chúng ta, có một hàm là`console.log`.
167
167
168
-
Chẳng hạn, điều này xuất các giá trị từ `0` đến `4` sang bảng điều khiển:
168
+
Chẳng hạn, mã sau đây xuất các giá trị từ `0` đến `4` sang bảng điều khiển:
0 commit comments