Cách chuyển giá trị cơ sở dữ liệu sang hàm javascript
Trong JavaScript, khi một hàm được gọi, các đối số có thể được truyền theo hai cách, Truyền theo giá trị hoặc Truyền theo tham chiếu (địa chỉ). Các loại dữ liệu nguyên thủy như chuỗi, số, null, không xác định và boolean, được truyền theo giá trị trong khi các loại dữ liệu không nguyên thủy như đối tượng, mảng và hàm được truyền theo tham chiếu trong Javascript Show
Phạm vi của Điều khoản
Các kiểu dữ liệu nguyên thủy và không nguyên thủyTrước khi hiểu về pass-by-value và pass-by-reference trong JavaScript, trước tiên, hãy hiểu kiểu dữ liệu nguyên thủy và không nguyên thủy là gì. Vì vậy, trong JavaScript, các loại dữ liệu được chia thành hai loại lớn Các kiểu dữ liệu như chuỗi, số, null, không xác định, ký hiệu và boolean thuộc danh mục kiểu dữ liệu Nguyên thủy, trong khi tất cả các đối tượng, mảng và hàm thuộc danh mục kiểu dữ liệu không nguyên thủy hoặc tham chiếu Sự khác biệt chính giữa nguyên thủy và không nguyên thủy là nguyên thủy là bất biến. e. không có cách nào để thay đổi giá trị nguyên thủy sau khi nó được tạo, trong khi giá trị không nguyên thủy có thể thay đổi được. e. giá trị của một đối tượng có thể được thay đổi sau khi nó được tạo ra Kiểu dữ liệu nguyên thủy
Ghi chú
Để hiểu điều này, chúng ta cần chia quá trình thành các bước
Do đó, chúng tôi đi đến kết luận rằng giá trị được tạo trước đó không bị sửa đổi, nó được gửi để thu gom rác trong khi biến 'myString' hiện trỏ đến không gian bộ nhớ mới được tạo, có "Scaler Academy" được lưu trữ trong đó. Nói một cách đơn giản, chúng ta chỉ tạo biến trỏ đến một không gian khác trong bộ nhớ và không sửa đổi giá trị hiện tại của nó Các kiểu dữ liệu nguyên thủy được so sánh theo giá trị. Nếu hai giá trị giống nhau, thì chúng hoàn toàn bằng nhau
Ghi chú. Trong JavaScript, các giá trị nguyên thủy được lưu trữ trên ngăn xếp, trong khi các giá trị không nguyên thủy được lưu trữ trong một đống Truyền theo giá trị trong JavaScriptTruyền giá trị trong JavaScript có nghĩa là một bản sao giá trị của tham số thực tế được tạo trong bộ nhớ i. e. , cấp phát bộ nhớ mới được thực hiện và tất cả các thay đổi được thực hiện trong giá trị mới đó (i. e. , giá trị được sao chép). Giá trị ban đầu và giá trị được sao chép độc lập với nhau vì cả hai đều có một không gian khác nhau trong bộ nhớ i. e. , khi thay đổi giá trị bên trong hàm thì biến bên ngoài hàm không bị ảnh hưởng Nói một cách đơn giản, chúng ta có thể hiểu là, trong một giá trị truyền vào, hàm nhận một bản sao của biến, bản sao này độc lập với biến ban đầu được truyền vào Truyền giá trị trong JavaScript yêu cầu nhiều không gian hơn vì các hàm nhận được một bản sao của nội dung thực, do đó, một biến mới được tạo trong bộ nhớ Trong khái niệm này, toán tử bằng đóng một vai trò lớn. Khi chúng ta tạo một biến, toán tử bằng sẽ thông báo xem bạn đang gán cho biến đó một giá trị nguyên thủy hay không nguyên thủy và sau đó hoạt động tương ứng Ghi chú. Khi chúng ta sử dụng toán tử =, sẽ có một lệnh gọi hàm (đằng sau) trong đó việc chuyển giá trị (hoặc tham chiếu) trong JavaScript được thực hiện Khi chúng ta gán cho một biến một giá trị nguyên thủy, toán tử bằng sẽ thiết lập một khoảng trống (vị trí/địa chỉ) trong bộ nhớ (giả sử tại địa chỉ 2001) để lưu trữ dữ liệu của biến đó (num1) vào địa chỉ đó Bây giờ, khi chúng ta tạo một biến mới num2 (ví dụ như ở địa chỉ 2002) và gán cho nó giá trị của biến trước đó num1, toán tử bằng sẽ tạo KHÔNG GIAN MỚI trong bộ nhớ độc lập với biến trước đó num1 có địa chỉ 2001 và đặt bản sao của nó . Do đó, điều này sao chép giá trị của biến ban đầu, num1, vào hai vị trí riêng biệt trong bộ nhớ (với địa chỉ 2001 và 2002)
Chuyển qua tham chiếu trong JavaScriptKhông giống như truyền theo giá trị trong JavaScript, truyền theo tham chiếu trong JavaScript không tạo khoảng trống mới trong bộ nhớ, thay vào đó, chúng ta truyền tham chiếu/địa chỉ của tham số thực, nghĩa là hàm có thể truy cập giá trị ban đầu của biến. Như vậy, nếu chúng ta thay đổi giá trị của biến bên trong hàm thì giá trị ban đầu cũng bị thay đổi theo. Nó không tạo bản sao, thay vào đó, nó hoạt động trên biến ban đầu, vì vậy tất cả các thay đổi được thực hiện bên trong hàm cũng ảnh hưởng đến biến ban đầu Không giống như giá trị truyền qua trong JavaScript, ở đây, khi toán tử bằng xác định rằng biến obj1 được đặt bằng một đối tượng, nó sẽ tạo một không gian bộ nhớ mới và trỏ obj1 đến 3005(giả định địa chỉ). Bây giờ, khi chúng ta tạo một biến mới, obj2 và gán nó với giá trị của obj1, toán tử bằng xác định rằng chúng ta đang xử lý các kiểu dữ liệu không nguyên thủy; . Do đó, chúng ta có thể thấy rằng không có không gian bộ nhớ mới nào được tạo ra thay vào đó, cả hai biến đều trỏ đến cùng một địa chỉ mà obj1 đã trỏ đến ________số 8Trong ví dụ trên, chúng ta đã tạo một biến obj1 và đặt nó bằng một đối tượng, sau đó chúng ta đặt giá trị của biến obj2 khác bằng obj1 Vì toán tử bằng xác định rằng chúng ta đang xử lý các kiểu dữ liệu không nguyên thủy, nên thay vì tạo một không gian bộ nhớ mới, nó trỏ obj2 đến cùng một không gian bộ nhớ mà obj1 được trỏ đến. Do đó, khi chúng ta thay đổi (biến đổi) giá trị của obj1, thì giá trị của obj2 cũng bị thay đổi do obj2 cũng trỏ đến cùng một không gian bộ nhớ như obj1. Chuyển qua Tham chiếu trong Đối tượng (có Chức năng)
Khi nào nên sử dụng Pass by Value?Như trong giá trị truyền qua trong JavaScript, một bản sao mới của biến được tạo và mọi thay đổi được thực hiện trong biến mới đều độc lập với biến ban đầu, vì vậy sẽ hữu ích khi chúng ta muốn theo dõi biến ban đầu và không' Khi nào nên sử dụng Pass by Reference?Khi chúng ta chuyển các đối số có kích thước lớn, tốt hơn nên sử dụng tham chiếu chuyển qua trong JavaScript vì không có bản sao riêng biệt nào được tạo trong hàm được gọi, vì vậy bộ nhớ không bị lãng phí và do đó chương trình hiệu quả hơn Làm cách nào để chuyển giá trị trong JavaScript?Truyền theo giá trị. Trong Truyền theo giá trị, hàm được gọi bằng cách truyền trực tiếp giá trị của biến làm đối số . Vì vậy, mọi thay đổi được thực hiện bên trong hàm không ảnh hưởng đến giá trị ban đầu. Trong Truyền theo giá trị, các tham số được truyền dưới dạng đối số tạo bản sao của chính nó.
Tôi có thể lấy dữ liệu từ cơ sở dữ liệu bằng JavaScript không?Bởi vì php là ngôn ngữ phía máy chủ, nó hỗ trợ thực thi kết nối của chúng tôi nên khi máy chủ của chúng tôi yêu cầu thành công thì chúng tôi có thể tìm nạp bất kỳ dữ liệu nào từ cơ sở dữ liệu. Trong javascript, chúng tôi đạt được điều này bằng ajax . Ajax có đối tượng XMLHttpRequest để giao tiếp với máy chủ.
Các tham số được truyền cho các hàm trong JavaScript như thế nào?Các tham số về cơ bản được truyền cho các hàm theo giá trị — vì vậy nếu mã trong phần thân của hàm sẽ gán một giá trị hoàn toàn mới cho một tham số .
Làm cách nào để chuyển đối số sang JavaScript?Các đối số được truyền theo giá trị
. Các đố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ố. Nếu một hàm thay đổi giá trị của đối số, thì nó không thay đổi giá trị ban đầu của tham số. |