5. Toán tử
Ở bài này chúng ta sẽ học về toán tủ, kiến thức bài này khá là cơ bản nhưng áp dụng rất nhiều trong code. "Toán tử''- cụm từ này chắc các bác đã từng nghe, nó xuất hiện khá nhiều trong toán học. Vì sao ở trên e nói là đơn giản? Vì nó chỉ là phép tính cơ bản trong lập trình, ví dụ như cộng trừ 2 biến, chia lấy dư,...
Trong bài này chúng ta chỉ học về 4 loại toán tử :
- Toán tử số học
- Toán tử gán
- Toán tử so sánh
- Toán tử logic
Còn có 1 loại là toán tử điều kiện, e sẽ nói ở phần 8.Câu lệnh điều kiện
Nào bây giờ ta đến với loại thứ nhất là toán tử số học
View attachment 1418705
Nhìn vào bảng trên chắc hẳn các bác đã biết use ra sao rồi đúng k? E sẽ chỉ nói về 2 cái cuối toán tử ++ và -- và
bổ sung thêm 1 toán tử số học đc update ở phiên bản ES6. Ở ngôn ngữ nào cũng vậy, nếu bác nào k học kĩ 2 toán tử này sẽ rất hay có sai lầm.
Hai toán tử trên có tên gọi khác là "Tiền tố, hậu tố''. Có tên gọi như vậy vì có 2 cách đặt toán tử, thứ nhất là đặt phía trước biến ++a ( tiền tố) và đặt sau biến(hậu tố) a++
Để dễ hiểu, e sẽ nói chi tiết toán tử ++ còn toán tử -- thì tương tự.
Trước hết, ta cần hiểu ++ nghĩa là gì? Toán tử ++ đơn giản chỉ là cộng thêm biến thêm 1 đơn vị
Ví dụ
View attachment 1418753
Từ ví dụ trên, ta thấy a++ hay ++a đều tăng biến a thêm 1 đơn vị, vậy sự khác nhau giữa tiền tố và hậu tố là gì mà khiến nhiều người hay mắc sai lầm như vậy.
View attachment 1419104
Trên đây e có 2 đoạn code, đều nhận giá trị đầu vào(input) như nhau. Ở dòng thứ 3 mỗi đoạn, khi ta log a ra thì đều cho ra 1 kết quả là 6. Ở dòng cuối đều thực hiện phép là sử dụng toán tử ++ rồi trù cho biến b nhưng kết quả thu đc lại khác nhau. Từ đó, ta thấy đc sự khác nhau giữa tiền tố và hậu tố sẽ xuất hiện trong các phép tính biểu thức.
+ Tiền tố: thực hiện toán tử ++ trước khi thực hiện biểu thức tính toán. Trong toán học có thứ tự ưu tiên các phép toán, thì thằng tiền tố này nó đứng đầu, thực hiện cộng 1 giá trị( value) trước rồi làm gì thì làm
+ Hậu tố: Trái ngược lại với thằng anh là tiền tố, thằng em này nó chẳng có ý nghĩa gì trong biểu thức. Nhưng khi kết thúc biểu thức, giá trị của a sẽ đc cộng thêm 1.
Nói tóm lại, nếu lấy các phép tính biểu thức làm trung gian thì thằng tiền tố sẽ thực hiện cộng 1 giá trị trước, còn thằng hậu sẽ cộng 1 giá trị sau khi kết thúc biểu thức.
Tương tụ với toán tử --, toán tử này các bác tự code và trải nghiệm
Ở phiên bản ES6, chúng ta đc update thêm 1 toán tử là toán tử *
, đấy là toán tử để tính lũy thừa của 1 biến. Các bác tự hiểu nó như dấu ^ trong toán học ấy ( 5 * 3 = 5^3). Có 2 cách để use toán tử này
View attachment 1419134
Bổ sung: Em quên mất ở toán tử số học này còn phép toán cộng chuỗi(string). Thiếu xót thì bổ sung thôi chứ skip thì vô tâm quá.
View attachment 1419153
Ở bài string e có nói, trong js khoảng trắng cũng là 1 kí tự, nên ở firstName sau giá trị Truong e có để trắng 1 kí tự, đó là lí do vì sao khi log ra ta đc các kết quả ở dòng 3, 4, 5 nó cách nhau.
+ Cộng string với string cho ta kết quả như cộng 2 number, cái này k có gì để nói
+ Đối với cộng string với number ( hay ngược lại), trước khi thực hiện phép cộng thì sẽ chuyển kiểu number sang string rồi cộng như 2 string với nhau. Như trong sinh học về gen, thằng string có gen mạnh hơn number, khi 2 thằng này kết hợp với nhau ( cộng) thì ta đc kết quả sẽ mang gen thằng trội là thằng string( ở đây ta nói là kiểu dữ liệu - type)
Tiếp theo, ta sẽ đến với loại toán tử thứ 2 là toán tử gán
View attachment 1419195
Phần này e cũng chẳng có gì nói nhiều, những điều cần học ở trên img hết. Ở ES6 có update toán tử *
, nên phép gán sẽ có thêm phép *=, cái này e đã lấy ví dụ ở trên.
Loại thứ 3 là toán tử so sánh
View attachment 1419217
Cũng giống như trong toán học, lập trình cũng có so sánh bằng, hơn, kém, khác. Về 2 cái toán tử so sánh bằng e đã nói rất kĩ ở bài
4. String và Number , sự khác nhau của 2 cái đó, vì sao lại tách riêng 2 cái mà k gộp làm 1.
Trong lập trình hay đời sống cũng , khi so sánh khác(phủ định 1 cái gì đó) ta dùng dấu !. Thật sự đoạn này cũng chẳng có gì nói sâu cả, các bác cứ nhìn theo bảng rồi code lại thì mới hiểu + nhớ lâu đc. Lập trình học mỗi lí thuyết thì chẳng khác nào nước đổ.
Loại cuối cùng là toán tử logic
View attachment 1420181
Phần này chỉ có 3 toán tử cần phải học là && (và), || (hoặc), !(phủ định).
Toán tử && : Nếu tất cả cả các biểu thức đúng return về true
Toán tử ||: Chỉ cần ít nhất 1 biểu thức đúng sẽ return về true
Bài này e nghĩ sẽ end ở đây thôi, e có tìm hiểu thêm mà cũng chẳng thấy có gì để nói sâu. Ở ES6 nó còn update thêm 1 vài toán tử mà e chưa nói, nhưng e nghĩ chưa cần học vội. Nếu bác nào muốn nghiên cứu thêm thì có thể lên gg. IT là ngành tài liệu mở mà