Toán tử cộng chết người trong Javascript 🙌
Toán tử cộng là một thứ khái niệm gì gì đó mà nó đã quá là quen thuộc và rùi tui không cần phải giải thích gì thêm nữa vì đơn giản là không có gì để phải giải thích thêm👶. Trong các ngô ngữ lập trình nó được dùng để thực hiện phép "cộng" tính toán hoặc "nối chuỗi" Tuy nhiên liệu các ông có thể biết được rằngKhá là kì diệu đúng không! Ông nào được3/3 thì có thể rời đi. Tuy khá là buồn nhưng thứ tui chuẩn bị nói thì các ông đã biết hết rùi😯. Còn ông nào chưa đúng hết thì đọc tiếp nhá😋. Đối với những ông trả lời sai thì ông đã thấy sự "nguy hiểm" của toán tử cộng chưa nào?Thực ra có lẽ điều này các ông đã học rùi nhưng lâu ngày có lẽ quên hoặc cũng có thể là do các ông học "vượt cấp" nên các ông trả lời không được đúng hết.
Sự nguy hiểm của toán tử cộng trong JavaScript
(Nhân tiện bài viết này được gợi ra trong một lần tình cờ đọc bài viết trênTopDev.vn về vấn đề này, và thì quá khứ code của tui lại hiện về những lỗi lầm tui từng mắc phải với toán tử cộng này😯).

Với mọi ngôn ngữ lập trình khác, toán tử cộng là toán tử không bao giờ thiếu và những phần mềm lập trình bậc cao (mà tui từng code qua🙂) thì việc kiểm soát quy tắc của toán tử cộng rất là nghiêm khắc. Ví dụ, với Python thực hiện một phép cộng toán tử chỉ có thể là
String+StringhoặcNumber+Number và không có điều ngược lại hoặc sẽ ăn ngay cảnh báoTypeError: can only concatenate str (not "int") to str
# Hoặc
TypeError: unsupported operand type(s) for +: 'int' and 'str'Nhưng, với JavaScript, thì "say goodbye😗", nó phá vỡ mọi quy tắc. Các ông có thể thực hiện cộng chuỗi, cộng phép toán và cộng "chuỗi toán - toán chuỗi". Điều này khác là tiện những cùng là một thảm họa nếu không chú ý đến các ông đang làm cái gì, và nó có thể là một thảm họa thực sự. Trong lần viết code reponsive cái khung iframe video, vì không đễ ý kĩ đến vấn đề này mà tớ đã mất vài tiếng ngồi tìm lỗi đấy😶. Với cách cộng thông thường, mọi thứ xảy ra bình thường và không cần nhắc đến, nhưng các ông cần phải để tâm tới vấn đề Number+String và ngược lại. Vì nó chắn chắn sẽ không thực hiện cộng theo các thông thường.Ví dụ, ông muốn cộng
console.log(2+'2')và các ông nghĩ nó sẽ ra 4 nhưng không, nó sẽ ra 22. Và các ông nghĩ nó là một Number, không hề!! 22được trả về trong trường hợp này sẽ là một String, một String đúng nghĩa.Do đó, để tránh những trường hợp không mong muốn như này. Cách giải quyết đó là thực hiện theo cách ép chuỗi thành số bằng
parseInt hoặc bằng "thủ đoạn hack" như +"string"Cho ví dụ:
console.log(2 + parrseInt('2) ) // sẽ trả về 4
// Hoặc
console.log ( 2 + +"2") // cũng sẻ trả về 4
Điều này không có gì là mới cả. Nếu học kĩ bài toán tử của JavaScript thì chắc hẳn ai cũng sẽ biết về vấn đề này. Nên thôi, tớ rút đây. Bye!!!
Code Vô Đối bản quyền bài viết của Code Vô Đối nhé thằng ăn cắp. https://codevodoi.blogspot.com Đit_cu_may !