hàm tính tiền trong javascript
Tìm hiểu cách chuyển đổi một số thành giá trị tiền tệ, sử dụng API quốc tế hóa JavaScript Giả sử bạn có một số như 10, và nó đại diện cho giá của một thứ gì đó. Bạn muốn chuyển đổi nó thành $10,00. Nếu số có nhiều hơn 3 chữ số, tuy nhiên, nó phải được hiển thị khác, ví dụ: 1000 nên được hiển thị dưới dạng $1,000.00 Tuy nhiên, đây là USD.
Viết một hàm count(obj) trả về số thuộc tính trong đối tượng: Cố gắng làm cho mã càng ngắn càng tốt. Bài 8. Chúng ta có một đối tượng: let user = { name: "John", years: 30 }; Viết lệnh hủy gán với yêu cầu: thuộc tính name vào biến name. thuộc tính years vào biến age.
JavaScript: phương thức getAttribute. getAttribute () Phương thức của Phần tử trả về giá trị của một thuộc tính được chỉ định. Nếu thuộc tính đã cho không tồn tại, giá trị trả về sẽ là null hoặc "" (chuỗi trống); xem Thuộc tính không tồn tại để biết chi tiết. Mẹo
Tình trạng tiêu xương hàm là một trong những hậu quả nghiêm trọng của việc mất răng gây ảnh hưởng xấu tới sức khỏe răng miệng. Vậy những nguyên nhân nào gây nên tình trạng tiêu xương hàm? Trung cấp Nha khoa. Trang chủ; Trung Cấp Nha Khoa
Để làm cho rõ ràng một hàm mong đợi những thuộc tính gì, bạn có thể sử dụng cấu trúc destructuring của ES6. thay đổi vài biến toàn cục, hoặc vô tình đưa tất cả tiền của bạn cho một người lạ. Trong JavaScript, các kiểu cơ bản được truyền theo giá trị và các
Leute Aus Der Umgebung Kennenlernen App. 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
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.
Trong bài này chúng ta sẽ tìm hiểu function trong Javascript. Function hay còn gọi là hàm, được sử dụng rất nhiều khi làm việc với viết này được đăng tại không được copy dưới mọi hình thức. Kể từ phiên bản ES6 trở đi thì hàm trong Javascript có rất nhiều cách tạo khác nhau, điển hình nhất là các khái niệm về arrow function, callback function, khiến những người mới học cảm thấy đau đầu. Nhưng bạn đừng quá lo lắng bởi trong bài này mình sẽ nói tất cả những kiến thức cần biết về function / hàm trong JS nhé. 1. Function trong Javascript là gì? Function hay còn gọi là hàm, là tập hợp một đoạn code dùng để xử lý một nhiệm vụ nào đó. 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. Ví dụ Bạn đang xây dựng chức năng hiển thị danh sách sản phẩm cho trang chủ, trang chuyên mục, ... và nhiều trang khác. Lúc này nếu trang nào bạn cũng code từ A - Z thì sẽ mất khá nhiều thời gian, thay vào đó hãy viết nó vào một function và gọi đến nó ở những trang cần sử viết này được đăng tại [free tuts .net] 2. Một ví dụ về lợi ích của function trong Javascript Từ bài 1 tới giờ ta đang code từng đoạn code riêng lẻ và khi cần thì code lại, như vậy giả sử ta cần xử lý vấn đề đó trong 1000 trường hợp thì ta phải code lại 1000 lần nên rất tốn thời gian, chính vì vậy người ta nghĩ ngay đến hàm, hàm sẽ gom một số đoạn code vào một khối xử lý và khi cần thì gọi ra dùng. Giả sử mình viết chương trình kiểm tra số chẵn hay lẻ như sau var number = 2; if number % 2 == 0{ alert'Số chẵn'; } else { alert'Số lẻ'; } Nếu mình cần kiểm tra cho 100 số thì sẽ viết lặp lại đoạn code trên 100 lần, điều này quả là tệ hại phải không các bạn? Nhưng đừng lo bởi khi sử dụng hàm trong Javascript thì ta sẽ gom chúng vào thư viện riêng và chỉ gọi tới khi cần. 3. Cách tạo function trong Javascript Trước tiên hãy xem cú pháp tạo hàm trong Javascript như thế nào đã nhé. Cú pháp function name_of_functionvar1, var2, var3, ... { // Some code } Trong đó function là từ khóa của javascript nên bắt buộc phải như vậy name_of_function là tên của hàm, thông thường chúng ta tạo những tên có ý nghĩa như find_max, find_min, ... var1, var2 var3, ... là các tham số truyền vào hàm. Ví dụ viết hàm kiểm tra số chẵn hay lẽ thì ta sẽ có một tham số đó là số cần kiểm tra. Đương nhiên bạn có thể tạo một hàm không có tham số. Ví dụ Viết hàm kiểm tra một số chẵn hay lẻ. // Tạo hàm function check_numbernumber { if number % 2 == 0{ alertnumber + ' là số chẵn'; } else { alertnumber + 'Số lẻ'; } } 4. Cách gọi hàm trong Javascript Để gọi hàm thì ta chỉ cần gọi đến tên hàm, sau đó truyền vào các tham số cần thiết. Ví dụ dưới đây là mình đã gọi hàm check_number 5 lần và có truyền giá trị cho tham số của hàm. // Sử dụng hàm kiểm tra cho 5 số check_number1; check_number2; check_number3; check_number4; check_number5; Các bạn thấy mình đã tạo một hàm với tham số truyền vào có tên là number. Như vậy khi sử dụng nếu ta truyền số 1 vào thì lúc này biến number trong hàm sẽ có giá trị là 1, tương tự cho 2, 3,4,5. Lưu ý với các bạn trong javascript không tồn tại khái niệm con trỏ và tham chiếu trong hàm 5. Hàm có return và hàm không có return Hàm có return là hàm có sử dụng từ khóa return để đặt ở cuối hàm với mục đích trả kết quả về để sử dụng tiếp ở những đoạn code bên ngoài. Ví dụ ta cần viết một hàm tính tổng của hai số a và b thì hàm này phải trả về giá trị là tổng của hai số a, b. Xem ví dụ sau // Khai báo hàm function tinh_tonga, b { // trả về kết quả là a + b return a + b; } // Sử dụng var so1 = 1; var so2 = 2; // truyền so1 và so2 vào hàm var ketqua = tinh_tongso1, so2; alertketqua; Hàm không có return là hàm không có sử dụng từ khóa return đặt trong hàm. Ví dụ viết chương trình in ra tổng của hai số a và b. // Khai báo hàm function tinh_tonga, b { là ' + a + b; } // Sử dụng var so1 = 1; var so2 = 2; // truyền so1 và so2 vào hàm tinh_tongso1, so2; Như vậy tùy vào mục đích mà ta dùng có return hay không có return. Nhưng thông thường ta sử dụng return ở những trường hợp cần lấy kết quả đó để xử lý tiếp, như ở ví dụ trên đó là mình lấy kết quả để in thông báo. 5. Giá trị mặc định của tham số default parameter 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. 6. Cách tạo hàm arrow function trong Javascript Arrow function còn được gọi là hàm mũi tên, tức là ta sẽ tạo hàm bằng cách sử dụng ký tự =>. Cách tạo này xuất hiện kể từ phiên bản ES6. Cú pháp var name_of_function = var1, var2, var3, ... => { // Nội dung function }; So sánh với cú pháp cơ bản mà chúng ta đã học ở đầu bài sẽ là function name_of_functionvar1, var2, var3, ... { // Nội dung function } Ví dụ Viết hàm kiểm tả một số có chia hết cho 3 hay không bằng hai cách trên. Cách 1 Sử dụng hàm thông thường. function chia_het_cho_3number{ if number % 3 == 0{ return true; } return false; } Cách 2 Sử dụng arrow function var chia_het_cho_3 = number => { if number % 3 == 0{ return true; } return false; }; 7. Một số ví dụ tạo hàm trong javascript Ví dụ 1 Viết chương trình kiểm tra một năm có phải là năm nhuận hay không Năm nhuận là năm chia hết cho 4, nếu chia hết cho 100 thì nó phải chia hết cho 400. Đây là định nghĩa năm nhuận còn chính xác hay không thì mình không biết nhé D vì có trường hợp nó sai. // khai báo hàm function kiem_tra_nam_nhuannam { // nếu năm chia hết cho 100 // thì kiểm tra nó có chia hết cho 400 hay không if nam % 100 == 0 { // nêu chia hết cho 400 thì là năm nhuận if nam % 400 == 0{ alertnam + ' là năm nhuận'; } else { // ngược lại không phải năm nhuận alertnam + ' không phải năm nhuận'; } } else if nam % 4 == 0{ // trường hợp chia hết cho 4 thì là năm nhuận alertnam + ' là năm nhuận'; } else { // cuối cùng trường hợp không phải năm nhuận alertnam + 'không phải là năm nhuận'; } } // sử dụng kiem_tra_nam_nhuan4; Ví dụ 2 thực hiện lại ví dụ trên nhưng sử dụng return để trả kết quả vè, nếu true thì là năm nhuận, false thì không phải năm nhuận. // khai báo hàm function kiem_tra_nam_nhuannam { // nếu năm chia hết cho 100 // thì kiểm tra nó có chia hết cho 400 hay không if nam % 100 == 0 { // nêu chia hết cho 400 thì là năm nhuận if nam % 400 == 0{ return true; } else { // ngược lại không phải năm nhuận return false; } } else if nam % 4 == 0{ // trường hợp chia hết cho 4 thì là năm nhuận return true; } else { // cuối cùng trường hợp không phải năm nhuận return false; } } // sử dụng var flag = kiem_tra_nam_nhuan4; if flag{ alert'là năm nhuận'; } else { alert'không phải là năm nhuận'; } Trong ví dụ này thay vì alert trực tiếp trong hàm thì ta trả về kết quả true/false, sau đó kiểm tra kết quả này nếu true thì là năm nhuận, nếu false thì không phải là năm nhuận. 9. Các hàm có sẵn trong Javascript là gì? Hàm có sẵn trong Javascript là những hàm được tích hợp sẵn trong trình biên dịch của Javascript. Bạn có thể gọi đến những hàm này ở bất cứ đâu trong chương trình. Mình có soạn một series riêng về danh sách các hàm trong js, mới bạn tham khảo tại đây. Lời kết Qua bài này bạn đã hiểu được cách tạo và sử dụng hàm trong javascript, Sau này khi lập trình với JS thì bạn sử dụng hàm rất nhiều, vì vậy cần phải nắm vững nó nhé.
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
hàm tính tiền trong javascript