ép kiểu trong javascript

Trong trường hợp này, công cụ JavaScript nằm trong mã trình duyệt. Tất cả các trình duyệt web phổ biến đều có các công cụ JavaScript tích hợp riêng. Kết quả cũng có thể bị ép chuyển thành một kiểu dữ liệu khác. Ví dụ: một phép toán có thể trả về kết quả là 3. Ép kiểu sử dụng '(T)' thay vì 'as (T)' Đây là lỗi phổ biến của các developer sử dụng cách ép kiểu '(T)' thay vì 'as (T)'. Và thưowngf thì không có tác động tiêu cực nào nhưng trong trường hợp không thể ép được thì ép kiểu (T) sẽ throw ra InvalidCastException còn Cách sử dụng thuộc tính visibility để hiện (ẩn) phẩn tử HTML. Để ẩn phẩn tử thì sử dụng display:none. Ngoài ra chúng ta cũng có thể sử dụng visibility:hidden. Tuy nhiên, hai phương thức trên sẽ cho ra hai kết quả khác nhau: display:none thì ẩn nguyên cái phần tử HTML. visibility 4. Ép kiểu sang number. Khi làm việc với JavaScript chắc chắn sẽ có lúc có data bạn cần phải convert từ kiểu string sang kiểu number, lúc này ta có 3 cách để ép kiểu: Number(): Chuyển đổi giá trị về kiểu number. parseInt(): Chuyển đổi giá trị sang số nguyên. Copy Constructor trong Java. Copy constructor trong Java là một constructor dùng để khởi tạo một object trong đó sử dụng một object khác có cùng kiểu dữ liệu. Copy constructor sẽ hữu ích khi chúng ta muốn sao chép dữ liệu từ một object (các giá trị của các trường bên trong object) khác Thành viên mới. Tham gia. 19/8/2020. Bài viết. 0. 13/10/2020. #1. Nhãn ép nhiệt, nhãn mác ép nhiệt, nhãn ép chuyển nhiệt, tem mác ép nhiệt, nhãn mác quần áo, nhãn sườn (Toàn Quốc) Màu sắc tươi đẹp, chi tiết sắc sảo. Hủy Hợp Đồng Vay Tiền Online. Ép kiểu ngầm định trong JavaScriptÉp kiểu tường minh trong JavaScript1. Ép kiểu tường minh thành number2. Ép kiểu tường minh thành chuỗi3. Ép kiểu tường minh thành BooleanBảng ép kiểu trong JavaScript Quá trình chuyển đổi từ kiểu dữ liệu này sang kiểu dữ liệu khác được gọi là chuyển đổi kiểu hay ép kiểu. Có hai loại ép kiểu trong JavaScript. Ép kiểu ngầm định Implicit Conversion Ép kiểu tường minh Explicit Conversion Ví dụ alert sẽ tự động chuyển bất kỳ kiểu dữ liệu nào về string để hiển thị chúng, các toán tử toán học sẽ tự động chuyển về kiểu number để thực hiện tính toán. Tuy nhiên trong nhiều trường hợp chúng ta muốn chuyển đổi kiểu về kiểu dữ liệu mà chúng ta mong muốn. Trong bài này chúng ta sẽ tìm hiểu về các cách thay đổi kiểu dữ liệu. >> Xem ngay Tài liệu Java Core giúp bạn “Nâng Cấp” kỹ năng bản thân Trong một số tình huống nhất định, JavaScript tự động chuyển đổi từ kiểu dữ liệu này sang kiểu dữ liệu khác chuyển sang kiểu phù hợp. Đây được gọi là Ép kiểu ngầm định. Ví dụ 1 Ép kiểu ngầm định thành chuỗi // numeric string used with + gives string type let result; result = '3' + 2; // "32" result = '3' + true; // "3true" result = '3' + undefined; // "3undefined" result = '3' + null; // "3null"Code language JavaScript javascript Lưu ý Khi một số được thêm vào một chuỗi, JavaScript sẽ chuyển đổi số đó thành một chuỗi trước khi nối. Ví dụ 2 Ép kiểu ngầm định thành number // numeric string used with +, - , / , * results number type let result; result = '4' - '2'; // 2 result = '4' - 2; // 2 result = '4' * 2; // 8 result = '4' / 2; // 2Code language JavaScript javascript Ví dụ 3 Sử dụng các toán tử +, - , / , * với chuỗi, kết quả sẽ là NaN // non-numeric string used with +, - , / , * results to NaN let result; result = 'hello' - 'world'; // NaN result = '4' - 'hello'; // NaNCode language JavaScript javascript Ví dụ 4 Ép kiểu ngầm định Boolean thành number // if boolean is used, true is 1, false is 0 let result; result = '4' - true; // 3 result = 4 + true; // 5 result = 4 + false; // 4Code language JavaScript javascript Lưu ý JavaScript coi 0 là false và tất cả các số khác 0 là true. Và nếu true được chuyển đổi thành một số, kết quả luôn là 1. Ví dụ 5 Ép kiểu ngầm định null thành number // null is 0 when used with number let result; result = 4 + null; // 4 result = 4 - null; // 4Code language JavaScript javascript Ví dụ 6 Undefined kết hợp với number, boolean và null // Arithmetic operation of undefined with number, boolean and null gives NaN let result; result = 4 + undefined; // NaN result = 4 - undefined; // NaN result = true + undefined; // NaN result = null + undefined; // NaNCode language JavaScript javascript Ép kiểu tường minh trong JavaScript Bạn cũng có thể chuyển đổi từ kiểu dữ liệu này sang kiểu dữ liệu khác theo ý muốn của mình. Chuyển đổi kiểu dữ liệu mà bạn thực hiện theo cách thủ công được gọi là Ép kiểu tường minh. Trong JavaScript, các ép kiểu tường minh được thực hiện bằng cách sử dụng các phương thức có sẵn. Dưới đây là các ép kiểu tường minh thường được sử dụng 1. Ép kiểu tường minh thành number Để ép kiểu chuỗi và boolean thành number, bạn có thể sử dụng Number. Ví dụ let result; // string to number result = Number'324'; // 324 result = Number'324e-1' // // boolean to number result = Numbertrue; // 1 result = Numberfalse; // 0Code language JavaScript javascript Trong JavaScript, chuỗi rỗng và giá trị null trả về 0. Ví dụ let result; result = Numbernull; // 0 let result = Number' ' // 0Code language JavaScript javascript Nếu một chuỗi là một số không hợp lệ, kết quả sẽ là NaN. Ví dụ let result; result = Number'hello'; // NaN result = Numberundefined; // NaN result = NumberNaN; // NaNCode language JavaScript javascript Lưu ý Bạn cũng có thể tạo các số từ các chuỗi bằng cách sử dụng parseInt, parseFloat, toán tử một ngôi + và Ví dụ let result; result = parseInt' // 20 result = parseFloat' // result = +' // result = // 20Code language JavaScript javascript 2. Ép kiểu tường minh thành chuỗi Để chuyển đổi các kiểu dữ liệu khác thành chuỗi, bạn có thể sử dụng String hoặc toString. Ví dụ //number to string let result; result = String324; // "324" result = String2 + 4; // "6" //other data types to string result = Stringnull; // "null" result = Stringundefined; // "undefined" result = StringNaN; // "NaN" result = Stringtrue; // "true" result = Stringfalse; // "false" // using toString result = 324.toString; // "324" result = // "true"Code language JavaScript javascript 3. Ép kiểu tường minh thành Boolean Để chuyển đổi các kiểu dữ liệu khác thành boolean, bạn có thể sử dụng Boolean. Trong JavaScript, undefined, null, 0, NaN, ' ' sẽ chuyển thành false. Ví dụ let result; result = Boolean''; // false result = Boolean0; // false result = Booleanundefined; // false result = Booleannull; // false result = BooleanNaN; // falseCode language JavaScript javascript Còn những giá trị khác sẽ cho kết quả là true. Ví dụ result = Boolean324; // true result = Boolean'hello'; // true result = Boolean' '; // trueCode language JavaScript javascript Bảng ép kiểu trong JavaScript Dưới đây là bảng hiển thị việc chuyển đổi các giá trị khác nhau thành Chuỗi, Số và Boolean trong JavaScript. Giá trịÉp kiểu thành chuỗiÉp kiểu thành sốÉp kiểu thành Boolean1“1”1true0“0”0false“1”“1”1true“0”“0”0true“ten”“ten”NaNtruetrue“true”1truefalse“false”0falsenull“null”0falseundefined“undefined”NaNfalse”“”0false ” “0true Các bạn có thể tham khảo các bài viết hay về JavaScript tại đây. Tìm hiểu thêm về Clean Code tại Có hai loại ép kiểu trong JavaScript. Ép kiểu ngầm định Implicit Conversion Ép kiểu tường minh Explicit Conversion Ví dụ alert sẽ tự động chuyển bất kỳ kiểu dữ liệu nào về string để hiển thị chún Domain Liên kết Bài viết liên quan ép kiểu trong javascript JavaScript Ép kiểu Các kiểu dữ liệu cơ bản trong JavaScript. ... JavaScript Kiểu dữ liệu số. JavaScript Toán tử. JavaScript Symbol. JavaScript Ép kiểu. Mảng trong Javascript. ... JavaScript Mảng đa chiều. Kiểm soát Xem thêm Chi Tiết 1. Tại sao phải sử xử lý chuỗi? Các chuỗi mà ta phải xử lý không hề đơn giản một chút nào. Nó có thể đơn giản cũng có thể phức tạp mà ta cần phải sử lý cẩn thận nếu không muốn gặp vấn đề gì. Bài trước thì mình đã nói về chuỗi và các bạn cũng đã hiểu được phần nào về chuỗi và cấu tạo của nó rồi. Và bài này mình sẽ nói sâu thêm về chuỗi cũng như là để các bạn nắm được việc xử lý chuỗi. Một chuỗi sẽ có phương thức và thuộc tính, với việt truy cập vào các phương thức và thuộc tính của chuỗi, ta có thể đảm bảo những công việc như đếm số lượng ký tự chuỗi, chuyển toàn bộ ký tự chuỗi về dạng chữ in hoa, in thường, trích xuất chuỗi con bên trong chuỗi,… Tuy nhiên, để sử dụng được các phương thức và thuộc tính này thì trước hết bạn cần phải hiểu rõ khái niệm chỉ số của ký tự trong chuỗi và hãy xem lại ở bài trước nhé. Các giá trị nguyên thủy primitive values như “Thành Nguyễn” , không thể có thuộc tính hay phương thức vì nó không phải là đối tượng. Nhưng với JavaScript, các phương thức và thuộc tính cũng có sẵn cho các giá trị nguyên thủy, vì JavaScript xử lý các giá trị nguyên thủy như các đối tượng khi thực thi các phương thức và thuộc tính. Để đếm số lượng ký tự của một chuỗi, ta truy cập vào thuộc tính length của chuỗi đó. Ví dụ var text = "Tai lieu hoc JavaScript"; var a = //Biến a sẽ có giá trị là 23 var b = "JavaScript".length; //Biến b sẽ có giá trị là 10 3. Cách nối chuỗi trong JavaScript Để nối chuỗi string trong JS thì chúng ta sử dụng dấu + để gép hai chuỗi hoặc biến kiểu String Object lại với nhau. Ví dụ ta sẽ ghép 2 chuỗi lại với nhau rồi bán vào một biến bất kỳ var LT = "chào mừng bạn" + "đến với // hoặc một cách khác var LT1 = "chào mừng bạn"; var LT2 = "đến với // Nối hai chuỗi var LT = LT1 + LT2; 4. Xử lý chuỗi trên nhiều dòng trong JavaScript Khi bạn muốn Enter xuống hàng một chuỗi trong Javascript thì bắt buộc phải sử dụng dấu + để nối chuỗi, nếu không sẽ bị lỗi cú pháp. Ví dụ dùng dấu + để nối chuỗi // Đúng var LT = "Chào mừng bạn đến với" + " // Sai var LT = "Chào mừng bạn đến với Nếu bạn muốn viết gọn hơn thì sử dụng dấu \ để báo cho trình duyệt biết là có xuống hàng. Ví dụ dùng ký tự \ để khai báo chuỗi trên nhiều dòng var LT = "Chào mừng bạn đến với \ // hoặc cũng có thể sử dụng dấu '' 5. Ép chuỗi trong JavaScript Nếu bạn muốn ép một giá trị nào đó sang kiểu chuỗi thì có thể sử dụng cú pháp Ví dụ // Trước khi chuyển đổi var number = 12; alerttypeof number; // Sau khi chuyển đổi number = alerttypeof number; Từ khóa typeof var sẽ trả về kiểu dữ liệu của biến vars. Ngoài cách trên thì ta có thể sử dụng đối tượng chuỗi để tạo hoặc ép chuỗi nhưng ta sẽ học ở phần đối tượng sau. 6. Cắt chuỗi trong JavaScript Để cắt một chuỗi trong Js ta có thể sử dụng một trong 3 hàm sau slicestart, end substringstart, end substrstart, length Chú ý Mình muốn lưu ý luôn với các bạn rằng trước khi cắt chuỗi thì tất cả các vị trí chuỗi đều bắt đầu từ 0 nên đừng nhầm lẫn nhé! Hàm Slice Hàm slice có 2 tham số truyền vào start vị trí bắt đầu end vị trí kết thúc Ví dụ var string = "Welcome to cần lấy là " + 23; Nếu tham số truyền vào là số âm thì nó sẽ tính ngược lại, nghĩa là nó sẽ đếm từ cuối lên. Ví dụ var string = "Welcome to cần lấy là " + 23; Nếu ta chỉ truyền vào tham số đầu tiên thì Js sẽ tự hiểu rằng vị trí end sẽ là vị trí cuối cùng của chuỗi mà ta lấy Ví dụ var string = "Welcome to cần lấy là " + Hàm substring Hàm substring cũng tương tự như hàm silce chỉ khác rằng tham số truyền vào hàm này luôn phải lớn hơn 0 Ví dụ var string = "Welcome to cần lấy là " + 23; Hàm substr Hàm substr có hai tham số là start và length, trong đó start là vị trí bắt đầu và length là số ký tự muốn lấy bắt đầu từ vị trí start . Nếu bạn truyền tham số start là số âm thì nó sẽ tính từ cuối trở lên, còn tham số length phải luôn luôn là số dương. Ví dụ var string = "Welcome to cần lấy là " + 12; 7. Chuyển đổi chuỗi sang chữ hoa và chữ thường trong JavaScript Ta có thể chuyển đổi chuỗi thành chữ hoa với toUpperCase Ví dụ let text1 = "Hello World!"; let text2 = Và một chuỗi được chuyển thành chữ thường với toLowerCase Ví dụ let text1 = "Hello World!"; // chuỗi let text2 = // text2 được chuyển đổi text1 thành chữ thường 8. Phương thức concat trong JavaScript Phương thức concat là phương thức mà ta dùng để kết hợp 2 hay nhiều chuỗi lại với nhau. Ví dụ var text1 = "Lập Trình"; var text2 = "Từ Đầu!"; var text3 = ", text2; Phương thức concat có thể được sử dụng thay thế cho toán tử cộng. Hai dòng dưới đây có chức năng tương đương var text = "Lập Trình" + " " + "Từ Đầu!"; var text = "Lập Trình".concat" ", "Từ !"; Chú ý Tất cả các phương thức của chuỗi đều trả về một chuỗi mới mà không làm ảnh hưởng đến chuỗi ban đầu. Chúng ta đã cùng nhau tìm hiểu các kiểu dữ liệu có trong JavaScript ở bài trước, tuy nhiên chúng ta vẫn chưa biết cách thao tác với chúng như thế nào trong JavaScript, nó có hổ trợ các phương thức nào hay không? Vấn đề đó, chúng ta sẽ cùng nhau tìm hiểu trong bài này nhé 😉.I. không giống như nhiều ngôn ngữ lập trình khác, nó không có kiểu dữ liệu dành cho số như integer, short, long, float, double, ... mà nó chỉ có mỗi kiểu với số nguyên trong JavaScript nó có độ chính xác đến 15 con số, cụ thể như saulet a = 999999999999999; // Giá trị của a lúc này là à 999999999999999 let b = 9999999999999999; // Đối với giá trị vượt quá 15 số thì b lúc này là 10000000000000000Ngoài ra, số thập phân cũng có giới hạn của nó là 17 số. Tuy nhiên việc tính toán với số thập phân trong JavaScript không phải lúc nào cũng chính xác, cụ thể như saulet a = + //-> Bạn nghĩ rằng a = //-> Output a = biết nguyên nhân tại sao bạn tìm hiểu khái niệm floating-point nhé 😉.Để khắc phục vấn đề này ta có thể nhân số thập phân với số nguyên rồi mới thực hiện phép tính, cụ thể như saulet total = * 10 + * 10/10 //->Output total = ý Trong JavaScript, việc cộng 2 số với nhau tất nhiên sẽ cho kết quả là số, tuy nhiên cộng số với chuỗi thì JavaScript sẽ tự động convert số thành chuỗi và cộng 2 chuỗi với nhau, kết quả cuối cùng sẽ là một chuỗi đó nhé 🤭. Do đó trước khi tính toán, chúng ta cần convert hết qua thành số rồi làm gì thì làm nhé 😁.1. Convert number to muốn chuyển đổi từ kiểu number sang string, ta có thể sử dụng phương thức toString, cụ thể như saulet num = 2021; //->Output "2021"Ngoài ra ta còn có thể convert từ number sang string ở dạng nhị phân, bát phân, thập phân và thập lục phân đó 😉let num = 240; //Nhị phân //->Output "11110000" //Bát phân //->Output "360" //Thập phân //->Output "240" //Thập lục phân //->Output "f0"2. Infinity - Dương vô hay dương vô cực cũng thuộc kiểu dữ liệu number. Khi một biến chứa giá trị mà vượt mức lưu trữ cho phép thì biến đó có giá trị là Infinity. Nó cũng là một giá trị nên ta có đem đi so sánh Infinity; //-> Output "number" let a = 5/ 0; //-> Output a = Infinity let num = 5; whilenum != Infinity { num = num * num; } //-> Output /* 25 625 390625 152587890625 Infinity */Vậy âm vô cực thì sao??? Thì là -Infinity đó 😁let num = 4 / 0; //-> Output -Infinity3. NaN - Not a là một giá trị có trong JavaScript, nó dùng để xác định một số không phải là số hợp lệ. Nếu bạn thực hiện các phép tính với number mà bằng cách nào đó nó vi phạm quy tắc tính toán của JavaScript thì nó sẽ trả về kết quả là dụ ta chia một số cho một chuỗi chẳng hạn 🤭.let total = 200 / "Hai trăm"; //->Output NaN typeof NaN; //-> Output "number"Để kiểm tra một biến có phải là NaN hay không ta sử dụng phương thức isNaN, nếu đúng thì return true ngược lại return x = 199 / "Not a number"; isNaNx; //-> Output true4. Ép kiểu sang làm việc với JavaScript chắc chắn sẽ có lúc có data bạn cần phải convert từ kiểu string sang kiểu number, lúc này ta có 3 cách để ép kiểuNumber Chuyển đổi giá trị về kiểu Chuyển đổi giá trị sang số Chuyển đổi giá trị sang số thập //-> 200 Number //-> Number2,2; //-> NaN Number2 2; //-> NaN Number"Alice"; //-> NaN Numbertrue; //-> 1 Numberfalse; //-> 0parseInt"123"; //-> 123 parseInt" //-> 9 parseInt"10 20 30"; //-> 10 parseInt"100 years"; //-> 100 parseInt"years 10"; //-> NaNparseFloat"10"; //-> 10 parseFloat" //-> parseFloat"10 20 30"; //-> 10 parseFloat"10 years"; //-> 10 parseFloat"years 10"; //-> NaN5. Làm tròn khi những tính toán cho kết quả không mong muốn như cho ra kết quả dạng tập phân và bạn muốn làm tròn con số đó lên, trong JavaScript bạn có thể sử dụng phương thức toFixed để làm tròn các con số x = //-> 10 //-> //-> //-> là một loại dữ liệu khá phổ biến trong JavaScript, một biến chứa các giá trị là các ký tự và được đặt trong dấu nhấy đơn '' hay dấu nháy kép "".let mess = 'Welcome to 200Lab'; let say = "Hello!";Một lưu ý cho các bạn, khi trong chuỗi bắt buộc có dấu nhấy đơn hoặc nhấy kép thì bạn phải thêm ký tự \ ở trước dấu nhấy đó, như ví dụ bên txt = "\"200Lab Education\" Học viện đào tạo kỹ sư phần mềm chuyên sâu qua dự án thực tế";Ngoài ra trong chuỗi còn có các dấu, support cho các vấn đề khác mà bạn có thể quan tâm như Code Kết quả ' single quote - Dấu nhấy đơn \" double quote - Dấu nhấy kép \\ backslash - Dấu chéo ngược \n new line - Xuống dòng mới \r carriage return \t tab \b backspace - Tạo khoảng trống \f form feed 1. Lấy độ dài của có thể lấy độ dài của một chuỗi bằng phương thức text = "200Lab"; //-> 62. Tìm kiếm chuỗi con trong một có thể sử dụng hàm indexOf để tìm một chuỗi con trong một chuỗi tìm thấy, nó sẽ trả về vị trí đầu tiên của ký tự có trong chuỗi không tìm thấy, nó sẽ trả về -1let mess = "JS is a programming language"; //-> 8 //-> -1Ngoài ra, nếu bạn muốn tìm vị trí cuối cùng của chuỗi con thì bạ có thể sử dụng lastIndexOflet mess = "JS is a programming language pro"; //-> 29À vị trí bắt đầu trong chuỗi là 0 nha 😁.3. Tách việc với chuỗi thì chắc chắn bạn sẽ phải không ít thì nhiều lần phải tách một chuỗi thành nhiều chuỗi theo mục đích của mình. Trong JavaScript, nó có 3 cách để tách dụng hàm slicestart, end, nó sẽ tách chuỗi từ vị trí start đến end-1let mess = "JS is a programming language pro"; 19; //-> "programming" // Nếu tham số là số âm thì nó sẽ đếm từ phía cuối chuỗi đến đầu chuỗi -13; //-> "programming" // Nếu không có tham số end thì nó sẽ tính từ start đến hết chuỗi //-> "programming language pro" //-> "programming language pro"Sử dụng subString, nó giống với slice, tuy nhiên lại không chơi với giá trị mess = "JS is a programming language pro"; 19; //-> "programming"substr cũng tương tự như slice nhưng không có tham số end, tham số thứ hai là độ dài của chuỗi bạn muốn cắt. Nó cũng nhận tham số bắt đầu là số âm, nếu không xác định độ dài chuỗi muốn cắt thì nó sẽ tính từ vị trí bắt đầu ta truyền vào cho đến hết mess = "JS is a programming language pro"; 11; //-> "programming" //-> "programming language pro" //-> "pro"4. Thay thế quá trình taho tác với chuỗi, nếu muốn thay thế một đoạn chuỗi nhỏ nào đó trong một chuỗi lớn thì ta có thể dùng hàm replace.var str = 'Please visit Microsoft and Microsoft!'; var n1 = 'W3Schools'; var n2 = "W3Schools"; //-> "Please visit W3Schools and Microsoft!" //-> "Please visit W3Schools and W3Schools!"5. Chuyển sang chuỗi hoa hoặc chuỗi chuyển đoạn chuỗi sang chuỗi in hoa ta sử dụng phương thức toUpperCase, in thường dùng toLowerCase.var text = 'Hello World!'; var textUp = //-> "HELLO WORLD!" var textLow = //-> "hello world!"6. Nối nối chuỗi ta sử dụng hàm concatlet text1 = 'Hello' let text2 = 'World' let merText = ', text2 //-> "Hello World"Ngoài ra còn một cách đơn giản là ta sử dụng dấu + 😁.let text1 = 'Hello' let text2 = 'World' let merText = text1 + ' ' + text2; //-> "Hello World"7. Xóa khoảng trắng hai bên xóa khoảng trắng hai bên chuỗi ta dùng hàm trim. Thường ta có thể dùng phương thức để xóa các khoảng trống mà người dùng nhập thừa đấy 😉.let str = ' 200Lab '; let newStr = //-> "200Lab"8. Cách lấy từng giá trị trong chuỗi thì chung quy lại nó cũng chỉ là một mảng chứa các ký tự, do đó để lấy các giá trị trong chuỗi ta dùng [] hoặc hàm charAt.let str = "200Lab"; //-> "2" str[3]; //-> "L"9. Lấy UTF-16 code tại vị trí bất kì trong lấy bất kỳ các code UTF-16 tại các vị trí bất kỳ trong chuỗi ta dùng hàm charCodeAt.let str = "JS basic!"; //-> 7410. Chuyển chuỗi sang chuyển một chuỗi sang dạng mảng ta sử dụng hàm split, tham số đầu vào của hàm là một chuỗi để ngăn str = "200lab Education", str1 = "a,b,c,d,e,f,g,h"; let arrStr1 = //-> ["a", "b", "c", "d", "e", "f", "g", "h"] // Nếu tham số là rỗng thì sẽ return về mảng từng ký tự let arrStr = //-> ["2", "0", "0", "l", "a", "b", " ", "E", "d", "u", "c", "a", "t", "i", "o", "n"]III. hay mảng là một tập hợp các phần tử, mỗi phần tử sẽ được đánh dấu thứ tự bằng chỉ mục hay index và index bắt đầu từ Lấy độ dài của tự chuỗi, để lấy độ dài của mảng ta dùng phương thức arr = [1, 2, 3, 4, 5]; //-> 52. Kiểm tra biến có chứa dữ liệu dạng mảng hay check xem một biến có chứa data dạng mảng hay không, ta dùng hàm isArray hoặc fruits = ['Banana', 'Orange', 'Apple', 'Mango'] //-> true fruits instanceof Array //-> true3. Chuyển mảng sang chuyển một mảng sang một chuỗi ta dùng hàm toString hoặc joinconst cars = ['Honda', 'Hyundai', 'Ford', 'Toyota']; const str1 = //-> "Honda,Hyundai,Ford,Toyota" const str2 = //-> "Honda-Hyundai-Ford-Toyota"4. Thêm phần tử vào cuối một phần tử mới vào mảng ta sử dụng hàm push, ngoài add thêm phần tử vào mảng nó còn return lại độ dài của mảng cars = ['Honda', 'Hyundai', 'Ford', 'Toyota']; const x = //-> 5 //-> ["Honda", "Hyundai", "Ford", "Toyota", "Suzuki"]5. Xóa phần tử ở cuối xóa một phần tử ở cuối mảng, ta dùng hàm pop và nó return lại giá trị mà nó vừa cars = ['Honda', 'Hyundai', 'Ford', 'Toyota']; const x = //-> "Toyota" //-> ["Honda", "Hyundai", "Ford"]6. Thêm phần tử vào đầu cho phép ta thêm 1 phần tử mới vào đầu mảng và return lại chiều dài mảng cars = ['Honda', 'Hyundai', 'Ford', 'Toyota']; const x = //-> 5 //-> ["Suzuki", "Honda", "Hyundai", "Ford", "Toyota"]7. Xóa phần tử ở đầu hàm shift ta có thể xóa phần tử đầu tiên của mảng và đồng thời return lại phần tử vừa cars = ['Honda', 'Hyundai', 'Ford', 'Toyota']; const x = //-> "Honda" //-> ["Hyundai", "Ford", "Toyota"]Lưu ý ta cũng có thể dùng delete operator để xóa bất kỳ phần tử nào có trong mảng. Tuy nhiên chỉ giá trị của phần tử được xóa nên lại để lại một khoảng trống trong mảng. Khi ta truy xuất đến khoảng trống này, ta nhận được giá trị của nó là cars = ['Honda', 'Hyundai', 'Ford', 'Toyota']; delete cars[0]; //-> [empty, "Hyundai", "Ford", "Toyota"] //-> undefined8. Thêm hoặc xóa nhiều phần tử trong 1 hàm splice, ta có thể thêm hoặc xóa nhiều phần tử trong mảng và return lại mảng với các phần tử mà ta đã pháp của nó như sau splicevị trí thêm, số lượng cần xóa, … phần tử thêmconst cars = ['Honda', 'Hyundai', 'Ford', 'Toyota']; //Thêm vào vị trí thứ 2 const x = 0, 'Suzuki', 'Isuzu'; //-> [] Vì ta không xóa nên mảng sẽ là rỗng //-> ["Honda", "Hyundai", "Suzuki", "Isuzu", "Ford", "Toyota"]const cars = ['Honda', 'Hyundai', 'Ford', 'Toyota']; // Xóa 1 phần tử tại vị trí số 0 const x = 1 //-> [ "Honda" ] //-> ["Hyundai", "Ford", "Toyota"]9. Ghép concat cũng có thể ghép 2 mảng lại với myGirls = ['Alice Rondo', 'Luminous Valentine']; const myBoys = ['Diablo', 'Guy Crimson', 'Leon Cromwell']; const myChildren = //-> ["Alice Rondo", "Luminous Valentine", "Diablo", "Guy Crimson", "Leon Cromwell"]10. Tách mảngMuốn tách mảng thì ta sử dụng hàm slice, với cú phápslicevị trí bắt đầu, vị trí kết thúcconst cars = ['Honda', 'Hyundai', 'Ford', 'Toyota']; //Tách từ vị trí đầu đến hết mảng. const x = //-> ["Hyundai", "Ford", "Toyota"] //tách ra 1 mảng mới bắt đầu tại vị trí 1 đến 2 3-1 const y = 3; //-> ["Hyundai", "Ford"]11. Spread là một khái niệm mới đây, được ra mắt từ ES6 ES2015, nó phân rã mảng object thành từng phần tử nhỏ ví dụ [1,2,3] => 1,2,3.const nums_1 = [1, 2, 3]; const nums_2 = [3, 4, 5]; // Nối mảng const newNums = [...nums_1, ...nums_2]; //- trueHiện nay Spread operator được sử dụng thương xuyên trong lập trình và thao tác với mảng đấy 😉.12. Lặp mảng hay duyệt mảng thì đây là cách thức ta thường phải sử dụng để thao tác với mảng, ngoài for thông thường, ta còn có forEach, map, filter, find, findIndex, every, some. Cùng nhau tìm hiểu từng loại một nhé 😁.forEach Lặp qua từng phần tử có trong mảng. Tham số truyền vào forEach là một callback function với 3 đối số gồmGiá trị phần của phần đang thực numbers = [1, 2, 3, 4, 5]; let newNumbers = []; index, array => { }; //-> [1, 2, 3, 4, 5]map cho phép tạo một mảng mới bằng cách thực hiện tính toán trên mỗi phần tử, map không làm thay đổi mảng numbers = [1, 2, 3, 4, 5]; let newNumbers = index, array => { return value * 2; }; //-> [2, 4, 6, 8, 10] filter cho phép tạo một mảng mới với những phần tử nào thỏa điều kiện ta đặt ra. Hàm này thường được dùng để tìm kiếm phần tử trong numbers = [1, 2, 3, 4, 5]; let newNumbers = index, array => { return value >=3; }; //-> [3, 4, 5]find Hàm này trả về phần tử thỏa điều kiện đầu tiên, nếu không có sẽ return undefined. Thường dùng hàm này để tìm kiếm phần tử trong numbers = [1, 2, 3, 4, 5]; let result = index, array => { return value > 1; }; //-> 2 let resultUn = index, array => { return value > 5; }; //-> undefinedfindIndex Hàm này trả về index của phần tử thỏa điều kiện đầu tiên, nếu không có sẽ return cars = ['Suzuki', 'Toyota', 'Hyundai']; const result = index, array => { return value === 'Toyota'; }; //-> 1 const resultUn = index, array => { return value === 'Yamaha'; }; //-> -1every Nếu mọi phần tử thỏa điều kiện sẽ return true, còn không sẽ return false, đơn giản vậy thôi 😁.const numbers = [1, 2, 3, 4, 5]; const checkF = index, array => { return value > 2; }; //-> false const checkT = index, array => { return value >= 1; }; //-> truesome Nếu có một phần tử bất kỳ nào thỏa điều kiện thì sẽ return true, còn không thì sẽ return numbers = [1, 2, 3, 4, 5]; const check = index, array => { return value > 2; }; //-> true13. Lấy index của phần tử lấy giá trị index của phần tử có trong mảng ta dùng hàm indexOf và truyền vào giá trị mà bạn muốn lấy cars = ['Honda', 'Hyundai', 'Ford', 'Toyota']; let index = //-> 214. Kiểm tra phần tử có trong mảng hay check xem phần tử nào đó có trong mảng hay không ta dùng hàm includes và truyền vào giá trị bạn muốn tìm. Nếu có nó sẽ return true không thì return falseconst numbers = [1, 2, 3, 4, 5]; const check = //-> trueIV. của object là cặp key, value tương ứng, entry còn được coi như là property thuộc tính của object. Key của object luôn là string hoặc của object thì có thể thuộc bất cứ kiểu dữ liệu nào kể cả là function. Method hay phương thức là những thuộc tính mà value của nó là function1. prototype objectPrototype là một cơ chế của JavaScript, giúp object thừa kế các tính năng của object các kiểu dữ liệu trong JavaScript mà ta đã biết thì nó cũng như bao ngôn ngữ lập trình khá còn có các object kiểu dữ liệu như Number, String, Boolean. Mảng là một object dạng Array còn function là một object dễ hiểu hơn, chúng ta cùng xem ví dụ và giải thích nhé 😉.let str = 'String'; // str là string, cha nó là // nhân đôi chuỗi đưa vào = function { return this + this; }; // Tìm thấy hàm duplicate trong prototype// object thông thường const person = { firstName 'Alice', lastName 'Rondo', showName function { + ' ' + } }; //-> object person có prototype là Constructor Function function PersonfirstName, lastName { = firstName = lastName = function { + ' ' + } } let Person_1 = new Person'Alice', 'Rondo'; /* - object này có prototype là - Prototype mới được tạo ra - kế thừa */Thử thêm một phương thức vào object được tạo từ một constructor function// STEP 0 tạo ra 1 hàm và khởi tạo một object s1 bằng toán tử new function Studentname, age { = name = age } const s1 = new Student'Alice Rondo', 9 // STEP 1 thêm một hàm saySomeThing cho Student như sau = function { } // STEP 2 thêm 1 hàm showName cho prototype của Student như sau = function { name is ', } // STEP 3 Gọi lần lượt hai hàm trên từ object s1 //-> Lỗi, vì s1 không có hàm saySomeThing, hàm này chỉ thuộc Student thôi. //-> 'My name is Alice Rondo' //->'Hello'Ta có thể edit prototype của một function thông qua object được tạo từ function đó bằng __proto__ như sau = function { là ${ tôi đang học.` } const s2 = new Student'Milim Nava', 20 //-> "Tôi là Milim Nava, tôi đang học."2. Truy xuất, thêm, xóa, sửa thuộc tính của person = { name 'Alice Rondo', }; // Lấy giá trị của thuộc tính name // Thêm thuộc tính vào person = 12; // Sửa thuộc tính name = 'Rimuru Tempest'; // Xóa thuộc tính name delete Merge merge 2 object lại với nhau ta dùng phương thức person = { name 'Rimuru Tempest', position ['King of Jura Tempest Federation'], }; const person2 = { position ['King of Monsters'] }; /* { name 'Rimuru Tempest', positon ['King of Monsters'] } */Spread operator cũng có thể dùng để shallow copy hoặc merge object lại nhé 😁const person = { name 'Rimuru Tempest', position ['King of Jura Tempest Federation'], } const person2 = { ...person, position ['King of Monsters'] } /* { name 'Rimuru Tempest', positon ['King of Monsters'] } */4. Lấy các key của lấy tất cả các key của một object ta dùng phương thức nó sẽ return một mảng chứa tất cả các key của object person = { name "Remuru Tempest", age 24 }; //-> [ "name", 'age" ]5. Lấy các value của lấy tất cả các value của một object ta dùng phương thức nó sẽ return một mảng chứa tất cả các value của object person = { name "Remuru Tempest", age 24 }; //-> ["Remuru Tempest", 24]V. Tổng viết tuy hơi dài, nhưng mình đã cố gắng giới thiệu cho các bạn những phương thức thừng hay sử dụng để thao tác với các data là number,`string, array hay object trong khi học hay làm việc với ngôn ngữ JavaScript, ngoài ra còn nhiều phương thức khác nữa đó nha, bấy nhiêu đó chưa có hết đâu 😁. Tuy vậy, mình hy vọng bài viết này sẽ có ích cho các bạn, cảm ơn các bạn đã đọc 🤗. Ép kiểu ngầm định trong JavaScriptÉp kiểu tường minh trong JavaScript1. Ép kiểu tường minh thành number2. Ép kiểu tường minh thành chuỗi3. Ép kiểu tường minh thành BooleanBảng ép kiểu trong JavaScriptNội dung chínhÉp kiểu tường minh trong JavaScript 1. Ép kiểu tường minh thành number2. Ép kiểu tường minh thành chuỗi3. Ép kiểu tường minh thành BooleanBảng ép kiểu trong JavaScriptQuá trình chuyển đổi từ kiểu dữ liệu này sang kiểu dữ liệu khác được gọi là chuyển đổi kiểu hay ép kiểu. Có hai loại ép kiểu trong kiểu ngầm định Implicit ConversionÉp kiểu tường minh Explicit ConversionVí dụ alert sẽ tự động chuyển bất kỳ kiểu dữ liệu nào về string để hiển thị chúng, các toán tử toán học sẽ tự động chuyển về kiểu number để thực hiện tính nhiên trong nhiều trường hợp chúng ta muốn chuyển đổi kiểu về kiểu dữ liệu mà chúng ta mong muốn. Trong bài này chúng ta sẽ tìm hiểu về các cách thay đổi kiểu dữ một số tình huống nhất định, JavaScript tự động chuyển đổi từ kiểu dữ liệu này sang kiểu dữ liệu khác chuyển sang kiểu phù hợp. Đây được gọi là Ép kiểu ngầm dụ 1 Ép kiểu ngầm định thành chuỗi// numeric string used with + gives string type let result; result = '3' + 2; // "32" result = '3' + true; // "3true" result = '3' + undefined; // "3undefined" result = '3' + null; // "3null"Code language JavaScript javascriptLưu ý Khi một số được thêm vào một chuỗi, JavaScript sẽ chuyển đổi số đó thành một chuỗi trước khi dụ 2 Ép kiểu ngầm định thành numberCó thể bạn quan tâmThời tiết ở Zürich trong tháng Ba 2023Ai có lượt chọn đầu tiên trong Dự thảo NFL năm 2023?Những người chơi nào tôi sẽ nhắm mục tiêu trong phiên đấu giá IPL 2023?3 sát khí năm 2023 là hướng nào?Có bao nhiêu ngày làm việc trong năm 2024 theo tháng?// numeric string used with +, - , / , * results number type let result; result = '4' - '2'; // 2 result = '4' - 2; // 2 result = '4' * 2; // 8 result = '4' / 2; // 2Code language JavaScript javascriptVí dụ 3 Sử dụng các toán tử +, - , / , * với chuỗi, kết quả sẽ là NaN// non-numeric string used with +, - , / , * results to NaN let result; result = 'hello' - 'world'; // NaN result = '4' - 'hello'; // NaNCode language JavaScript javascriptVí dụ 4 Ép kiểu ngầm định Boolean thành number// if boolean is used, true is 1, false is 0 let result; result = '4' - true; // 3 result = 4 + true; // 5 result = 4 + false; // 4Code language JavaScript javascriptLưu ý JavaScript coi 0 là false và tất cả các số khác 0 là true. Và nếu true được chuyển đổi thành một số, kết quả luôn là dụ 5 Ép kiểu ngầm định null thành number// null is 0 when used with number let result; result = 4 + null; // 4 result = 4 - null; // 4Code language JavaScript javascriptVí dụ 6 Undefined kết hợp với number, boolean và null// Arithmetic operation of undefined with number, boolean and null gives NaN let result; result = 4 + undefined; // NaN result = 4 - undefined; // NaN result = true + undefined; // NaN result = null + undefined; // NaNCode language JavaScript javascriptÉp kiểu tường minh trong JavaScriptBạn cũng có thể chuyển đổi từ kiểu dữ liệu này sang kiểu dữ liệu khác theo ý muốn của mình. Chuyển đổi kiểu dữ liệu mà bạn thực hiện theo cách thủ công được gọi là Ép kiểu tường JavaScript, các ép kiểu tường minh được thực hiện bằng cách sử dụng các phương thức có đây là các ép kiểu tường minh thường được sử dụng1. Ép kiểu tường minh thành numberĐể ép kiểu chuỗi và boolean thành number, bạn có thể sử dụng Number. Ví dụlet result; // string to number result = Number'324'; // 324 result = Number'324e-1' // // boolean to number result = Numbertrue; // 1 result = Numberfalse; // 0Code language JavaScript javascriptTrong JavaScript, chuỗi rỗng và giá trị null trả về 0. Ví dụlet result; result = Numbernull; // 0 let result = Number' ' // 0Code language JavaScript javascriptNếu một chuỗi là một số không hợp lệ, kết quả sẽ là NaN. Ví dụlet result; result = Number'hello'; // NaN result = Numberundefined; // NaN result = NumberNaN; // NaNCode language JavaScript javascriptLưu ý Bạn cũng có thể tạo các số từ các chuỗi bằng cách sử dụng parseInt, parseFloat, toán tử một ngôi + và Ví dụlet result; result = parseInt' // 20 result = parseFloat' // result = +' // result = // 20Code language JavaScript javascript2. Ép kiểu tường minh thành chuỗiĐể chuyển đổi các kiểu dữ liệu khác thành chuỗi, bạn có thể sử dụng String hoặc toString. Ví dụ//number to string let result; result = String324; // "324" result = String2 + 4; // "6" //other data types to string result = Stringnull; // "null" result = Stringundefined; // "undefined" result = StringNaN; // "NaN" result = Stringtrue; // "true" result = Stringfalse; // "false" // using toString result = 324.toString; // "324" result = // "true"Code language JavaScript javascript3. Ép kiểu tường minh thành BooleanĐể chuyển đổi các kiểu dữ liệu khác thành boolean, bạn có thể sử dụng Boolean.Trong JavaScript, undefined, null, 0, NaN, ' ' sẽ chuyển thành false. Ví dụlet result; result = Boolean''; // false result = Boolean0; // false result = Booleanundefined; // false result = Booleannull; // false result = BooleanNaN; // falseCode language JavaScript javascriptCòn những giá trị khác sẽ cho kết quả là true. Ví dụresult = Boolean324; // true result = Boolean'hello'; // true result = Boolean' '; // trueCode language JavaScript javascriptBảng ép kiểu trong JavaScriptDưới đây là bảng hiển thị việc chuyển đổi các giá trị khác nhau thành Chuỗi, Số và Boolean trong JavaScript. Giá trị Ép kiểu thành chuỗi Ép kiểu thành số Ép kiểu thành Boolean 1 “1” 1 true 0 “0” 0 false “1” “1” 1 true “0” “0” 0 true “ten” “ten” NaN true true “true” 1 true false “false” 0 false null “null” 0 false undefined “undefined” NaN false ” “” 0 false ” “ 0 true Các bạn có thể tham khảo các bài viết hay về JavaScript tại 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. Thông thường, các toán tử và các hàm sẽ tự động chuyển đổi kiểu của giá trị về đúng. Ví dụ như alert sẽ tự động chuyển bất kỳ kiểu dữ liệu nào về string để hiển thị chúng, các toán tử toán học sẽ tự động chuyển về kiểu number để thực hiện tính toán. Tuy nhiên trong nhiều trường hợp chúng ta muốn chuyển đổi kiểu về kiểu dữ liệu mà chúng ta mong muốn. Trong bài này chúng ta sẽ tìm hiểu về các cách thay đổi kiểu dữ liệu. String Conversion 1. String Khi chúng ta cần chuyển đổi kiểu của một value sang string chúng ta có thể sử dụng String var x = 15; var y = Stringx; alerttypeofy; // string //Hoặc khi ta có 1 mảng var a = [1, 2, 3]; var b = Stringa; alertb; // 1,2,3 alerttypeofb; // string //Tuy nhiên khi ta áp dụng với Object var obj = {1 'a', 2 'b'}; var objToString = Stringobj; alertobjToString; // [object Object] 2. toString Ngoài việc sử dụng String thì chúng ta có vẻ quen thuộc hơn với toString, nó cũng sẽ ép kiểu các giá trị về string var x = 15; var y = alerttypeofy; // string //Hoặc khi ta có 1 mảng var a = [1, 2, 3]; var b = alertb; // 1,2,3 alerttypeofb; // string //Và áp dụng với Object cũng chưa ra được kq mong muốn var obj = {1 'a', 2 'b'}; var objToString = alertobjToString; // [object Object] 3. Sử dụng toán tử cộng "+" Khi sử dụng toán tử, chúng ta đặc biệt phải lưu ý đến toán tử + khi toán hạng có kiểu string. Khi chúng ta sử dụng toán tử + mà một trong các toán hạng có kiểu là string thì Javascript sẽ cố gắng ép kiểu của toán hạng còn lại về kiểu string. Hãy cùng xem ví dụ dưới đây // Trong trường hợp có 2 toán hạng, 1 trong 2 toán hạng có kiểu là "string" // thì JS sẽ ép kiểu của toán hạng còn lại về "string" alert"1" + 1; // "11" alert1 + "1"; // "11" // Trong trường hợp có nhiều hơn 2 toán hạng và 1 trong các toán hạng có kiểu là "string" // thì tùy vào vị trí của toán hạng kiểu "string" mà ta có các kq khác nhau. alert1 + 2 + "string" + 3 + 4; // "3string34" alert1 + "string" + 2 + 3 + 4; // "1string234" alert1 + 2 + 3 + 4 + "string"; // "10string" // Chúng ta sẽ chuyển đổi kiểu như thế nào? var x = 15; var y = "" + 15; alerty; // "15" Numeric Conversion 1. Number Khi chúng ta muốn chuyển đổi từ một giá trị khác sang giá trị kiểu number, chúng ta có thể sử dụng Number var x = "123"; var y = Numberx; alerty; // 123 // Hoặc với các giá trị true/false var a = Numbertrue; alerta; // 1 // còn Numberfalse, Number'', Number[] hoặc Numbernull sẽ trả về 0 // Khi chúng ta truyền vào Number một string không phải chứa toàn là số // thì sẽ trả về NaN Not a Number var string = "string"; var toNumber = Numberstring; alerttoNumber; // NaN // Ngoài ra khi truyền vào Object, undefined //hoặc array có length > 2 hoặc có 1 giá trị nhưng không phải number hoặc string là số thì cũng trả về NaN 2. parseInt/parseFloat parseInt sẽ chuyển đổi kiểu của một string về kiểu number nhưng ở dạng interger số nguyên parseInt sẽ trả về các số nằm đầu tiên trong giá trị string đó, nếu chuỗi đó không thể chuyển thành number thì nó sẽ trả về NaN. Cùng xét ví dụ sau var a = parseInttrue; // NaN var b = parseInt" // 10 var c = parseInt" // 10 var d = parseInt"34 45 66"; // 34 var e = parseInt" 60 "; // 60 var f = parseInt"40 years"; // 40 var g = parseInt"He was 40"; // NaN parseFloat sẽ chuyển đổi kiểu của một string về kiểu number nhưng ở dạng float số thực parseFloat cũng gần giống như parseInt. Cùng xét ví dụ sau var a = parseInttrue; // NaN var a = parseFloat"10"; // 10 var b = parseFloat" // 10 var c = parseFloat" // var d = parseFloat"34 45 66"; // 34 var e = parseFloat" 60 "; // 60 var f = parseFloat"40 years"; // 40 var g = parseFloat"He was 40"; // NaN 3. Sử dụng toán tử "+" Tại sao vừa rồi ở trên chúng ta nói đến việc sử dụng + để chuyển kiểu về string mà dưới đây chúng ta lại dùng nó để chuyển kiểu về number. Chúng ta cùng xem ví dụ dưới đây var x = "15"; var y = +x; alerty; // 15 alerttypeofy; // number Khi chúng ta thêm + và trước giá trị thì nó sẽ chuyển đổi về kiểu number không giống như khi chúng ta sử dụng + trong một phép toán. Và nó cũng trả về các kết quả giống như sử dụng Number trong các trường hợp cụ thể var a = +false; // 0 === +"", +[], +null var b = +true; // 1 var c = +"123"; // 123 var d = +"abc"; // NaN var e = +[1]; // 1 === +["1"] var f = +["a"]; // NaN var g = +{}; // NaN Ngoài ra, khi chúng ta tính toán sử dụng các toán tử -, *, /, %, ** thì Javascript cũng sẽ cố gắng chuyển đổi kiểu các toàn hạng về number. Boolean Conversion Thường khi viết code Javascript chúng ta ít khi ép kiểu các giá trị về kiểu Boolean mà thường để tự Javascript ngầm ép kiểu, ví dụ như sau var x = "string"; ifx { alerttrue; } else { alertfalse; } //KQ true Ở đoạn code trên, chúng ta có thể thấy Javascript đã tự động ngầm ép kiểu của x trong if về Boolean để chạy câu lệnh if. Tuy nhiên, nhiều trường hợp chúng ta muốn lấy giá trị kiểu Boolean của nó để có thể strict equal hoặc cần hàm trả về true hoặc false thì chúng ta sẽ sử dụng Boolean var x = Boolean1; alertx; // true Các giá trị khi ép kiểu sang Boolean trả về false 0, '', false, null, undefined, NaN. Các giá trị này cũng được gọi là các falsy value trong Javascript. Ngoài các giá trị ở trên thì các giá trị còn lại đều trả về true. Object Conversion Như chúng ta đã tìm hiểu ở trên thì khi chuyển đổi kiểu từ object sang các kiểu khác như string [object Object] number NaN boolean true Vậy chúng ta phải làm thế nào để chuyển đổi kiểu từ object sang các kiểu dữ liệu nguyên thủy theo cách mà chúng ta mong muốn nhất. Khi chúng ta ép kiểu một object về string hoặc number thì Javascript sẽ cố gắng tìm và gọi 3 object methods như sau Gọi obj[ - với key tượng trưng là nếu method này tồn tại. Dựa vào hint , nếu là string thì nó sẽ cố gọi đến method trước và sau nếu không tồn tại. Nếu hint là number thì nó sẽ cố gọi đến trước và sau. Hãy cùng xét ví dụ var obj = { name 'John Doe', age 53, [ { return hint == "string" ? `${ } } alertStringobj; // "John Doe" alertNumberobj; // 53 sẽ cho phép chúng ta quy định giá trị trả về thông qua hint. toString/valueOf Methods toString và valueOf là 2 method cũ, nếu không tìm thấy thì Javascript sẽ cố gắng gọi đến chúng theo thứ tự toString rồi đến valueOf nếu hint là string valueOf rồi đên toString nếu hint khác string Theo mặc định, đối với một object đơn giản toString method trả về một string "[object Object]". valueOf method trả về chính object đó. var user = {name "John"}; alertuser; // [object Object] alert === user; // true Vậy chúng ta muốn giá trị trả về là giá trị mà chúng ta mong muốn giống như sử dụng thì chúng ta sẽ cần sử dụng kết hợp toString và valueOf như sau var obj = { name 'John Doe', age 53, toString { return }, valueOf { return } } Lời kết Vậy là chúng ta đã tìm hiểu qua về các cách thay đổi kiểu dữ liệu trong Javascript. Vì kiến thức là vô tận nên trong bài không thể tránh khỏi những thiếu sót cũng như nhầm lẫn, mong mọi người thông cảm là nếu góp ý bên dưới để mình có thể đưa ra nhưng bài viết có chất lượng hơn. Xin cảm ơn mọi người đã đọc bài viết. References

ép kiểu trong javascript