Chúng ta có thể khai báo biến trong javascript không?
Có, bạn có thể sử dụng một biến JavaScript trước khi nó được khai báo, với một kỹ thuật gọi là cẩu. Trình phân tích cú pháp đọc qua chức năng hoàn chỉnh trước khi chạy nó Show
Hành vi trong đó một biến dường như được sử dụng trước khi nó được khai báo được gọi là cẩu Ví dụ, sau đây, rank = 5; var rank; Phần trên hoạt động giống như phần sau - var rank; rank = 2; Hoisting trong JavaScript, cho phép chúng ta khai báo các biến, hàm hoặc lớp được di chuyển lên đầu phạm vi trước khi thực thi mã bất kể phạm vi của chúng là cục bộ hay toàn cầu JavaScript phân bổ bộ nhớ cho tất cả các biến và hàm trước khi thực thi chúng. Lưu ý rằng cẩu có nghĩa là khai báo không khởi tạo Do các biến và hàm được sử dụng trước khi chúng được khai báo trong mã nên có khả năng gặp phải các lỗi không mong muốn. Vì vậy, cẩu không được khuyến khích sử dụng. Palăng sẽ hoạt động khác với var, let và const. Chúng ta có thể kiểm tra bên dưới một cách chi tiết Đầu tiên, chúng ta sẽ kiểm tra các ví dụ về cẩu với var. Sau này chúng ta sẽ kiểm tra chi tiết về biến cẩu Ví dụ
Ở đây, chúng ta có thể thấy rằng chúng ta đã sử dụng biến x trước khi nó được khai báo Bây giờ, chúng ta sẽ chỉ kiểm tra các khai báo của Palăng JavaScript chứ không kiểm tra các khởi tạo. Hãy xem một ví dụ khác Ví dụ
Tại đây, chúng ta có thể kiểm tra phương tiện cẩu y cần được khởi tạo trước khi sử dụng. Nhưng y không được khởi tạo. Vì vậy, đây không phải là cẩu. Đó là lý do tại sao giá trị y không được xác định. Chúng ta có thể viết đúng như đã đề cập trong ví dụ 1 Ví dụHoists only declarations Ở đây, biến y được khai báo nhưng không được khởi tạo trước khi hiển thị JavaScript chỉ nâng khai báo, không khởi tạo Luôn lưu ý rằng, trong nền, trước tiên, JavaScript khai báo các biến và khởi tạo giá trị cho chúng. Trong JS, các biến không được khai báo không tồn tại cho đến khi mã được gán được thực thi. Vì vậy, các biến không được khai báo được coi là biến toàn cục khi mã gán được thực thi. Hãy tìm hiểu sâu hơn về biến cẩu let và const cẩuTất cả chúng ta đều biết let và, const là phạm vi khối chứ không phải phạm vi chức năng. let và const được giới thiệu trong ES6. Chúng tôi biết ES6 sẽ không cho phép các giá trị không được khai báo. Nếu chúng ta cố gắng sử dụng các biến trước khi khai báo, nó sẽ báo lỗi tham chiếu. Không giống như var, các biến không được khởi tạo với giá trị mặc định. Hãy xem một ví dụ Ví dụ
Ở đây, chúng ta có thể quan sát thấy rằng chúng ta đang cố truy cập giá trị x trước khi khai báo. Hãy xem một ví dụ khác với let Ví dụ
Bây giờ, hãy kiểm tra với const cẩu với constGiống như let, chúng ta không thể sử dụng biến trước khi khai báo, và chúng ta cũng không thể chỉ khai báo biến mà còn phải khởi tạo giá trị cho biến. Nếu không, nó sẽ báo lỗi SyntaxError. Hãy xem một ví dụ Ví dụHoisting with const Chúng ta cần khởi tạo giá trị trong khi khai báo Ví dụ________số 8Giống như, ví dụ trên cũng không thể thực hiện được với const. Nó sẽ đưa ra một lỗi tham chiếu Bây giờ, hãy xem cẩu với các chức năng cẩu chức năngChức năng cẩu cho phép chúng ta gọi một chức năng trước khi nó được xác định. Hãy xem một ví dụ Ví dụ
Nếu các biểu thức hàm được gán cho các biến. Một đầu ra sẽ phụ thuộc vào phạm vi biến. Thích, Ví dụvar rank; rank = 2;0 Ví dụvar rank; rank = 2;1 Ví dụvar rank; rank = 2;2 Ở đây chúng ta có thể quan sát thấy rằng các hàm có biến sẽ hoạt động khác. Nếu chúng ta gán các biểu thức hàm là var, chúng ta sẽ nhận được TypeError và với let và const, chúng ta sẽ nhận được ReferenceError Tuy nhiên, việc sử dụng các hàm trước khi khai báo chúng là vấn đề ưu tiên cá nhân của chúng tôi Hy vọng hướng dẫn này sẽ cung cấp kiến thức về hoisting trong js và hoisting hoạt động với biến và hàm Điều quan trọng nhất khi học JavaScript là khối xây dựng cơ bản của nó, tôi. e. , Biến Javascript. Người ta phải biết cách khai báo một biến và các quy tắc khi khai báo Biến JavaScript. Nếu một người tuân theo tất cả các quy tắc trong khi khai báo một biến, người đọc thậm chí có thể hiểu mục đích của một biến cụ thể. Do đó, các biến đóng một vai trò quan trọng trong ngôn ngữ lập trình, vì nó được sử dụng để lưu trữ các giá trị Phạm vi của Điều
Giới thiệu về biến JavascriptTrong JavaScript, một biến là tên được đặt cho một vị trí bộ nhớ được sử dụng để lưu trữ bất kỳ loại dữ liệu nào. Như tên cho thấy, các biến có nghĩa là nó có thể thay đổi, tôi. e. , dữ liệu được lưu trữ trong một biến có thể được thay đổi hoặc cập nhật sau trong chương trình nếu được yêu cầu. Tóm lại, một biến là một tên tượng trưng cho (hoặc tham chiếu đến) một dữ liệu hoặc một phần thông tin Điểm nổi bật. Biến Javascript là một vùng chứa, không phải giá trị, điều này có nghĩa là bản thân các biến không phải là giá trị; Ví dụ. Hãy nghĩ về một hộp có tên Tuổi lưu trữ tuổi của một người. Vì vậy, tên là tên biến và tuổi được lưu trữ trong đó là giá trị Quy tắc/Định danh trong khi khai báo biến JavascriptĐể khai báo một biến Javascript, người ta phải biết các quy tắc để tuân theo, vì người ta có thể làm rối mã trong khi khai báo một biến. Nếu một người không tuân theo các quy tắc, anh ấy / cô ấy có thể sẽ gặp lỗi Các quy tắc như sau
Điểm quan trọng
ví dụ
var rank; rank = 2;3
var rank; rank = 2;4
var rank; rank = 2;5 ::: Cú pháp (Đúng và Sai)Sau khi biết Biến Javascript là gì và các quy tắc khai báo nó, chúng ta sẽ đi sâu vào cú pháp khai báo Cú pháp đúngvar rank; rank = 2;6 Các dòng trên là cú pháp đúng để khai báo một biến. Chúng tôi sẽ có thông tin chi tiết về khai báo một biến sau trong bài viết này ví dụ var rank; rank = 2;7 Cú pháp saiChúng ta không nên khai báo biến bằng cách sử dụng các ví dụ sau var rank; rank = 2;8 Khai báo một biếnNgười ta phải tạo một biến trước khi sử dụng nó. Trong thuật ngữ lập trình, chúng tôi gọi đây là khai báo một biến. Trong Javascript, chúng ta có thể khai báo một biến bằng cách sử dụng từ khóa let, var hoặc const var rank; rank = 2;9 Ở đây chúng tôi đang tạo hai biến, một sử dụng let và một sử dụng var. Bạn thậm chí có thể thử viết những dòng này trong bảng điều khiển của trình duyệt web của mình Hiện tại, các biến này không lưu trữ bất kỳ giá trị nào, chúng chỉ được khai báo. Nói cách khác, chúng ta có một ô trống có tên trườngTên và địa chỉ Nếu bạn muốn xem giá trị của tên trường, đầu ra sẽ không xác định. Chúng ta sẽ xem ý nghĩa của từ không xác định trong phần sau Khai báo biến không có từ khóa Var?Chúng ta đã thấy cách khai báo một biến với var. Bây giờ chúng ta sẽ xem cách chúng ta có thể khai báo một biến mà không sử dụng var hay let Để khai báo một biến mà không cần sử dụng bất kỳ từ khóa nào, chúng ta chỉ cần viết tên biến và phải gán giá trị cho biến đó. Khi làm điều này, biến trở thành biến toàn cục (dòng này có nghĩa là phạm vi của biến là toàn cầu. Phạm vi của biến được mô tả sau trong bài viết này. ) 0 Hãy thử chạy các dòng trên trong bảng điều khiển của trình duyệt web của bạn Tuy nhiên, không nên khai báo một biến mà không sử dụng var vì nó có thể làm thay đổi giá trị của một biến toàn cục đã tồn tại Ghi chú 1 Dòng này không phải là một tuyên bố. Nếu bạn thực thi dòng này trong bảng điều khiển, nó sẽ cung cấp cho bạn giá trị của tuổi nếu nó đã được khai báo, nếu không sẽ dẫn đến ReferenceError Khởi tạo một biếnSau khi bạn đã khai báo một biến, bạn có thể khởi tạo biến đó với một giá trị. Việc khởi tạo này có thể được thực hiện bằng cách chỉ cần viết tên biến theo sau là dấu bằng và sau đó là giá trị bạn muốn biến lưu trữ 2 Bây giờ, hãy thử viết những dòng này trong bảng điều khiển. Viết xong những dòng này, bạn chỉ việc viết tên biến và nhấn enter, kết quả xuất ra sẽ là giá trị lưu trong đó var rank; rank = 2;40 Ghi chú. Bạn thậm chí có thể khai báo và khởi tạo một biến trong một dòng. Ví dụ var rank; rank = 2;41 Không xác định so với. Biến không được khai báobiến không xác địnhSau khi học phần khởi tạo và khai báo biến, các bạn đã thấy khi chúng ta khai báo biến mà không khởi tạo biến thì gọi là biến không xác định. Tức là biến được khai báo nhưng không khởi tạo giá trị Ví dụ var rank; rank = 2;42 biến không được khai báoGiả sử bạn muốn sử dụng một biến trong câu lệnh, nhưng biến đó không được khai báo trước đó. Trong trường hợp này, mã sẽ ném ReferenceError vì biến không được khai báo bằng từ khóa var. Nói tóm lại, nếu chúng ta truy cập bất kỳ biến nào không được khai báo, mã sẽ gây ra lỗi thời gian chạy Ví dụ Hãy thử chạy dòng trên trong bảng điều khiển và bạn sẽ gặp lỗi hiển thị rằng ==ReferenceError. xyz không được xác định ==. Điều này chỉ ra rằng xyz không được khai báo trước đó, bạn đang cố truy cập vào một biến không được khai báo Chế độ không nghiêm ngặtChế độ không nghiêm ngặt mặc định trong javascript đôi khi được gọi là chế độ cẩu thả Trong Javascript, trừ khi chúng ta viết 'sử dụng nghiêm ngặt' bên trong mã, mã vẫn ở chế độ không nghiêm ngặt. Ở chế độ không nghiêm ngặt, bạn có ít hạn chế hơn trong việc viết mã, chẳng hạn như
chế độ nghiêm ngặtJavaScript đã giới thiệu chế độ nghiêm ngặt trong ECMAScript 5. Chế độ này là một cách để tải phiên bản JavaScript bị hạn chế, tôi. e. , có một số hạn chế trong khi viết mã. Lợi ích của việc sử dụng chế độ nghiêm ngặt
Chúng tôi có thể làm cho toàn bộ mã (phạm vi toàn cầu) hoặc các chức năng riêng lẻ chạy ở chế độ nghiêm ngặt. Để làm cho một chức năng hoặc toàn bộ tập lệnh chạy ở chế độ nghiêm ngặt, chúng ta chỉ cần viết 'sử dụng nghiêm ngặt' khi bắt đầu Hạn chế khai báo biến trong chế độ nghiêm ngặt
Nâng cấp biến JavaScriptTính năng quan trọng và độc đáo nhất trong JavaScript là Variable Hoisting hoặc var Hoisting. Trong JavaScript, tất cả các khai báo biến được xử lý trước khi bất kỳ phần nào khác của mã được thực thi. Do đó, khai báo tất cả các biến ở đầu mã. Tính năng này được gọi là hoisting trong JavaScript. Các khai báo được di chuyển lên đầu mã chung hoặc lên đầu hàm, tùy thuộc vào vị trí khai báo. Việc di chuyển các khai báo lên đầu hàm hoặc mã toàn cầu này được thực hiện tự động bởi chính JS trong nội bộ. Chúng tôi không thực sự thấy sự thay đổi. Điều này sẽ được xóa bởi các ví dụ dưới đây. Hoisting cũng khởi tạo biến với "undefined" Ví dụ var rank; rank = 2;45 Đoạn mã trên giống như var rank; rank = 2;46 Ghi chú. Hoisting chỉ di chuyển khai báo lên đầu phạm vi (toàn cầu hoặc chức năng). Nó không bao giờ di chuyển các dòng phân công Ví dụ var rank; rank = 2;47 Mặc dù theo mặc định, hoisting giúp khai báo các biến ở trên cùng, nhưng chúng tôi khuyên bạn nên khai báo các biến ở đầu một hàm hoặc toàn cục theo cách thủ công vì người ta có thể bị nhầm lẫn nếu họ sử dụng một biến trước khi khai báo nó. Ghi chú. Các biến được khai báo bằng let và const cũng được nâng lên nhưng chúng không được khởi tạo với undefined. Vì vậy, nếu ai đó cố gắng sử dụng các biến trước khi khai báo, thì nó sẽ đưa ra một ngoại lệ Sự khác biệt giữa 'var' và 'let'Bạn có thể thắc mắc let là gì, vì chúng tôi chưa thảo luận chi tiết về nó. Ở đây chúng tôi sẽ giải thích sự khác biệt giữa var và let. Trước hết, cả hai từ khóa đều được sử dụng để khai báo biến trong JavaScript
Hãy thử các mã dưới đây trong bảng điều khiển của trình duyệt của bạn và bạn sẽ hiểu rõ hơn ví dụ 1 var rank; rank = 2;48 ví dụ 2 var rank; rank = 2;49 Trong trường hợp này, phạm vi của biến y chỉ giới hạn trong hàm, chính vì vậy mà chúng ta không thể tìm thấy tham chiếu đến biến y bên ngoài hàm, từ đó dẫn đến lỗi tham chiếu. Chúng tôi sẽ mô tả Phạm vi biến trong phần sau của bài viết này Thay đổi Giá trị/Cập nhật BiếnKhi một biến được khai báo hoặc khởi tạo, chúng ta có thể thay đổi giá trị của nó mọi lúc mọi nơi trong phạm vi của nó. Nó tương tự như khởi tạo lại biến. Chúng tôi có thể cập nhật/thay đổi giá trị bằng cách chỉ cần nhập tên biến theo sau là dấu bằng và sau đó là giá trị mới mà chúng tôi muốn lưu trữ Ví dụ var rank; rank = 2;50 Phạm vi biến JavaScriptPhạm vi của một biến có nghĩa là, khả năng hiển thị của một biến. Đó là, các phần của chương trình của chúng tôi nơi bạn có thể sử dụng một biến Trong JavaScript, chỉ có hai loại phạm vi biến Biến cục bộ JavaScriptBiến cục bộ chỉ hiển thị bên trong một hàm nơi nó được xác định. Chúng ta không thể sử dụng biến cục bộ bên ngoài hàm mà nó được xác định. Khi làm như vậy, nó sẽ dẫn đến lỗi tham chiếu Ví dụ var rank; rank = 2;51 Biến toàn cục JavaScriptBiến toàn cục có phạm vi toàn cầu, có nghĩa là nó có thể được sử dụng và xem ở mọi nơi trong chương trình Ví dụ. Chúng ta có thể sử dụng một biến được khai báo toàn cầu bên trong một hàm var rank; rank = 2;52 Vì global_var được khai báo trên toàn cục nên nó có thể được sử dụng bên trong hàm cũng như bên ngoài hàm (i. e. trong phạm vi toàn cầu) Các từ dành riêng cho JavaScriptTrong Javascript có một số từ khóa dành riêng không thể dùng làm tên biến. Một số từ dành riêng được đưa ra trong bảng này breakcasecatch classconst continuetrình gỡ lỗimặc địnhxóadoelsexuất kéo dàicuối cùng cho chức năngnếunhậptrongtrường hợpmớitrở lạisiêu chuyển đổicái nàynémthửloạicủavarvoidtrong khivới Javascript Dynamic TypingBạn có thể đã nghe nói rằng JavaScript được gọi là "ngôn ngữ được gõ động". Điều này có nghĩa là kiểu dữ liệu của một biến không cố định. Một biến có thể lưu trữ bất kỳ loại dữ liệu nào và người dùng có thể đạt được điều này mà không cần chỉ định loại dữ liệu mà họ muốn lưu trữ (ví dụ:. số, chuỗi, đối tượng, mảng, v.v.) Ngoài ra, người ta có thể thay đổi giá trị được lưu trữ thành bất kỳ loại dữ liệu nào, bất cứ lúc nào một cách tự do ví dụ var rank; rank = 2;53 Hãy thử chạy những dòng này trong bảng điều khiển để hiểu rõ hơn Hằng JavaScriptBạn đã thấy rằng các biến là những giá trị có thể thay đổi nếu cần. Giờ đây, JavaScript cũng cho phép bạn khai báo các hằng số. Chúng tôi khai báo một hằng số bằng cách sử dụng từ khóa const; cú pháp var rank; rank = 2;54 Các hằng số này tương tự như các biến nhưng có một số thuộc tính khác với các biến, chẳng hạn như
ví dụ 1 var rank; rank = 2;55 ví dụ 2 var rank; rank = 2;56 Ghi chú. Mặc dù chúng ta không thể thay đổi giá trị của hằng nhưng nếu giá trị của hằng là một đối tượng thì chúng ta có thể sửa đổi thuộc tính của đối tượng Ví dụ var rank; rank = 2;57 Bạn thậm chí có thể thêm, cập nhật hoặc xóa các thuộc tính khỏi một đối tượng không đổi, bởi vì bạn chỉ đang thay đổi các chi tiết của đối tượng chứ không phải tham chiếu. Hằng số sẽ vẫn trỏ đến cùng một đối tượng Bạn có thể khai báo loại biến trong JavaScript không?Bạn có thể khai báo các biến để giải nén các giá trị bằng cách sử dụng cú pháp gán phá hủy . Ví dụ: const {bar} = foo. Điều này sẽ tạo một biến có tên là bar và gán cho nó giá trị tương ứng với khóa cùng tên từ đối tượng foo của chúng ta. Các biến phải luôn được khai báo trước khi chúng được sử dụng.
Chúng ta có thể khai báo biến không có var trong JavaScript không?myVariable = 'abc'; . Nó đơn giản có nghĩa là bạn đã tạo một biến toàn cục. Kết quả hiển thị test , có nghĩa là nó hoạt động
Điều gì xảy ra khi chúng ta khai báo một biến trong JavaScript?Nếu bạn sử dụng từ khóa này để khai báo một biến thì biến sẽ chỉ có thể truy cập được trong khối đó tương tự như biến được xác định bằng cách sử dụng let . Vì vậy chúng ta nên gán giá trị trong khi khai báo biến. |