Return to Video

Local and Global Variables (Video Version)

  • 0:01 - 0:03
    Giờ ta đã nắm vững các kiến thức cơ bản về hàm,
  • 0:03 - 0:07
    Tôi muốn nói về một chủ đề có thể hơi rắc rối:
  • 0:07 - 0:11
    sự khác biệt giữa các biến cục bộ (local) và toàn cục (global).
  • 0:11 - 0:14
    Những điều này có thể vô nghĩa với bạn vào lúc này.
  • 0:14 - 0:16
    Như vậy, hãy bắt đầu với một ví dụ.
  • 0:16 - 0:18
    Tôi đã viết chương trình này ở đây để chỉ cho bạn
  • 0:18 - 0:20
    Tôi đã cao lên bao nhiêu inch khi còn nhỏ.
  • 0:21 - 0:22
    Vì mỗi người lớn lên với tốc độ phát triển khác nhau,
  • 0:22 - 0:24
    Tôi đã viết ra hàm này, calcInches,
  • 0:24 - 0:27
    trong đó ta có thể truyền vào startAge và endAge,
  • 0:27 - 0:29
    và inchPerYear,
  • 0:30 - 0:32
    và sau đó nó sẽ tính tổng cộng tôi đã cao lên
  • 0:32 - 0:34
    bao nhiêu inch trong thời gian đó.
  • 0:35 - 0:37
    . . . và trả về kết quả bất cứ khi nào được gọi.
  • 0:37 - 0:40
    Như vậy, bạn có thể thấy ở đây từ 0 đến 8 năm,
  • 0:40 - 0:44
    Tôi gọi calcInches và tôi truyền vào 0, 8 và 2.5,
  • 0:44 - 0:48
    bởi vì tôi đã cao lên khoảng 2,5 inch mỗi năm.
  • 0:48 - 0:52
    Và, nó tính toán, và bạn có thể thấy nó trả về 20.
  • 0:52 - 0:58
    Sau đó, từ 8 đến 16, tôi gọi nó 'từ', và tôi truyền vào nó 8 và 16 và sau đó 2
  • 0:58 - 1:01
    bởi vì tôi đã không lớn lên quá nhiều và bạn có thể thấy nó trả ra 16.
  • 1:02 - 1:05
    Như vậy, trông gọn gàng đấy, nhưng giờ tôi muốn thực sự hiển thị
  • 1:05 - 1:08
    Tổng cộng tôi đã cao thêm bao nhiêu inch.
  • 1:09 - 1:14
    Vậy làm thế nào để tôi làm điều đó? Vâng, tôi có thể bắt đầu bằng cách đọc code
  • 1:14 - 1:17
    và suy nghĩ, "Hmm, ta có những giá trị nào ở đây?"
  • 1:17 - 1:20
    Tôi có thứ gì đó kiểu như biểu diễn tổng số inch?
  • 1:21 - 1:26
    Chà, tôi có biến totalInches này bên trong hàm calcInches,
  • 1:26 - 1:31
    vì vậy tôi chỉ có thể trả racái đó, xem nó nói gì; bắt đầu từ đó;
  • 1:31 - 1:36
    Như vậy, hãy gõ text(totalInches, 10, 200) và đặt nó xuống dưới.
  • 1:36 - 1:38
    Được rồi, hãy xem, ta có gì?
  • 1:38 - 1:41
    Oh, o-oh, ta đã có 'Oh không!' bạn thân mến.
  • 1:41 - 1:43
    Nó nói có một vấn đề.
  • 1:43 - 1:46
    totalInches không được định nghĩa (undefined).
  • 1:46 - 1:48
    Chà, thật lạ, vì ta
  • 1:48 - 1:52
    định nghĩa totalInches ngay tại đây, phải không? var totalInches =.
  • 1:52 - 1:54
    Vâng, vấn đề là ta đã định nghĩa
  • 1:54 - 1:59
    totalInches bên trong một hàm, trên dòng này ở đây.
  • 1:59 - 2:02
    Và khi ta khai báo một biến bên trong một hàm,
  • 2:02 - 2:04
    nó được coi là một biến cục bộ.
  • 2:05 - 2:09
    Nó chỉ tồn tại bên trong hàm này ở đây (calcInches).
  • 2:09 - 2:13
    Và code bên ngoài hàm, tất cả chỗ này, không thể thấy
  • 2:13 - 2:16
    biến cục bộ bên trong các hàm.
  • 2:16 - 2:18
    Nó chỉ thấy những gì được trả ra mà thôi.
  • 2:18 - 2:21
    Nó chỉ thấy giá trị chứ không phải là biến đó.
  • 2:21 - 2:25
    Như vậy, khi ta cố gắng sử dụng totalInches bên ngoài hàm,
  • 2:25 - 2:26
    máy tính không biết nó là gì,
  • 2:26 - 2:29
    và nói 'Này, tôi chưa bao giờ thấy biến này trước đây.
  • 2:29 - 2:31
    Nó không được định nghĩa. Tôi không thể hiển thị nó. '
  • 2:32 - 2:35
    Như vậy, có một cách mà ta có thể làm
  • 2:35 - 2:37
    để code bên ngoài có thể thấy biến này.
  • 2:37 - 2:42
    Và đó là khi ta biến một biến cục bộ thành một biến toàn cục.
  • 2:43 - 2:47
    Ta có thể làm điều đó bằng cách đặt định nghĩa bên ngoài hàm,
  • 2:48 - 2:50
    vào cái gọi là phạm vi toàn cục.
  • 2:51 - 2:54
    Và giờ, bên trong hàm, tất cả ta đang làm
  • 2:54 - 2:58
    là thay đổi giá trị của nó trong mỗi lần gọi, mà không định nghĩa và khai báo nó.
  • 2:59 - 3:02
    Như vậy, bạn có thể thấy rằng nó ghi 'Tổng số chiều cao trong suốt cuộc đời: 16'
  • 3:03 - 3:06
    Như vậy, nó tìm thấy biến vì ta đã biến nó thành một biến toàn cục.
  • 3:07 - 3:10
    Nhưng nó không thực sự là giá trị mà ta đang tìm kiếm.
  • 3:10 - 3:12
    Đó chỉ là giá trị gần nhất.
  • 3:12 - 3:14
    Và đó là vì mỗi lần gọi hàm này,
  • 3:14 - 3:18
    nó gán totalInches cho bất cứ giá trị nào tính toán tại thời điểm đó. Đúng không?
  • 3:19 - 3:22
    Như vậy, những gì ta thực sự muốn làm là, ta muốn một biến mới
  • 3:22 - 3:25
    chỉ sử dụng để lưu trữ toàn cục
  • 3:25 - 3:28
    những gì ta thêm vào sau mỗi lần tính toán, bạn biết đấy, tổng số cho một vùng,
  • 3:29 - 3:33
    Như vậy, hãy biến cái này trở thành một biến cục bộ,
  • 3:34 - 3:38
    và hãy tạo một biến toàn cục mới gọi là lifeInches,
  • 3:38 - 3:40
    và ta sẽ bắt đầu nó ở giá trị 0
  • 3:41 - 3:45
    Và sau đó bên trong hàm, ta sẽ thêm vào biến toàn cục này
  • 3:45 - 3:49
    bằng cách gõ lifeInches + = totalInches.
  • 3:49 - 3:52
    Như vậy, ta sẽ cộng vào, tuy nhiên phải tính toán nhiều
  • 3:52 - 3:53
    mỗi lần ta gọi hàm này,
  • 3:53 - 3:56
    ta sẽ cộng nó vào biến toàn cục lifeInches.
  • 3:56 - 3:58
    Và sau đó ở phía dưới,
  • 3:58 - 4:00
    ta sẽ hiển thị lifeInches: text(lifeInches, 10, 200).
  • 4:00 - 4:03
    Tada! tổng trưởng thành trong cuộc đời.
  • 4:04 - 4:06
    Giờ nó vẫn chưa thực là chiều cao của tôi. Tôi cao hơn thế.
  • 4:06 - 4:08
    Nhưng đó là bởi vì bạn biết,
  • 4:08 - 4:11
    ta bắt đầu sinh ra với chiều cao > 0.
  • 4:11 - 4:14
    Như vậy, nếu muốn tổng số, có lẽ tôi có thể bắt đầu từ giá trị 20.
  • 4:14 - 4:17
    Và đi thôi, đó là chiều cao của tôi.
  • 4:17 - 4:20
    Được rồi Như vậy, hãy cùng xem xét, totalInches
  • 4:20 - 4:22
    được gọi là một biến cục bộ.
  • 4:22 - 4:24
    Và ta biết vậy bởi ta thấy khai báo của nó
  • 4:24 - 4:27
    bên trong hàm này và không có bên ngoài hàm.
  • 4:29 - 4:31
    Và điều đó có nghĩa là code bên ngoài này ở đây
  • 4:31 - 4:34
    không biết về biến có tên totalInches.
  • 4:35 - 4:38
    Giờ lifeInches là thứ mà ta gọi là biến toàn cục.
  • 4:38 - 4:40
    Và ta biết rằng bởi ta thấy khai báo của nó
  • 4:40 - 4:43
    bên ngoài của bất kỳ hàm trong phạm vi toàn chương trình.
  • 4:44 - 4:45
    Như vậy, hãy cố gắng ghi nhớ điều này khi
  • 4:45 - 4:47
    bạn đang viết các hàm và các biến.
  • 4:47 - 4:49
    Và tự suy nghĩ xem bạn có muốn
  • 4:49 - 4:51
    nó là biến cục bộ cho riêng 1 hàm sử dụng,
  • 4:51 - 4:55
    hoặc một biến toàn cục cho toàn bộ chương trình sử dụng.
  • 4:55 - 4:57
    Và đừng lo lắng nếu điều này khó khăn xoắn não bạn.
  • 4:57 - 5:00
    Đây là một trong những khái niệm khó nhất trong lập trình nói chung,
  • 5:00 - 5:02
    và trong JavaScript nói riêng.
  • 5:02 - 0:00
    Và đó là kỹ năng bạn cải thiện dần khi tiếp tục luyện tập.
Title:
Local and Global Variables (Video Version)
Description:

more » « less
Video Language:
English
Duration:
05:06

Vietnamese subtitles

Incomplete

Revisions