hàm tính tiền trong javascript
Số tiền sau giảm giá = Giá gốc x ( (100 - phần trăm giảm giá)/100) Như vậy để tính được thì ta cần phải biết giá gốc của hàng hóa và phần trăm giảm giá. Công thức trên được giải thích như sau: nếu bạn bán 1 món hàng và món hàng này được giảm giá a% thì số tiền
thường Bạn thiếu một biến, trong trường hợp này là Số tiền Amount / 10000 = 35.8 / 100 thì bạn có toán học trung học (tỷ lệ) với nhiều bên ngoài từ cả hai bên và bên trong từ cả hai bên. Amount * 100 = 358 000 Amount = 3580 Nó hoạt động giống nhau trong tất cả các ngôn ngữ và trên giấy. JavaScript cũng không ngoại lệ. — eomeroff nguồn 3
Gõ dấu phẩy (,) để phân cách đối số thứ nhất với đối số tiếp theo. Nhập tham đối thứ hai, C2:C3 (hoặc kéo để chọn các ô). Gõ dấu đóng ngoặc ), rồi nhấn Enter =SUM (A2:A4,2429,10482) =SUM (4823,A3:A4,C2:C3) =SUM (4823,12335,9718,C2:C3) =SUM (A2,A3,A4,2429,10482)
0.1.2.2 Chèn JavaScript trong HTML bằng một file độc lập 1 Time right now is: " + d.getHours () + ":" + d.getMinutes () + ":" + d.getSeconds () 1.0.0.1 ví dụ JavaScript để xác thực email address 1.1 'result'> 1.1.0.1 Lời kết Hướng dẫn gọi hàm javascript trong html mới nhất 2020 rong bài tut này, chúng tôi sẽ chỉ bạn mẹo thêm JavaScript trong HTML.
Kết quả tìm kiếm Google: Tính tổng các phần tử trong mảng javascript - Freetuts.net. Cách tính tổng các phần tử trong mảng javascript, bằng cách sử dụng vòng lặp và các hàm xử lý mảng có sẵn trong js như ham map - hàm reduce - hàm reduce …. => Xem ngay Bài tập tạo hàm trong Javascript - Freetuts.net
Vì là lệnh bắt vào một ký tự chứ không phải lệnh nhập, vì thế nên các bạn sẽ thấy nó không giống như các lệnh nhập khi bấm 1 phím bấm nó sẽ ngay lập tức ghi phím vừa nhấn lên màn hình. Hàm getch không như vậy, đơn thuần hàm chỉ bắt lấy phím nhấn, và để lấy được phím đó thì ta có thể gắn nó vào một biến. Code minh họa sử dụng hàm getch () 1 2 3 4 5
Vay Tien Online Me. Function JavaScript hàm trong JavaScript là một thành phần không thể thiếu trong cấu trúc chương trình. Hàm giúp chương trình trở nên rõ ràng, dễ hiểu bằng cách gộp những đoạn code lặp lại. Nhờ vậy mà việc bảo trì phần mềm cũng dễ dàng hơn. Ngoài ra, một hàm tốt độc lập và thực hiện một chức năng nhất định có thể tái sử dụng trong nhiều dự án khác nhau. Điều này giúp nâng cao hiệu suất công việc của lập trình viên. Trong bài viết về tương tác người dùng với alert, confirm và prompt bạn đã biết về các hàm có sẵn như alert, confirm và prompt. Sau đây, mình sẽ giới thiệu những thành phần cơ bản của hàm trong JavaScript. Qua đó, bạn sẽ hiểu hàm là gì, cách xây dựng hàm và ứng dụng hàm vào các dự án. Hàm trong JavaScript là một chương trình con giúp thực thi một công việc cụ thể. Để định nghĩa hàm trong JavaScript, bạn sử dụng từ khoá function với cú pháp là function functionName[parameter1], [parameter2],... { statement1; statement2; ... } Trong đó function là một từ khóa trong JavaScript dùng để định nghĩa hàm. functionName là tên của hàm tên tự đặt. [parameter1], [parameter2],... danh sách các tham số của hàm không bắt buộc. Cuối cùng là thân hàm, bao gồm một hoặc nhiều câu lệnh nằm trong cặp dấu ngoặc {}. Ví dụ hàm sayHello function sayHello { from } Để gọi hàm, bạn sử dụng tên hàm function sayHello { from } sayHello;sayHello; // Hello from // Hello from Khi gọi hàm, đoạn code bên trong thân hàm sẽ được thực thi. Trong ví dụ trên, đoạn code được thực hiện hai lần ứng với hai lần gọi hàm. Bạn có thể thấy rằng, hàm giúp tránh lặp lại code. Giả sử bạn cần thay đổi nội dung với trên, bạn chỉ cần thay đổi một chỗ bên trong thân hàm. Đến đây chắc bạn đã phần nào hiểu được hàm là gì rồi phải không? Sau đây, mình sẽ đi vào chi tiết các đặc điểm của hàm trong JavaScript. Biến cục bộ trong hàm Một biến được khai báo bên trong hàm, chỉ sử dụng được bên trong thân hàm đó. Biến này gọi là biến cục bộ hay biến địa phương. Ví dụ về biến cục bộ trong JavaScript function sayHello { const message = "Hello from } sayHello; // Hello from // Uncaught ReferenceError message is not defined Trong ví dụ trên, biến message là biến cục bộ bên trong hàm sayHello. Tức là biến message chỉ dùng được ở trong thân hàm sayHello. Khi bạn cố gắng truy cập vào biến message ở ngoài hàm, bạn sẽ bị lỗi Uncaught ReferenceError message is not defined. Biến ngoài hàm trong JavaScript Một hàm trong JavaScript có thể truy cập vào biến được khai báo bên ngoài hàm, ví dụ let message = "Hello from function sayHello { } sayHello; // Hello from Hơn nữa, bạn có thể thay đổi giá trị của biến ngoài hàm từ trong thân hàm let message = "Hello from function sayHello { message = "Hi!"; } sayHello; // Hi! // Hi! Tuy nhiên, nếu bên trong thân hàm khai báo một biến trùng tên với biến ngoài hàm thì biến ngoài hàm "bị bỏ qua" let message = "Hello from function sayHello { let message = "Hi!"; } sayHello; // Hi! // Hello from 📝 Biến toàn cục Một biến được khai báo ở ngoài tất cả các hàm, gọi là biến toàn cục. Biến toàn cục có thể được sử dụng và thay đổi giá trị ở mọi nơi trong chương trình. Vì vậy, bạn nên hạn chế sử dụng biến toàn cục. Điều này giúp hàm trở nên tốt hơn, dễ dàng tái sử dụng hơn vì nó độc lập với các biến bên ngoài. Truyền tham số vào hàm Trong trường hợp bạn muốn sử dụng giá trị của biến bên ngoài vào trong thân hàm, bạn có thể truyền tham số vào hàm thay vì sử dụng biến toàn cục. Ví dụ truyền tham số vào hàm function sayHellomessage { } sayHello"Hello!"; // Hello! sayHello"Hi!"; // Hi! Khi hàm sayHello được gọi, giá trị string được sao chép copy vào biến cục bộ message. Trong thân hàm sẽ sử dụng biến cục bộ đó. Chú ý khi truyền tham số vào hàm ngoại trừ object là kiểu dữ liệu tham chiếu, hàm trong JavaScript luôn thực hiện sao chép dữ liệu mà không làm thay đổi giá trị biến bên ngoài. Ví dụ let message = "Hello from function sayHellomessage { message = "Hi!"; } sayHello; // Hi! // Hello from Bạn thấy rằng là bên trong hàm đã gán giá trị Hi! cho biến message. Nhưng giá trị của biến message bên ngoài không hề thay đổi. 📝 Số lượng tham số của hàm là không giới hạn. Ví dụ hàm có nhiều tham số function sayHellomessage, site { + " from " + site;} sayHello"Hello", " Hello from Giá trị tham số mặc định Đối với hàm có tham số mà khi gọi hàm, bạn không truyền giá trị vào thì giá trị của tham số đó là undefined, ví dụ function sayHellomessage, site { + " from " + site; } sayHello"Hello"; // Hello from undefined Trong trường hợp này, bạn có thể định nghĩa "giá trị mặc định" cho tham số bằng cách sử dụng toán tử gán = như sau function sayHellomessage, site = " { + " from " + site; } sayHello"Hello"; // Hello from Lúc này, nếu bạn không truyền giá trị vào tham số site thì giá trị của nó mặc định là Trong ví dụ trên, giá trị mặc định chỉ là một giá trị string. Tuy nhiên, giá trị mặc định có thể là một biểu thức hoặc thậm chí là một hàm khác, ví dụ function aFunction { // code } function sayHellomessage, site = aFunction { + " from " + site; } Trong ví trên, hàm aFunction chỉ được gọi khi bạn không truyền giá trị cho tham số site. Có thể bạn quan tâm Làm sao để bắt buộc truyền tham số vào hàm?. Return trong JavaScript Hàm trong JavaScript có thể trả về giá trị khi gọi hàm. Ví dụ hàm tính tổng hai số function suma, b { return a + b;} const result = sum1, 2; // 3 Từ khóa return trong JavaScript có thể đặt ở bất kỳ đâu trong thân hàm. Khi gặp từ khóa return, hàm sẽ dừng lại và trả về giá trị sau return. Có thể dùng nhiều từ khóa return trong hàm function suma, b { if a === null a === undefined { số không hợp lệ!"; return; } if b === null b === undefined { số không hợp lệ!"; return; } return a + b;} const result1 = sum; // Tham số không hợp lệ! Ví dụ trên, mình kiểm tra điều kiện cho a và b. Nếu chúng bằng null hoặc undefined thì sẽ return luôn mà không thực hiện tính tổng. Bạn cũng thấy rằng, hai vị trí return đầu tiên không có giá trị nào theo sau. Khi đó, giá trị trả về mặc định là undefined function suma, b { return;} let r = sum1, 2; // undefined Ngoài ra, nếu hàm không có return thì giá trị trả về cũng là undefined function suma, b {} let r = sum1, 2; // undefined Chú ý không được xuống dòng ngay sau return. Vì JavaScript sẽ hiểu là bạn không return giá trị nào cả. Ví dụ function suma, b { return a + b; } const result = sum1, 2; // undefined Trình thông dịch JavaScript sẽ tự động thêm dấu ; ngay sau return. Do đó, giá trị trả về của hàm trên là undefined. Và thành phần a + b phía dưới sẽ không bao giờ được chạy tới. Nếu cần xuống dòng thì bạn phải đưa giá trị trả về vào trong cặp dấu ngoặc đơn như sau function suma, b { return a + b ; } const result = sum1, 2; // 3 Cách đặt tên hàm trong JavaScript Quy tắc đặt tên hàm trong JavaScript cũng giống như quy tắc đặt tên biến hay hằng trong JavaScript Bắt đầu bằng chữ cái, dấu gạch dưới _ hoặc kí tự "đô la" $. Sau kí tự đầu tiên, ngoài những kí tự trên, bạn có thể sử dụng thêm số 0-9. Không sử dụng từ khoá và từ dự trữ. Chuẩn hóa cách đặt tên hàm Vì hàm ứng với một hành động, nên tên hàm chuẩn thường bắt đầu bằng một động từ. Ví dụ một số động từ hay dùng để đặt tên hàm get... - trả về một giá trị. set... - gán giá trị cho một biến. check... - kiểm tra một số thứ và trả về giá trị boolean. display... - hiển thị một số thứ. ... Dĩ nhiên, JavaScript không quy định bạn phải đặt tên như vậy. Bạn chỉ cần đặt tên đúng theo quy tắc phía trên là đủ. Nhưng rõ ràng là nếu bạn đặt tên đúng chuẩn thì đồng nghiệp hoặc chính bản thân bạn khi đọc code sẽ dễ dàng hiểu được ý nghĩa của từng hàm. Sự phát sinh hàm trong chương trình Khi lập trình, thông thường sẽ có hai trường hợp mà bạn nên viết hàm Một đoạn chương trình được lặp đi, lặp lại nhiều lần. Việc gom chúng lại thành một hàm sẽ giúp chương trình ngắn gọn hơn, dễ hiểu hơn. Và khi cần thay đổi, bạn chỉ cần sửa một lần trong nội dung hàm, thay vì phải sửa nhiều chỗ. Bạn cần tách toàn bộ chương trình thành những phần nhỏ hơn. Hay còn gọi là module hoá. Lúc này, bạn có thể xây dựng logic cho toàn bộ chương trình trước khi thật sự định nghĩa nội dung từng hàm. Cách tiếp cận này gọi là "top-down". Với những dự án lớn, mỗi thành viên thường chỉ được làm những module nhỏ trong toàn bộ một project lớn. Sau đó khi các module nhỏ hoàn thành, sẽ có người ghép những module nhỏ đó thành một chương trình hoàn chỉnh. Do đó, việc phân chia chương trình thành những hàm tốt là vô cùng quan trọng. Như thế nào là một hàm tốt? Đây là một câu hỏi rất khó để trả lời. Theo mình, hàm tốt là hàm thỏa mãn một số điều kiện sau Một hàm chỉ thực hiện một chức năng duy nhất Độc lập với các yếu tố bên ngoài biến toàn cục, môi trường thực thi,... Dễ dàng tái sử dụng Tuy nhiên, không phải lúc nào bạn cũng có thể thoả mãn những yêu cầu trên. Hoặc không nhất thiết phải thoả mãn tất cả những yêu cầu trên. Pure function và non-pure function Nhìn chung, có hai loại hàm trong JavaScript là pure function hàm thuần khiết và non-pure function hàm không thuần khiết. Hàm thuần khiết là hàm không phụ thuộc vào yếu tố bên ngoài biến toàn cục, môi trường thực thi,.... Bất cứ khi nào bạn gọi hàm thuần khiết với cùng một đối số thì kết quả trả về luôn giống nhau. Do đó, pure function rất dễ để sử dụng, tái sử dụng hay bảo trì,... Theo mình, hàm thuần khiết là một hàm tốt. Ví dụ hàm thuần khiết function pureFuncnumber, factor { return number * factor; } let ret = pureFunc2, 10; // 20 Bạn thấy rằng, với cùng một giá trị truyền vào là 2 và 10 thì kết quả luôn là 20. Do đó, hàm trên là hàm thuần khiết. Ngược lại với hàm thuần khiết, hàm không thuần khiết là hàm phụ thuộc vào biến toàn cục hay môi trường thực thi. Vì vậy, khi bạn gọi cùng một hàm với cùng một đối số, nhưng kết quả lại có thể khác nhau. let factor = 10; function nonPureFuncnumber { return number * factor; } let ret = nonPureFunc2; // 20 factor = 11; ret = nonPureFunc2; // => 22 Rõ ràng, hàm nonPureFunc không phải là hàm thuần khiết. Vì hàm này phụ thuộc vào biến ngoài hàm là factor. Nghĩa là khi giá trị của biến factor thay đổi, kết quả trả về của hàm cũng thay đổi dù cho cùng giá trị truyền vào là 2. Tổng kết Vậy hàm là gì? Hàm trong JavaScript là một chương trình con giúp thực thi một công việc cụ thể với cú pháp là function functionName[parameter1], [parameter2],... { statement1; statement2; ... } Trong đó Tham số truyền vào hàm được sao chép vào biến cục bộ bên trong hàm. Trường hợp không truyền giá trị vào thì giá trị của tham số là undefined. Bạn có thể sử dụng toán tử = để khai báo giá trị mặc định cho tham số trong hàm. Biến cục bộ khai báo bên trong hàm chỉ dùng được ở thân hàm. Code bên ngoài không thể truy cập vào biến cục bộ trong hàm. Hàm có thể đọc và cập nhật giá trị của biến ngoài hàm. Nhưng khi bên trong hàm có khai báo một biến cùng tên với biến ngoài hàm thì biến ngoài hàm bị "bỏ qua". Hàm có thể trả về giá trị bằng cách dùng từ khóa return. Có thể có nhiều từ khóa return trong thân hàm. Khi gặp từ khóa return, hàm sẽ dừng lại ngay lập tức và trả về giá trị sau return. Nếu không có giá trị, biểu thức,... nào sau return, hoặc không có từ khóa return thì giá trị trả về của hàm là undefined. Quy tắc đặt tên hàm cũng giống quy tắc đặt tên biến và hằng. Và tên hàm nên bắt đầu bằng một động từ. Nên ưu tiên viết hàm thuần khiết để dễ dàng tái sử dụng, dễ dàng kiểm thử và tránh lỗi. Thực hành Bài 1 Viết hàm trả về giá trị nhỏ nhất của hai số giả sử giá trị truyền nào luôn là số. Xem đáp án function mina, b { return a < b ? a b; } min2, 5; // 2 min4, -1; // -1 min3, 3; // 3 Trường hợp hai số truyền vào bằng nhau thì dĩ nhiên kết quả là giá trị của hai số đó. Bài 2 Viết hàm kiểm tra xem một số có phải là số nguyên tố hay không. Nếu là số nguyên tố thì trả về true. Ngược lại, trả về false. Xem đáp án function isPrimenumber { if isNaNnumber return false; if number < 2 return false; if number === 2 return true; for i = 2; i * i <= number; i++ { if number % i === 0 return false; } return true; } // Ví dụ isPrime"abc"; // false isPrime0; // false isPrime2; // true isPrime5; // true isPrime6; // false Trong đó, hàm isNaNnumber dùng để kiểm tra giá trị của biến number xem có phải là NaN hay không. Nói cách khác, nếu isNaNnumber trả về false thì giá trị của number là số. ★ Nếu bạn thấy bài viết này hay thì hãy theo dõi mình trên Facebook để nhận được thông báo khi có bài viết mới nhất nhé
Có rất nhiều ứng dụng cần hiển thị giá tiền, ví dụ như ứng dụng thương mại điện tử, ứng dụng về thuế phí, Có nhiều lý do, các giá trị này được lưu trong database là giá trị thô kiểu number – vì để phục vụ việc tính toán dễ hơn chẳng hạn. Do đó, để hiển thị giá trị tiền cho người dùng được thân thiện hơn, bạn cần phải định dạng lại. Chưa kể, mỗi một quốc gia lại có quy tắc định dạng tiền tệ khác nhau. Có nơi dùng dấu phẩy để ngăn hàng nghìn, có nơi lại dùng dấy phẩy để ngăn phần thập phân. Ví dụ bạn có 21450 USD hai mươi mốt nghìn bốn trăm năm mươi đô la mỹ, sẽ hiển thị là $21, Tương tự, với tiền euro thì lại ngược lại € Trong bài viết này, mình sẽ chia sẻ cách định dạng các con số theo định dạng tiền tệ tiếng Anh người ta hay gọi là format Number as currency. Let’s go 😊 Phương pháp 1 Sử dụng hàm có sẵn Trong Javascript, cách đơn giản nhất để định dạng giá trị tiền tệ là sử dụng hàm có sẵn Hàm này nó có hỗ trợ cả định dạng theo từng quốc gia. Cú pháp options. formatprice Trong đó locales mã quốc gia tương ứng khi hiển thị định dạng tiền. Bạn có thể tham khảo danh sách mã quốc gia này tại đây. options Có nhiều tùy chỉnh trong options này lắm, nhưng trong đó bạn chỉ cần quan tâm tới 2 tùy chỉnh chính style và currency Mình sẽ giải thích chi tiết về hai option trên nhé. style Bạn sử dụng tùy chỉnh này để xác định kiểu định dạng. Bạn có thể truyền vào một trong ba giá trị sau số thập phân bình thường decimals, tiền tệ currency, hay đơn vị đo lường units. Trong bài viết này, chúng ta là currency. currency tùy chọn này để chỉ định đơn vị tiền tệ, ví dụ USD, VND, CAD… Tùy chọn này nó cũng hỗ trợ hiển thị ký hiệu tiền tệ tương ứng với locale. Ví dụ bằng code const price = 21450; const USDollar = new { style 'currency', currency 'USD', }; const VND = new { style 'currency', currency 'VND', }; ' + // Dollars $21, Nam đồng ' + // Việt Nam đồng ₫ Phương pháp 2 Sử dụng thư viện Trong trường hợp bạn muốn tùy biến nhiều hơn nữa, bạn có thể xem xét sử dụng thư viện bên thứ 3. Cá nhân hay sử dụng thư viện Với thư viện này, bạn có thể sử dụng trên cả frontend hoặc backend đều được. Cách cài đặt thư viện Với NodeJS npm install -save Với HTML, bạn thêm vào thẻ script như bình thường Cách sử dụng const price = 21450; {symbol "đ"}.format // đ21, {symbol "$"}.format // $21, Thư viện này khá là mạnh, bạn có thể tùy biến rất nhiều. Trong đó, bạn có thể thay đổi ký tự phân tách hàng nghìn và ký tự phân tách chữ thập phân. Mặc định, ký tự dấu phẩy “,” dùng để phân tách hàng nghìn. Bạn hoàn toàn có thể đổi lại. const price = 21450; { symbol 'đ', separator '.', decimal ',' } .format; // Còn rất nhiều tính năng và tùy chọn khác nữa, bạn có thể khám phá trong trang tài liệu chính thức của thư viện này nhé. Phương pháp 3 Tự code Ngoài 2 trường phái sử dụng thư viện hoặc hàm có sẵn, bạn thích tự mình làm tất cả. Với ưu điểm là code tự viết nên mình sẽ hiểu rõ và tối ưu chính xác với nhu cầu thực tế của dự án. Nhưng nhược điểm là khả năng sẽ bug nhiều đấy 😊 Dưới đây là một gợi ý dành cho bạn. /** * Định dạnh số theo tiền tệ * param price - giá trị tiền * param symbol - ký tự đại diện cho đơn vị tiền */ function formatCurrencyprice, symbol = "$" { var DecimalSeparator = Number' 1; var priceWithCommas = var arParts = StringpriceWithCommas.splitDecimalSeparator; var intPart = arParts[0]; var decPart = > 1 ? arParts[1] ''; decPart = decPart + '00'.substr0, 2; return symbol + intPart + DecimalSeparator + decPart; } const price = 21450; Tạm kết Trong bài viết này, mình đã giới thiệu một số phương pháp để định dạng một số thành chuỗi tiền tệ, giúp người dùng dễ đọc hơn. Ngoài những cách trên, bạn còn giải pháp nào hay hơn không? Đừng ngại để lại chia sẻ bên dưới bình luận nhé. 💦 Đọc thêm về Javascript Xóa thuộc tính khỏi Object trong Javascript 2 cách Deep Clone Objects trong Javascript – Giới thiệu một biện pháp cực mạnh [Javascript] Các cách xóa phần tử trong mảng Array
1. Tổng quan về hàm trong JavaScript Hàm là một hay nhiều đoạn mã được viết ra để thực thi một hoặc nhiều hành động khi gọi nó. HàmFunction gọi chung là subprogram chương trình con có thể được gọi ở bên ngoài hoặc bên trong chính nó. Nó bao gồm tập hợp các câu lệnh gọi là function body. Các giá trị có thể truyền đến một hàm, và một hàm có thể trả về giá trị. Bây giờ, với các ứng dụng hiện đại, các function có thể là một chương trình hoàn chỉnh, chứ không phải là khái niệm tổng quát như ”subprogram” nữa. Có sự khác nhau giữa function và procedure thủ tục rằng sự lý tưởng của function nên trả về một giá trị còn procedure thì không bây giờ điều này có thể thay đổi theo ngôn ngữ lập trình. Code bên trong function không được biên dịch cho tới khi được gọi đến. Chính vì vậy khi sử dụng function sẽ giúp chương trình được linh hoạt hơn. Một số đặc điểm của hàm trong Js Hàm có thể không có tham số, 1 tham số hay thậm chí là nhiều tham số Nội dung của hàm phải được đặt trong cặp dấu ngoặc nhọn {}, dù cho không có câu lệnh nào hoặc nhiều câu lệnh bên trong nó. Hàm có thể có giá trị trả về hoặc không có giá trị trả về. Kiểu của tham số hay giá trị trả về trong hàm là không được quy định. Do đó, bạn thường phải kiểm tra kiểu của giá trị truyền vào hàm. Nếu không, bạn sẽ rất dễ bị sai. 2. Khai báo hàm trong JavaScript Để khai báo hàm, chúng ta dùng từ khóa function, theo sau nó là Tên hàm Danh sách các tham số truyền vào hàm, được đặt trong ngoặc đơn và cách nhau bởi dấu phẩy. Các câu lệnh của JavaScript để tạo ra một hàm, được đặt trong ngoặc nhọn {…}. Hàm cơ bản Đây là dạng cơ bản nhất của hàm trong javascript, có cú pháp như sau function funName { //code } Trong đó funName là tên của hàm mà các bạn muốn đặt còn function là từ khóa bắt buộc. Ví dụ function getWebsite { } Hàm có tham số truyền vào Đây là một dạng hàm rất hay được sử dụng trong dự án. Hàm có tham số là loại hàm mà khi gọi hàm ta phải truyền giá trị vào cho nó. Tùy vào giá trị được truyền mà hàm sẽ thực thi và cho ra kết quả khác nhau. Cú pháp function funNameparam_1, ..., pram_n { //code } Trong đó funName là tên của hàm các bạn muốn đặt. param_1,…,pram_n là các tham số mà các bạn muốn truyền vào hàmkhông giới hạn số lượng Ví dụ tạo hàm tính tổng của 2 số bất kỳ function getSuma, b { ' + a + b; } Hàm có tham số mặc định Đây thực ra là dạng hàm có truyền tham số và đồng thời xét luôn giá trị mặc định cho các tham số đó. Cú pháp của nó gần tương tự việc khai báo hàm có tham số truyền vào function funNameparam_1 = value_1, ..., pram_n = value_2 { //code } Trong đó funName là tên của hàm các bạn muốn đặt. param_1,…,pram_n là các tham số mà các bạn muốn truyền vào hàmkhông giới hạn số lượng. value_1,…,value_n là các giá trị tương ứng với các pram. Ví dụ function getSuma = 1, b = 2 { ' + a + b; } Hàm có giá trị trả về và không Trong javascript có hai loại hàm,đó là hàm có giá trị trả về và hàm không có giá trị trả về Đối với hàm có giá trị trả về thì phải sử dụng từ khóa return Và ngược lại đối với hàm không có giá trị trả về thì không có từ khóa return. Ví dụ function getSuma = 1, b = 2 { return a + b; } 3. Cách gọi hàm trong JavaScript Sau khi khai báo được hàm thì ta sẽ gọi hàm để sử dụng. Việc gọi hàm cũng khá là đơn giản thôi! Gọi hàm cơ bản Cú pháp funName; Trong đó funname là tên hàm mà bạn muốn gọi. Ví dụ getWebsite; Hàm có tham số truyền vào Để gọi dạng hàm này thì các bạn cũng dùng cú pháp như hàm cơ bản, nhưng đồng thời các bạn truyền thêm các param vào theo cú pháp funNameparam_1, ..., param_n; Ví dụ function getSuma,b{ ' + a + b; } getSum5,6; Hàm có tham số mặc định Để gọi dạng hàm này chúng ta có thể sử dụng cách gọi hàm cơ bản nếu không muốn truyền tham số, và cách gọi hàm có tham số truyền vào nếu muốn truyền tham số cho hàm. Ví dụ function getSuma = 1,b = 2{ ' + a + b; } getSum; //tạo khoảng ngăn cách cho các bạn dễ nhì getSum4,5; Hàm có giá trị trả về và không Hàm này cũng tương tự các hàm trên nên mình sẽ lấy ví dụ cụ thể thôi cho các bạn dễ hiểu nhé function getSuma = 1,b = 2{ return a + b; } var kq1 = getSum; //tạo khoảng ngăn cách cho các bạn dễ nhìn var kq2 = getSum4,5; Cách đặt tên hàm Javascript cũng giống như các ngôn ngữ khác nó cũng có các ràng buộc về tên hàm sau đây Tên hàm phải được bắt đầu bằng chữ cái a-z,A-Z hoặc ký tự _. Tên hàm không được bắt đầu bằng số, các ký tự khác ký tự _. Gọi hàm Các hàm phải đặt trong phạm vi in scope khi nó được gọi, nhưng việc khai báo hàm có thể được hoisted câu lệnh khai báo hàm xuất hiện bên dưới dòng gọi hàm trong đoạn code, như ví dụ này /* ... */ function getAreaOfSquaren { return n*n; } Phạm vi scope của một hàm là khoảng không gian bên trong hàm mà nó được khai báo hoặc là cả chương trình, nếu nó được khai bảo ở top level, tức là nó không nằm trong hàm nào khác. Lưu ý Điều này chỉ đúng khi định nghĩa một hàm bằng cách sử dụng các cú pháp ở trên ví dụ function funcName{}. Điều này có nghĩa rằng function hoisting chỉ hoạt động với cách khai báo hàm thông thường function declarations – function hoisting không hoạt động đối với hàm được khai báo bằng biểu thức hàm function expression. Ví dụ, đoạn code dưới đây sẽ không hoạt động // ReferenceError getAreaOfSquare không được xác định // ReferenceError getAreaOfSquare không được xác định getAreaOfSquare = function n { return n * n; } Phạm vi của hàm – Function Scope Các biến được định nghĩa bên trong một hàm không thể được truy cập từ nơi nào khác bên ngoài hàm, bởi vì biến đó được định nghĩa chỉ trong phạm vi của hàm. Tuy nhiên, một hàm có thể truy cập đến mọi biến và mọi hàm khác trong cùng phạm vi mà nó được định nghĩa. Nói cách khác, một hàm được định nghĩa trong phạm vi global có thể truy cập tới tất cả các biến đã được định nghĩa trong phạm vi global. Một hàm được định nghĩa bên trong một hàm khác có thể truy cập đến tất cả biến được định nghĩa bên trong hàm cha của nó, và bất cứ biến nào khác mà hàm cha của nó có quyền truy cập đến. Các bạn có thể tham khảo ví dụ dưới đây // Các biến sau được định nghĩa trong phạm vi global scope var num1 = 20, num2 = 3, name = "Khoa"; // Hàm này được định nghĩa trong phạm vi global scope function multiply { return num1 * num2; } multiply; // Returns 60 // Một ví dụ hàm lồng nhau function getScore { var num1 = 50, num2 = 50; function add { return name + " scored " + num1 + num2; } return add; } getScore; // Returns "Khoa scored 100" 5. Sự phát sinh hàm trong chương trình Khi viết chương trình, thông thường sẽ có 2 khả năng khiến một hàm được sinh ra Một đoạn chương trình được lặp đi, lặp lại nhiều lần. Việc gom chúng lại thành một hàm sẽ giúp chương trình ngắn gọn hơn, dễ hiểu hơn. Và khi cần thay đổi, bạn chỉ cần sửa một lần trong nội dung hàm, thay vì phải sửa nhiều chỗ. Khi viết chương trình, bạn cần tách toàn bộ chương trình thành những phần nhỏ hơn. Hay còn gọi là module hoá. Lúc này, bạn có thể xây dựng logic cho toàn bộ chương trình trước khi thật sự định nghĩa nội dung hàm. Tại những công ty lớn, thường bạn sẽ chỉ được làm những module nhỏ trong toàn bộ một project lớn. Sau đó, team leader hay project leader… sẽ là người ghép những module nhỏ đó thành một chương trình hoàn chỉnh. Do đó, việc phân chia chương trình thành những hàm tốt là vô cùng quan trọng. Vậy như thế nào là một hàm tốt? Đây là một câu hỏi rất khó để trả lời. Theo mình, hàm tốt là hàm thỏa mãn một số điều kiện sau Một hàm chỉ thực hiện một chức năng duy nhất Độc lập với các yếu tố bên ngoài biến toàn cục, môi trường thực thi,… Dễ dàng tái sử dụng Tuy nhiên, không phải lúc nào bạn cũng có thể thoả mãn những yêu cầu trên. Hoặc không nhất thiết phải thoả mãn tất cả những yêu cầu trên. 6. Cách tham số của hàm trong JavaScript Default parameters Trong Js các tham số của hàm mặc định là undefined. Tuy nhiên, trong một số trường hợp nó có thể hữu ích để thiết lập một giá trị mặc định khác. Đây chính xác là điều mà default parameters sẽ làm. Khi không có default parameters trước ES6 Trong quá khứ, cách thông thường để thiết lập các giá trị mặc định là kiểm định giá trị của các tham số bên trong body của function và gán giá trị cho nó nếu nó là undefined. Trong ví dụ sau, nếu không có giá trị nào được truyền cho b, giá trị của nó sẽ là undefined khi thực hiện tính toán a*b, và việc gọi hàm multiply sẽ trả về NaN. Tuy nhiên, điều này bị ngăn chặn bởi dòng thứ 2 trong ví dụ này function multiplya, b { b = typeof b !== 'undefined' ? b 1; return a*b; } multiply5; // 5 Khi có default parameters sau ES6 Với default parameters, việc kiểm tra thủ công bên trong body của function không còn cần thiết. Bạn có thể đơn giản chỉ là đặt 1 vào làm giá trị mặc định cho b ngay tại head của function function multiplya, b = 1 { return a*b; } multiply5; // 5 Có một số trường hợp bạn muốn một tham số nào đó có thể được truyền hoặc không cần truyền vào đều được, lúc này chúng ta phải sử dụng nó như một tham số mặc định. Javascript không có cú pháp gán giá trị mặc định như PHP mà thay vào đó chúng ta sử dụng toán tử . Ví dụ Hàm hiển thị một thông báo function showMessagemessage { // Nếu message không được truyền vào hoặc giá trị nó là rỗng // thì sẽ được thay thế bằng giá trị 'Không có tin nhắn' message = message 'Không có tin nhắn '; } // Cách 1 không truyền tham số showMessage; // Cách 2 Truyền tham số showMessage'Chào mừng bạn đến với Toán tử gồm hai vế, trong đó nếu vế TRÁI có giá trị rỗng undefined, null, false, … kết quả sẽ trả về vế PHẢI, ngược lại nó sẽ trả về vế TRÁI. Rest parameters Cú pháp rest parameter cho phép chúng ta dùng 1 mảng để đại diện cho số lượng vô hạn các đối số. Trong ví dụ sau, hàm multiply sử dụng rest parameters để thu thập các đối số kể từ đối số hứ hai trở về đến hết. Hàm này sau đó sẽ nhân những đối số này với đối số đầu tiên. Ví dụ function multiplymultiplier, ...theArgs { return => multiplier * x; } var arr = multiply2, 1, 2, 3; // [2, 4, 6]
Published May 4th, 2020 715 0 min read mặc dù được hỗ trợ trong những brower hiện đại để Javascript format giá tiền nhưng nếu một lúc nào đó devjs muốn viết cho bản thân mình or cho team một chức năng tương tự thì làm như thế nào? Bài dưới đây sẽ có những phương án rất đơn giản mà hiệu quả Javascript format giá tiền. Javascript format giá tiền với toFixed Ví dụ trở thành 12, Chúng ta có thể làm đơn giản Kiểu tiền tệ trong JavaScript như ví dụ dưới đây. var yourBalance = //returns rounds up //returns //returns pads the decimals Định dạng tiền tệ trong JavaScript Chúng ta có thể làm tương tự khi sử dụng replace, như demo dưới đây. function format1n, currency { return currency + functionc, i, a { return i > 0 && c !== "." && - i % 3 === 0 ? "," + c c; }; } function format2n, currency { return currency + '$1,'; } var numbers = [1, 12, 123, 1234, 12345, 123456, 1234567, for var i = 0; i < i++ { '£ '; } for var i = 0; i < i++ { 'vnd '; } Kết qủa Format 1 £ £ £ £ 1, £ 12, £ 123, £ 1,234, £ 12, Format 2 vnd vnd vnd vnd 1, vnd 12, vnd 123, vnd 1,234, vnd 12, Hàm number_format trong JavaScript Có một chức năng ECMAScript mới hơn được cung cấp bởi Internationalization API const formatter = new { style 'currency', currency 'USD', minimumFractionDigits 2 } // "$1, // "$ // "$1,234,567, All Rights Reserved
Bài viết đăng tại dẫn cách dùng return trong JavaScript. Bạn sẽ học được khái niệm Return là gì trong JavaScript, cách dùng return để trả về giá trị trong hàm JavaScript, cách return nhiều giá trị trong javascript, cách sử dụng return true false trong Javascript, cũng như cách ứng dụng return để dừng chương trình trong Javascript sau bài học là gì trong JavaScriptReturn trong JavaScript là câu lệnh dùng để trả về giá trị từ hàm. Return có tác dụng kết thúc hàm và trả lại điều khiển cũng như kết quả xử lý hàm cho người gọi. Chúng ta có thể sử dụng hoặc lược bỏ return khi khai báo hàm trong JavaScript, và một hàm có chứa return trong JavaScript được gọi là hàm trả về giá trị trong dùng return trong hàm trả về giá trị trong JavaScriptKhi sử dụng return trong hàm trả về giá trị trong JavaScript, chúng ta viết giá trị trả về của hàm đằng sau lệnh return như saufunction tên hàm tham số 1, tham số 2, … { Câu lệnh 1 trong hàm; Câu lệnh 2 trong hàm; … return giá trị trả về;}Một giá trị sẽ được trả về sau khi gọi hàm trong JavaScript. Chúng ta có thể lưu giá trị này vào một biến bằng cách sử dụng toán tử = để sử dụng sau biến = tên hàm tham số 1, tham số 2, …Ví dụ cụ thểfunction addx, y{ let sum = x + y; return sum;}let z = add1, 2; hàm trên, chúng ta tiến hành tính tổng của các giá trị truyền vào hàm, gán tổng vào một biến và sau đó trả về giá trị của biến nữa, chúng ta có thể viết trực tiếp biểu thức đằng sau lệnh return như saufunction addx, y{ return x + y;}Cách dùng return trong hàm không trả về giá trị trong JavaScriptKhi sử dụng return trong hàm không trả về giá trị trong JavaScript, chúng ta chỉ viết lệnh return vào cuối hàm như saufunction tên hàm tham số 1, tham số 2, … { Câu lệnh 1 trong hàm; Câu lệnh 2 trong hàm; … return;}Ví dụ cụ thểfunction myfunc{ return;}myfunc;Lại nữa, khi chúng ta khai báo một hàm không trả về giá trị trong JavaScript, chúng ta cũng có thể lược bỏ đi lệnh return. Ví dụ ở trên có thể viết lại như saufunction myfunc{ ý, mặc dù các hàm không trả về giá trị trong JavaScript không trả về một giá trị nào tương ứng với các giá trị truyền vào hàm, tuy nhiên điều đó không có nghĩa là các hàm này không trả về bất cứ thứ gì cả. Thực chất, một giá trị mặc định undefined sẽ được trả về khi chúng ta không chỉ định một giá trị cụ thể trả về từ hàm. Ví dụfunction myfunc{ x = myfunc; nhiều giá trị trong javascriptVề cơ bản, chúng ta chỉ có thể ghi một giá trị trả về đằng sau lệnh return. Tuy nhiên chúng ta cũng có thể dễ dàng return nhiều giá trị trong javascript bằng cách chỉ định giá trị trả về này là một đối tượng chứa nhiều phần tử như mảng để chứa tất cả các giá trị cần trả về từ hàm trong nhiều giá trị trong javascript dưới dạng mảng và gán kết quả vào một biếnChúng ta có thể trả về nhiều giá trị trong hàm JavaScript bằng cách lưu giữ các giá trị này vào một mảng và chỉ định mảng đó là giá trị trả về sau lệnh return. Ví dụfunction myfunc{ name = "Kiyoshi"; old = 30; return [name, old];}Một mảng sẽ được trả về sau khi gọi hàm, và chúng ta có thể gán mảng kết quả vào một biến, và truy cập vào phần tử trong mảng thông qua biến để lấy ra các giá trị trả về như saux = myfunc; nhiều giá trị trong JavaScript dưới dạng mảng và gán kết quả vào một mảng khácNgoài cách gán kết quả return nhiều giá trị trong JavaScrit vào một biến như ở trên, chúng ta cũng có thể gán kết quả trực tiếp vào một mảng khác, với các phần tử trong mảng đó sẽ nhận tương ứng các giá trị trả về trong mảng kết dụ, chúng ta có hàm tìm max min trong JavaScript sau đây. Hàm này sẽ nhận các số vào và trả về 2 số lớn nhất và nhỏ nhất trong các số đã cho như saufunction find_max_mina, b, c { const maxNum = b, c; const minNum = b, c; return [maxNum, minNum]; }Để nhận kết quả trả về từ hàm, chúng ta có thể chuẩn bị một mảng chứa hai phần tử max , min, và nhận các kết quả tương ứng trả về từ hàm, sau đó gọi tên các phần tử đó ra để lấy kết quả của hàm như saulet [max, min] = find_max_min2, 5, 3; làm này sẽ rất tiện lợi khi chúng ta muốn đặt tên các biến bên ngoài hàm và nhận các giá trị tương ứng trả về từ hàm trong JavaScriptReturn true false trong JavascriptReturn trong JavaScript là câu lệnh dùng để trả về giá trị từ hàm. Giá trị trả về từ hàm này ngoài là các giá trị cụ thể như số, chữ trong các ví dụ mà Kiyoshi đã hướng dẫn ở trên thì cũng có thể là các giá trị thuộc kiểu Boolean với giá trị true hoặc ta có thể trả về các giá trị true hoặc false này bằng lệnh return bằng cách chỉ định trực tiếp, hoặc là thông qua một biểu thức trả về kết quả boolean giống như dưới đâyReturn true false trong Javascript bằng cách chỉ định trực tiếp giá trịNói đơn giản thì chúng ta chỉ định trực tiếp một giá trị trả về từ hàm là true hoặc false như saufuntion sayhi{ return false};let a = sayhi; ví dụ này, hàm sayhi khi được chạy sẽ thực hiện một hành động in dòng chữ Hello, sau đó trả về giá trị false bằng lệnh ta thường sử dụng cách return trực tiếp giá trị ở trên khi xử lý các event trong JavaScript, trong đó return false có tác dụng dừng hoàn toàn một event sau khi đã gọi xong event đó. Và return true thì lại ngược lại, cho phép event đó có thể tiếp tục thực thi sau khi nó được dụ cụ thể, chúng ta gọi hàm sayhi ở trên khi người dùng click vào một link, hay một button như sauTrong ví dụ này, chúng ta có một event click chuột vào đường link chỉ định trong thẻ href, và kết quả return của hàm sayhi sẽ quyết định chúng ta có thể mở đường link này sau khi click chuột hay hàm sayhi return giá trị false, nên kết quả là kể cả sau khi click vào link thì chúng ta cũng sẽ không thể mở được nó. Ngược lại nếu sửa giá trị trả về của hàm sayhi thành return true thì sau khi click, đường link mới có thể mở true false trong Javascript thông qua biểu thứcMột cách khác nữa để return true false trong JavaScript đó chính là sử dụng một biểu thức mà kết quả của biểu thức này thuộc dạng boolean trả về true hoặc false. Một ví dụ điển hình đó là sử dụng biểu thức điều kiện để return true false trong JavaScript như saufunction check_10 x { return x > 10;};let check = check_1020if check == true{ đã cho lớn hơn 10";}Ở ví dụ này, kết quả của hàm check_10 sẽ quyết định việc dòng chữ Số đã cho lớn hơn 10 có được in ra màn hình hay ta thường sử dụng cách return true false thông qua biểu thức ở trên trong các hàm có mục đích đánh giá giá trị trong JavaScript. Các giá trị sẽ được đánh giá trong hàm trước khi quyết định sẽ trả về giá trị true hay false từ hàm đó, và sử dụng giá trị này như là đầu vào cho một xử lý dụ, chúng ta viết lại hàm ở trên thành một hàm kiểm tra một chuỗi có phải là địa chỉ ip hay không như saufunction check_ip str { const regexExp = /^[0-9][1-9][0-9]1[0-9]{2}2[0-4][0-9]25[0-5]\.{3}[0-9][1-9][0-9]1[0-9]{2}2[0-4][0-9]25[0-5]$/gi; return str = " strlet str2 = " str2Ở ví dụ này, chúng ta sử dụng hàm check_ip để đánh giá một chuỗi có phải được viết theo đúng cú pháp của một địa chỉ ip hay không, và return các kết quả true hoặc false về từ chương trình trong Javascript bằng returnReturn có tác dụng kết thúc hàm và trả lại điều khiển cũng như kết quả xử lý hàm cho người gọi, do đó chúng ta có thể sử dụng return để dừng chương trình trong ví dụ sau, chúng ta sẽ dừng chương trình trong Javascript bằng cách đặt lệnh return vào vị trí cần dừng chương trìnhfunction check_oldold{ if old 30{ 30 rồi'; }else{ còn 20'; }}check_old17;check_old20;Trong ví dụ này, nếu tuổi nhập vào dưới 18, dòng Em chưa 18 sẽ được in ra màn hình, sau đó lệnh return được thực hiện và chương trình cũng kết thúc tại đây. Do đó các lệnh xử lý điều kiện còn lại trong chương trình cũng sẽ không thực kếtTrên đây Kiyoshi đã hướng dẫn bạn về cách dùng return để trả về giá trị trong hàm JavaScript, cũng như xử lý trong hàm trả về nhiều giá trị trong JavaScript rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay hãy cùng tìm hiểu những kiến thức sâu hơn về JavaScript trong các bài học tiếp Link chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam!HOME › học javascript - lập trình javascript cơ bản>>08. hàm trong javascriptBài sauMutable, Immutable Objects và sự biến đổi của giá trị trong hàm JavaScriptBài tiếpFunction object trong JavaScript
Giá trị trả vềGọi hàmHàm vô danh hoặc không được đặt tênBao đóng – Closure Khi hàm kết thúc quá trình thực thi, nó có thể trả về giá trị cho nơi gọi hàm bằng cách sử dụng từ khóa return. Ví dụ về giá trị trả về đơn giản Return Value function multiplyNumsx { return x * 2; } let theNumber = 10; let result = multiplyNumstheNumber; alertresult; Ví dụ này tạo hàm tên là multiplyNums với giá trị đầu vào được gán cho biến x. Hàm có chức năng trả về giá trị gấp đôi của đối số function multiplyNumsx { return x * 2; } Sau đó, biến theNumber được khởi tạo let theNumber = 10; Tiếp theo, một biến nữa có tên result được tạo. Biến này lưu kết quả của lời gọi hàm multiplyNums. Hàm multiplyNums sử dụng biến theNumber với vai trò đối số let result = multiplyNumstheNumber; Bạn có thể trả về giá trị từ bất cứ vị trí nào trong hàm chứ không chỉ ở cuối hàm. Sử dụng lệnh return trong khối lệnh điều kiện hoặc sau vòng lặp là cách làm phổ biến. Ví dụ như sau function myFunctionx { if x == 1{ return true; } else { return false; } } Tuy vậy, bạn cần chú ý vị trí đặt lệnh return, vì khi gặp lệnh return, hàm sẽ trả lại giá trị và không thực thi những dòng mã sau đó. Ví dụ, đoạn mã như sau sẽ không thực thi như ý định của bạn function myFunction { let count = 0; let firstNum = 48; return; var secondNum = 109; } Đoạn mã này sẽ không bao giờ khởi tạo biến secondNum. Gọi hàm Bạn sẽ luôn gọi hàm với một vài đối số hoặc chỉ với cặp ngoặc trống như sau let result = orderFruit; Nếu hàm đòi hỏi phải có đối số, lời gọi hàm sẽ như sau let result = orderFruittype, quantity; Bỏ qua cặp ngoặc đơn khi gọi hàm có thể gây ra những kết quả hoàn toàn khác so với ý định của bạn. Việc gọi hàm không có cặp ngoặc đơn sẽ trả lại tên của hàm, thay vì giá trị trả về của hàm. Hơn nữa, hàm đó sẽ không được thực thi. Sau đây là ví dụ minh họa Order Fruit function orderFruit { let total = 0; // Call another function to place order return total; } let result = orderFruit; alert"The total is " + result; Khi chạy đoạn mã này gọi đến hàm orderFruit. Hàm orderFruit gọi một hàm khác để tạo đơn đặt hàm. Sau đó, tổng chi phí được tính và trả lại cho hàm gọi. Chỉnh sửa một chút – cụ thể là xóa cặp dấu ngoặc đơn khỏi lời gọi hàm sẽ làm thay đổi toàn bộ kết quả let result = orderFruit; Bất kể hàm có giá trị hoặc nhận đối số hay không, việc gọi hàm với cặp ngoặc đơn là thao tác quan trọng. Hàm vô danh hoặc không được đặt tên Các hàm bạn đã thấy ở trên đều được định nghĩa theo chuẩn. Tuy nhiên, JavaScript không đòi hỏi hàm phải được định nghĩa theo cách đó. Ví dụ, với cách tạo hàm không tên hay còn gọi là hàm vô danh, hàm có thể được định nghĩa và gắn với biến như sau let divNums = function firstNum, secondNum { return firstNum/secondNum; } Các hàm vô danh thường được dùng trong JavaScript hướng đối tượng và dùng làm hàm xử lý sự kiện. Bao đóng – Closure Trong JavaScript, các hàm con bên trong có quyền truy cập đến các biến của hàm cha bên ngoài. Closure chỉ sự tồn tại của các biến bên ngoài ngữ cảnh thực thi thông thường của hàm. Closure thường được vô ý tạo ra và có thể gây rò rỉ bộ nhớ trong Windows Internet Explorer nếu không được xử lý đúng cách. Tuy nhiên, closure lại là một trong những tính năng mạnh trong javascript. Xem xét ví dụ sau function myFunction { let myNum = 10; function showNum { alertmyNum; } return showNum; } let callFunc = myFunction; myFunction; Trong ví dụ này, hàm showNum có quyền truy cập tới biến myNum được tạo ở hàm bên ngoài, hàm myFunction. Biến callFunc được tạo trong ngữ cảnh toàn cục và chứa một tham chiếu tới hàm showNum. Khi biến callFunc được tạo, nó lập tức có quyền truy cập tới biến myNum. Closure có thể được sử dụng để giả lập phương thức private bên trong đối tượng, và có thể áp dụng trong các hàm xử lý sự kiện. Các bạn có thể tham khảo các bài viết hay về JavaScript tại đây. Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.
hàm tính tiền trong javascript