<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Dương Thái</title>
    <description>The latest articles on DEV Community by Dương Thái (@duongthai).</description>
    <link>https://dev.to/duongthai</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2622148%2Fe1703005-b6a0-4821-9e23-efba1dd80829.jpeg</url>
      <title>DEV Community: Dương Thái</title>
      <link>https://dev.to/duongthai</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/duongthai"/>
    <language>en</language>
    <item>
      <title>Các phương pháp tấn công Website bằng mã độc và cách ngăn chặn</title>
      <dc:creator>Dương Thái</dc:creator>
      <pubDate>Fri, 24 Jan 2025 09:17:30 +0000</pubDate>
      <link>https://dev.to/duongthai/cac-phuong-phap-tan-cong-website-bang-ma-doc-va-cach-ngan-chan-10m</link>
      <guid>https://dev.to/duongthai/cac-phuong-phap-tan-cong-website-bang-ma-doc-va-cach-ngan-chan-10m</guid>
      <description>&lt;p&gt;Bạn có biết rằng chỉ cần một lỗ hổng trên trang web, hacker có thể dễ dàng cài mã độc, đánh cắp dữ liệu và làm sập toàn bộ hệ thống của bạn trong nháy mắt? Với sự gia tăng các cuộc tấn công mạng, việc bảo vệ website đã trở thành điều bắt buộc của các website.&lt;br&gt;
Trrong bài viết này chúng ta sẽ cùng tìm hiểu về mã độc, và các cách phương án phòng ngừa mã đọc cho trang web của bạn.&lt;/p&gt;

&lt;h4&gt;
  
  
  Mã độc là gì.
&lt;/h4&gt;

&lt;p&gt;Mã độc (malware - viết tắt của "malicious software") là các chương trình hoặc đoạn mã được thiết kế với mục đích xấu, nhằm gây hại, đánh cắp thông tin, phá hoại hệ thống, hoặc chiếm quyền kiểm soát thiết bị của người dùng mà không được sự cho phép&lt;/p&gt;

&lt;h4&gt;
  
  
  Dấu hiệu nhận biết website của bạn đã bị nhiễm mã độc.
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;1. Hiệu suất website giảm đáng kể&lt;/strong&gt;&lt;br&gt;
- Website tải chậm bất thường.&lt;br&gt;
- Máy chủ sử dụng nhiều tài nguyên hơn bình thường (CPU, RAM).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Nguyên nhân: Hacker cài mã độc chạy ngầm hoặc sử dụng máy chủ để thực hiện các tác vụ khác, như gửi spam hoặc khai thác tiền điện tử.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Xuất hiện nội dung hoặc liên kết lạ&lt;/strong&gt;&lt;br&gt;
- Website có các liên kết đến trang web không liên quan.&lt;br&gt;
- Thêm các pop-up quảng cáo mà bạn không cài đặt.&lt;br&gt;
- Nội dung hoặc tệp tin không rõ nguồn gốc xuất hiện trên website.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Trình duyệt hoặc Google cảnh báo website không an toàn&lt;/strong&gt;&lt;br&gt;
- Khi truy cập trang, trình duyệt hiển thị cảnh báo: "Trang web này không an toàn", hoặc Google hiển thị cảnh báo trong kết quả tìm kiếm.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Nguyên nhân: Website bị Google đánh dấu là có chứa mã độc hoặc phần mềm không an toàn (qua Google Safe Browsing).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;4. Người dùng báo cáo các vấn đề bất thường&lt;/strong&gt;&lt;br&gt;
- Người dùng bị chuyển hướng đến các trang web không mong muốn khi truy cập trang của bạn.&lt;br&gt;
- Người dùng nhận thấy nội dung lạ trên trang.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Nguyên nhân: Mã độc được thiết kế để tác động lên người truy cập, như thực hiện tấn công lừa đảo (phishing) hoặc quảng cáo độc hại.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;5. Tệp tin hoặc mã lạ trên máy chủ&lt;/strong&gt;&lt;br&gt;
- Xuất hiện các tệp tin mới không do bạn tải lên.&lt;br&gt;
- Tệp hoặc mã nguồn của bạn bị thay đổi.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Nguyên nhân: Hacker tải lên mã độc hoặc chỉnh sửa tệp để thực hiện hành vi xấu.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;6. Lượng truy cập bất thường&lt;/strong&gt;&lt;br&gt;
Lượng truy cập tăng đột biến từ các địa chỉ IP hoặc khu vực không quen thuộc.&lt;br&gt;
Các yêu cầu HTTP đáng ngờ trong log server (ví dụ: truy cập các tệp admin hoặc script độc hại).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Nguyên nhân: Hacker sử dụng website của bạn để thực hiện tấn công DDoS hoặc gửi spam.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;7. Email từ domain bị đưa vào spam&lt;/strong&gt;&lt;br&gt;
- Email từ tên miền của bạn (ví dụ: &lt;a href="mailto:admin@yourdomain.com"&gt;admin@yourdomain.com&lt;/a&gt;) bị đánh dấu là spam hoặc bị chặn.&lt;br&gt;
- Xuất hiện các email bạn không gửi trong hộp thư đi.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Nguyên nhân: Website hoặc máy chủ email của bạn bị hacker lợi dụng để gửi email spam&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Các phương pháp tấn công Website bằng mã độc và cách phòng chống
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;1. Tấn Công Cross-Site Scripting (XSS)&lt;/strong&gt;&lt;br&gt;
Xảy ra khi kẻ tấn công chèn mã JavaScript độc hại vào trang web thông qua các trường nhập liệu như ô tìm kiếm, bình luận, hoặc các form thoong tin. Mã độc này sau đó được thực thi trên trình duyệt của người dùng khác khi họ truy cập trang web, dẫn đến việc đánh cắp cookie, thông tin đăng nhập... Kẻ tấn công có thể sử dụng XSS để chuyển hướng người dùng đến trang web giả mạo hoặc tấn công các chức năng khác của trang web.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phòng chống:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Kiểm tra và lọc dữ liệu đầu vào&lt;/li&gt;
&lt;li&gt;Mã hóa dữ liệu đầu ra&lt;/li&gt;
&lt;li&gt;Sử dụng các cơ chế bảo mật hiện đại&lt;/li&gt;
&lt;li&gt;Tránh chèn trực tiếp dữ liệu vào HTML&lt;/li&gt;
&lt;li&gt;Sử dụng HTTPS&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Tấn Công Website thông qua SQL Injection (SQLi)&lt;/strong&gt;&lt;br&gt;
SQL Injection (SQLi) là một loại tấn công mạng trong đó kẻ tấn công thực hiện việc chèn các câu lệnh SQL độc hại vào trường nhập liệu (input field) của một ứng dụng web. Mục tiêu của SQLi là khai thác lỗ hổng trong cơ chế truy vấn cơ sở dữ liệu (CSDL) để truy xuất, sửa đổi, xóa hoặc thậm chí kiểm soát hoàn toàn cơ sở dữ liệu của ứng dụng.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phòng chống:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sử dụng câu lệnh truy vấn có tham số hóa (Prepared Statements)&lt;/li&gt;
&lt;li&gt;Xác thực và làm sạch dữ liệu đầu vào.&lt;/li&gt;
&lt;li&gt;Sử dụng ORM (Object Relational Mapping)&lt;/li&gt;
&lt;li&gt;Ẩn thông báo lỗi chi tiết&lt;/li&gt;
&lt;li&gt;Sử dụng Firewall ứng dụng web (WAF)&lt;/li&gt;
&lt;li&gt;Cập nhật và vá lỗi thường xuyên&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. Tấn Công Website bằng File Inclusion&lt;/strong&gt;&lt;br&gt;
File Inclusion là một kỹ thuật tấn công mạng mà kẻ tấn công lợi dụng lỗ hổng trong việc xử lý các yêu cầu tải (include) các file trên máy chủ. Đây là một lỗ hổng bảo mật phổ biến trong các ứng dụng web khi người phát triển sử dụng các hàm hoặc chức năng để tải file mà không kiểm tra đầu vào đúng cách.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phòng chống:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sử dụng danh sách trắng (Whitelisting) cho các file cần include&lt;/li&gt;
&lt;li&gt;Kiểm tra và xác thực đầu vào (Input Validation)&lt;/li&gt;
&lt;li&gt;Sử dụng các đường dẫn tuyệt đối&lt;/li&gt;
&lt;li&gt;Giới hạn quyền truy cập file&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Giải pháp cho website bị nhiễm mã độc
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;1. Ngắt kết nối website khỏi mạng&lt;/strong&gt;: ngừng việc tiếp tục lây lan mã độc và bảo vệ người dùng khỏi các nguy cơ tiềm ẩn.&lt;br&gt;
&lt;strong&gt;2. Kiểm tra mã độc và quét website&lt;/strong&gt;: nhằm xác định loại mã độc và vị trí bị nhiễm.&lt;br&gt;
&lt;strong&gt;3. Xóa mã độc khỏi website&lt;/strong&gt;: Loại bỏ mã độc để website trở lại trạng thái bình thường.&lt;br&gt;
&lt;strong&gt;4. Khôi phục từ bản sao lưu sạch&lt;/strong&gt;: Phục hồi website về trạng thái an toàn trước khi bị tấn công.&lt;br&gt;
&lt;strong&gt;5. Đổi mật khẩu và kiểm tra quyền truy cập&lt;/strong&gt;: ngừng hacker tiếp cận website hoặc máy chủ.&lt;br&gt;
&lt;strong&gt;6. Kiểm tra và vá các lỗ hổng bảo mật&lt;/strong&gt;: ngăn ngừa việc tái nhiễm mã độc.&lt;br&gt;
&lt;strong&gt;7. Kiểm tra lịch sử thay đổi&lt;/strong&gt;: để xem nếu hacker đã thay đổi mã nguồn hay thêm tệp độc hại.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Vòng lặp(Loop) trong JavaScript</title>
      <dc:creator>Dương Thái</dc:creator>
      <pubDate>Sun, 19 Jan 2025 18:00:19 +0000</pubDate>
      <link>https://dev.to/duongthai/vong-lap-ca-cac-loai-vong-lap-trong-javascript-437f</link>
      <guid>https://dev.to/duongthai/vong-lap-ca-cac-loai-vong-lap-trong-javascript-437f</guid>
      <description>&lt;p&gt;Vòng lặp là một phần quan trọng trong JavaScript, được sử dụng để tự động hóa các tác vụ lặp lại và xử lý dữ liệu hiệu quả. Việc nắm vững cách sử dụng vòng lặp sẽ giúp bạn tối ưu hóa mã nguồn và làm cho công việc lập trình trở nên dễ dàng hơn.&lt;/p&gt;

&lt;p&gt;Vậy, vòng lặp hoạt động như thế nào trong JavaScript? Trong bài viết này, chúng ta sẽ cùng khám phá những khái niệm cơ bản và ứng dụng thực tiễn của vòng lặp.&lt;/p&gt;

&lt;h2&gt;
  
  
  I. Tổng quan
&lt;/h2&gt;

&lt;h4&gt;
  
  
  1. Khái niệm
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Vòng lặp (Loop) trong JavaScript là một cấu trúc giúp thực thi lặp đi lặp lại một đoạn mã cho đến khi một điều kiện nhất định được thỏa mãn.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  2. Đặc điểm
&lt;/h4&gt;

&lt;p&gt;- Tự động hóa các tác vụ lặp lại&lt;br&gt;
- Kiểm soát điều kiện lặp&lt;br&gt;
- Duyệt qua cấu trúc dữ liệu: array hoặc object&lt;br&gt;
- Lồng vòng lặp (Nested Loop): để xử lý dữ liệu phức tạp&lt;br&gt;
- Phương thức hiện đại&lt;/p&gt;
&lt;h2&gt;
  
  
  II. Các loại vòng lặp
&lt;/h2&gt;
&lt;h4&gt;
  
  
  1. Vòng lặp &lt;code&gt;for&lt;/code&gt;
&lt;/h4&gt;

&lt;p&gt;Vòng lặp for là loại vòng lặp phổ biến nhất, dùng để lặp qua một dãy số hoặc mảng với số lần lặp xác định trước. Vòng lặp này thường được sử dụng khi bạn biết trước số lần lặp.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cú pháp:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;initialization&lt;span class="p"&gt;;&lt;/span&gt; condition&lt;span class="p"&gt;;&lt;/span&gt; increment&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
  // Thực thi đoạn mã
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Initialization:&lt;/strong&gt; Khởi tạo giá trị ban đầu của biến lặp.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Condition:&lt;/strong&gt; Điều kiện để vòng lặp tiếp tục - chạy.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Increment:&lt;/strong&gt; Thay đổi giá trị của biến lặp sau mỗi lần lặp.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Ví dụ:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;let &lt;/span&gt;i &lt;span class="o"&gt;=&lt;/span&gt; 0&lt;span class="p"&gt;;&lt;/span&gt; i &amp;lt; 5&lt;span class="p"&gt;;&lt;/span&gt; i++&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
console.log&lt;span class="o"&gt;(&lt;/span&gt;i&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // In ra: 0, 1, 2, 3, 4
&lt;span class="o"&gt;}&lt;/span&gt;

// Khai báo mảng
&lt;span class="nb"&gt;let &lt;/span&gt;arr &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"a"&lt;/span&gt;,&lt;span class="s2"&gt;"b"&lt;/span&gt;,&lt;span class="s2"&gt;"c"&lt;/span&gt;,&lt;span class="s2"&gt;"d"&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;let &lt;/span&gt;i &lt;span class="o"&gt;=&lt;/span&gt; 0&lt;span class="p"&gt;;&lt;/span&gt; i &amp;lt; arr.length&lt;span class="p"&gt;;&lt;/span&gt; i++&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    console.log&lt;span class="o"&gt;(&lt;/span&gt;arr[i]&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // In ra: a b c d
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  2. Vòng lặp for...in
&lt;/h4&gt;

&lt;p&gt;Vòng lặp for...in được sử dụng để duyệt qua các thuộc tính của một đối tượng. Nó giúp bạn lặp qua tất cả các khóa (key) trong một đối tượng.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cú pháp:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;let &lt;/span&gt;key &lt;span class="k"&gt;in &lt;/span&gt;object&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
  // Thực thi đoạn mã
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;key:&lt;/strong&gt; Tên thuộc tính (key) của đối tượng.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;object:&lt;/strong&gt; Đối tượng cần duyệt qua.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Ví dụ:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;const person &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt; name: &lt;span class="s2"&gt;"Alice"&lt;/span&gt;, age: 25, job: &lt;span class="s2"&gt;"Engineer"&lt;/span&gt; &lt;span class="o"&gt;}&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;let &lt;/span&gt;key &lt;span class="k"&gt;in &lt;/span&gt;person&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
console.log&lt;span class="o"&gt;(&lt;/span&gt;key, person[key]&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  // In ra: name Alice, age 25, job Engineer
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  3. Vòng Lặp for...of
&lt;/h4&gt;

&lt;p&gt;Vòng lặp for...of được sử dụng để duyệt qua các giá trị của một iterable (như mảng, chuỗi, hoặc Map). Nó giúp bạn dễ dàng truy cập các phần tử trong một mảng hoặc chuỗi mà không cần phải sử dụng chỉ số.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cú pháp:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;let &lt;/span&gt;value of iterable&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
  // Thực thi đoạn mã
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;value:&lt;/strong&gt; Giá trị của từng phần tử trong iterable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;iterable:&lt;/strong&gt; Dữ liệu có thể lặp (mảng, chuỗi, Map, v.v.).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Ví dụ:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;arr &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;10, 20, 30, 40]&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;let &lt;/span&gt;value of arr&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    console.log&lt;span class="o"&gt;(&lt;/span&gt;value&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
// 10
// 20
// 30
// 40
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  4. Vòng Lặp while
&lt;/h4&gt;

&lt;p&gt;Vòng lặp while lặp lại đoạn mã khi điều kiện đúng. Loại vòng lặp này được sử dụng khi bạn không biết trước số lần lặp, mà thay vào đó dựa vào một điều kiện.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cú pháp:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;condition&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
   // Thực thi đoạn mã
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;condition:&lt;/strong&gt; Đây là biểu thức điều kiện. Vòng lặp sẽ tiếp tục chạy cho đến khi điều kiện này trả về false.&lt;/li&gt;
&lt;li&gt;Mã trong thân vòng lặp sẽ được thực thi mỗi lần điều kiện là true.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Ví dụ:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;i &lt;span class="o"&gt;=&lt;/span&gt; 0&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;i &amp;lt; 5&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    console.log&lt;span class="o"&gt;(&lt;/span&gt;i&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    i++&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  5. Vòng Lặp do...while
&lt;/h4&gt;

&lt;p&gt;Vòng lặp do...while là một loại vòng lặp đặc biệt. Điểm khác biệt lớn so với vòng lặp while là vòng lặp do...while đảm bảo thực thi ít nhất một lần.&lt;br&gt;
Điều kiện chỉ được kiểm tra sau khi đoạn mã trong vòng lặp được thực thi lần đầu. Điều này khiến vòng lặp do...while trở thành lựa chọn tốt khi bạn muốn đảm bảo rằng mã trong vòng lặp sẽ được thực thi ít nhất một lần.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cú pháp:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
 // Thực thi đoạn mã
&lt;span class="o"&gt;}&lt;/span&gt; &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;condition&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;condition:&lt;/strong&gt; Là điều kiện được kiểm tra sau mỗi lần thực thi mã trong thân vòng lặp.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Ví dụ:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;i &lt;span class="o"&gt;=&lt;/span&gt; 1&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    console.log&lt;span class="o"&gt;(&lt;/span&gt;i&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    i++&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt; &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;i &amp;lt;&lt;span class="o"&gt;=&lt;/span&gt; 5&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  6. Phương thức forEach()
&lt;/h4&gt;

&lt;p&gt;&lt;code&gt;forEach&lt;/code&gt; là một phương thức trong JavaScript được sử dụng để lặp qua các phần tử của một mảng. Phương thức này sẽ thực thi một hàm callback cho mỗi phần tử trong mảng theo thứ tự, và nó không trả về giá trị nào.&lt;br&gt;
&lt;strong&gt;Lưu ý:&lt;/strong&gt; &lt;code&gt;forEach&lt;/code&gt; chỉ làm việc với mảng, không thể sử dụng trên các đối tượng khác.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cú pháp:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;array.forEach&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="k"&gt;function&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;currentValue, index, array&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    // Mã lệnh thực thi cho mỗi phần tử
&lt;span class="o"&gt;})&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;currentValue:&lt;/strong&gt; Giá trị của phần tử hiện tại trong mảng.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;index (tùy chọn):&lt;/strong&gt; Chỉ số của phần tử trong mảng.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;array (tùy chọn):&lt;/strong&gt; Mảng gốc mà bạn đang lặp qua.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Ví dụ:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;arr &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;1, 2, 3, 4, 5]&lt;span class="p"&gt;;&lt;/span&gt;
arr.forEach&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="k"&gt;function&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;value, index&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    console.log&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;Index: &lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;index&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;, Value: &lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;value&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;})&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
// Index: 0, Value: 1
// Index: 1, Value: 2
// Index: 2, Value: 3
// Index: 3, Value: 4
// Index: 4, Value: 5
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  7.Phương thức Map()
&lt;/h4&gt;

&lt;p&gt;Phương thức map() một phương thức được sử dụng trên mảng để tạo ra một mảng mới, trong đó mỗi phần tử là kết quả của việc áp dụng một hàm callback cho từng phần tử trong mảng gốc.&lt;br&gt;
Khác với forEach(), phương thức map() sẽ trả về một mảng mới và không thay đổi mảng ban đầu.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cú pháp:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;newArray &lt;span class="o"&gt;=&lt;/span&gt; array.map&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="k"&gt;function&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;currentValue, index, array&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
   // Trả về giá trị mới cho mảng mới
&lt;span class="o"&gt;})&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;currentValue:&lt;/strong&gt; Giá trị của phần tử hiện tại trong mảng.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;index (tùy chọn):&lt;/strong&gt; Chỉ số của phần tử trong mảng.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;array (tùy chọn):&lt;/strong&gt; Mảng gốc mà bạn đang lặp qua.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Ví dụ:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;arr &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;1, 2, 3, 4, 5]&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nb"&gt;let &lt;/span&gt;newArr &lt;span class="o"&gt;=&lt;/span&gt; arr.map&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="k"&gt;function&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;value&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return &lt;/span&gt;value &lt;span class="k"&gt;*&lt;/span&gt; 2&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;})&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
console.log&lt;span class="o"&gt;(&lt;/span&gt;newArr&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // Output: &lt;span class="o"&gt;[&lt;/span&gt;2, 4, 6, 8, 10]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
    </item>
    <item>
      <title>Cấu trúc điều kiện trong Javascript</title>
      <dc:creator>Dương Thái</dc:creator>
      <pubDate>Sun, 19 Jan 2025 17:54:01 +0000</pubDate>
      <link>https://dev.to/duongthai/cau-truc-dieu-kien-trong-javascript-355h</link>
      <guid>https://dev.to/duongthai/cau-truc-dieu-kien-trong-javascript-355h</guid>
      <description>&lt;p&gt;Cấu trúc điều kiện là một phần quan trọng và phổ biến trong JavaScript, Nó được sử dụng để kiểm tra điều kiện và quyết định hành động tiếp theo dựa trên kết quả đúng hoặc sai của các điều kiện đó. Việc nắm vững cách sử dụng cấu trúc điều kiện sẽ giúp bạn kiểm soát luồng hoạt động của chương trình và làm cho công việc lập trình trở nên dễ dàng hơn.&lt;/p&gt;

&lt;p&gt;Vậy, cấu trúc điều kiện hoạt động như thế nào trong JavaScript? Trong bài viết này, chúng ta sẽ cùng khám phá những khái niệm cơ bản và ứng dụng thực tiễn của cấu trúc điều kiện.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Câu lệnh if...else
&lt;/h2&gt;

&lt;p&gt;Câu lệnh if...else là một trong những cấu trúc điều kiện cơ bản nhất trong JavaScript, được sử dụng để kiểm tra một điều kiện và thực hiện các hành động khác nhau dựa trên việc điều kiện đó đúng hay sai.&lt;/p&gt;

&lt;h4&gt;
  
  
  Câu lệnh &lt;code&gt;if&lt;/code&gt;
&lt;/h4&gt;

&lt;p&gt;Đối với câu lệnh if...else không nhất thiết phải có else, mà ta có thể sử dụng if độc lập để kiểm tra một điều kiện và thực hiện một đoạn mã nếu điều kiện đó đúng.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;condition&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    // Khối mã thực thi nếu điều kiện đúng &lt;span class="nb"&gt;true&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Cú Pháp:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;condition&lt;/strong&gt; là biểu thức điều kiện mà bạn muốn kiểm tra.
Nếu biểu thức này trả về &lt;code&gt;true&lt;/code&gt; đoạn mã trong dấu {} sẽ được thực thi.
Nếu điều kiện là &lt;code&gt;false&lt;/code&gt; thì đoạn mã bên trong câu lệnh if sẽ bị bỏ qua.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;age &lt;span class="o"&gt;=&lt;/span&gt; 18&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;age &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; 18&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    console.log&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"Bạn đủ tuổi để lái xe."&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Trong ví dụ trên, nếu giá trị của &lt;code&gt;age&lt;/code&gt; là 18 hoặc lớn hơn, thì chương trình sẽ in ra &lt;code&gt;"Bạn đủ tuổi để lái xe."&lt;/code&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  Câu lệnh &lt;code&gt;if...else&lt;/code&gt;
&lt;/h4&gt;

&lt;p&gt;Câu lệnh đầy đủ &lt;code&gt;if...else&lt;/code&gt; cho phép bạn kiểm tra một điều kiện và thực hiện logic theo hai trường hợp đúng hoặc sai.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cú Pháp:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;condition&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    // Khối mã thực thi nếu điều kiện đúng &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;true&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    // Khối mã thực thi nếu điều kiện sai &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;false&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Ví dụ:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;age &lt;span class="o"&gt;=&lt;/span&gt; 18&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;age &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; 18&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    console.log&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"Bạn đủ tuổi để lái xe."&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    console.log&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"Bạn chưa đủ tuổi để lái xe."&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Trong ví dụ trên, nếu giá trị của &lt;code&gt;age&lt;/code&gt; là 18 hoặc lớn hơn, thì chương trình sẽ in ra &lt;code&gt;"Bạn đủ tuổi để lái xe."&lt;/code&gt;. Nếu giá trị của &lt;code&gt;age&lt;/code&gt; nhỏ hơn 18, thì chương trình sẽ in ra &lt;code&gt;"Bạn chưa đủ tuổi để lái xe."&lt;/code&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  2. Câu lệnh &lt;code&gt;switch...case&lt;/code&gt;
&lt;/h4&gt;

&lt;p&gt;Câu lệnh switch...case trong lập trình được sử dụng để kiểm tra một giá trị và thực thi các đoạn mã tương ứng với giá trị đó. Câu lệnh này giúp thay thế một chuỗi các câu lệnh if...else khi cần kiểm tra nhiều giá trị khác nhau của một biến.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cú Pháp:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;switch &lt;span class="o"&gt;(&lt;/span&gt;biến&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;case&lt;/span&gt; giá_trị_1:
        // Mã thực thi khi biến &lt;span class="o"&gt;==&lt;/span&gt; giá_trị_1
        &lt;span class="nb"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // Để dừng lại sau khi thực thi
    &lt;span class="k"&gt;case&lt;/span&gt; giá_trị_2:
        // Mã thực thi khi biến &lt;span class="o"&gt;==&lt;/span&gt; giá_trị_2
        &lt;span class="nb"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;case&lt;/span&gt; giá_trị_n:
        // Mã thực thi khi biến &lt;span class="o"&gt;==&lt;/span&gt; giá_trị_n
        &lt;span class="nb"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    default:
        // Mã thực thi khi không có giá trị nào đúng
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Ví dụ:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;day &lt;span class="o"&gt;=&lt;/span&gt; 2&lt;span class="p"&gt;;&lt;/span&gt;
switch &lt;span class="o"&gt;(&lt;/span&gt;day&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;case&lt;/span&gt; 1:
        console.log&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"Thứ 2"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="nb"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;case&lt;/span&gt; 2:
        console.log&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"Thứ 3"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="nb"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;case&lt;/span&gt; 3:
        console.log&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"Thứ 4"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="nb"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;case&lt;/span&gt; 4:
        console.log&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"Thứ 5"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="nb"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;case&lt;/span&gt; 5:
        console.log&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"Thứ 6"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="nb"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;case&lt;/span&gt; 6:
        console.log&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"Thứ 7"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="nb"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;case&lt;/span&gt; 7:
        console.log&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"Chủ nhật"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="nb"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    default:
        console.log&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"Invalid day"&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
// Kết quả: &lt;span class="s2"&gt;"Thứ 3"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Cú Pháp:&lt;/strong&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  3. Toán tử 3 ngôi (toán tử điều kiện)
&lt;/h4&gt;

&lt;p&gt;Toán tử 3 ngôi cho phép thực hiện một phép kiểm tra đơn giản mà không cần dùng câu lệnh if...else.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;condition ? block_1 : block_2&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;condition:&lt;/strong&gt; Điều kiện bạn muốn kiểm tra.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;block_1:&lt;/strong&gt; Biểu thức sẽ được thực thi nếu điều kiện đúng.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;block_2:&lt;/strong&gt; Biểu thức sẽ được thực thi nếu điều kiện sai.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;age &lt;span class="o"&gt;=&lt;/span&gt; 18&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nb"&gt;let &lt;/span&gt;message &lt;span class="o"&gt;=&lt;/span&gt; age &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; 18 ? &lt;span class="s2"&gt;"Bạn đã đủ tuổi."&lt;/span&gt; : &lt;span class="s2"&gt;"Bạn chưa đủ tuổi."&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
console.log&lt;span class="o"&gt;(&lt;/span&gt;message&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // Bạn đã đủ tuổi.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  4. Toán tử logic &lt;code&gt;&amp;amp;&amp;amp;&lt;/code&gt;
&lt;/h4&gt;

&lt;p&gt;Toán tử &lt;code&gt;&amp;amp;&amp;amp;&lt;/code&gt; trong JavaScript có thể được sử dụng để kiểm tra một điều kiện và thực thi mã nếu điều kiện đó đúng. Là một kỹ thuật phổ biến để viết mã ngắn gọn.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;condition &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; codeToExecute&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;condition:&lt;/strong&gt; Điều kiện bạn muốn kiểm tra.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;codeToExecute:&lt;/strong&gt; Mã sẽ được thực thi nếu điều kiện là true.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;age &lt;span class="o"&gt;=&lt;/span&gt; 20&lt;span class="p"&gt;;&lt;/span&gt;
age &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; 18 &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; console.log&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"You are an adult."&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Nếu age &amp;gt;= 18, sẽ in ra "You are an adult.",nếu sai thì sẽ ko có gì.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  5. Các Trường hợp sử dụng
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;if...else&lt;/code&gt;&lt;/strong&gt; nên dùng khi:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;- Khi bạn có các điều kiện phức tạp hoặc cần thực hiện nhiều phép kiểm tra với các hành động khác nhau cho từng điều kiện.&lt;br&gt;
  - Khi bạn cần kiểm tra điều kiện với các phép toán phức tạp, kết hợp nhiều điều kiện logic, hoặc kiểm tra điều kiện với các kiểu dữ liệu khác nhau.&lt;br&gt;
  - Khi bạn cần thêm các khối mã khác nhau cho các điều kiện khác nhau.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;switch...case&lt;/code&gt; nên dùng khi:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;- Khi bạn cần kiểm tra một biến với nhiều giá trị khác nhau (một giá trị cụ thể) và thực thi các hành động khác nhau tùy thuộc vào giá trị của biến đó.&lt;br&gt;
  - Khi bạn có một số lượng lớn các điều kiện dựa trên một giá trị duy nhất và muốn mã ngắn gọn và dễ hiểu hơn so với chuỗi if...else if...else.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Toán tử ba ngôi (? :)&lt;/code&gt;nên dùng khi:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;- Khi bạn chỉ có hai lựa chọn (đúng - sai) và muốn viết mã ngắn gọn.&lt;br&gt;
  - Khi bạn muốn thay thế một câu lệnh if...else đơn giản trong một dòng, đặc biệt khi gán giá trị hoặc thực hiện hành động đơn giản.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Toán tử logic (&amp;amp;&amp;amp;)&lt;/code&gt; nên dùng khi:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;- Khi bạn muốn kiểm tra một điều kiện và chỉ thực thi mã nếu điều kiện đúng.&lt;br&gt;
  - Khi bạn muốn tránh lỗi do truy cập thuộc tính không tồn tại (null hoặc undefined).&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Tổng kết
&lt;/h3&gt;

&lt;p&gt;Trong bài viết này, mình đã giới thiệu với các bạn về các câu lệnh điều kiện và cách việc thông dụng với nó trong JavaScript,&lt;br&gt;&lt;br&gt;
Hy vọng bài viết này sẽ có thể giúp đỡ các bạn trong quá trình học và tìm hiểu về JavaScript.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Tìm hiểu về mảng (Array) trong Javascript</title>
      <dc:creator>Dương Thái</dc:creator>
      <pubDate>Mon, 13 Jan 2025 15:46:52 +0000</pubDate>
      <link>https://dev.to/duongthai/tim-hieu-ve-mang-array-trong-javascript-1dlj</link>
      <guid>https://dev.to/duongthai/tim-hieu-ve-mang-array-trong-javascript-1dlj</guid>
      <description>&lt;p&gt;Mảng (Array) trong Javascript là một loại dữ liệu đặc biệt dùng để lưu trữ nhiều giá trị trong một biến duy nhất được sử dụng phổ biến trong các ngôn ngữ lập trình. Vậy chúng ta hãy cùng tìm hiểu về cách mảng hoạt động và giúp bạn phát triển các ứng dụng JavaScript như thế nào nhé.&lt;/p&gt;

&lt;h3&gt;
  
  
  I. Khái niệm
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Mảng là một cấu trúc dữ liệu được sử dụng để lưu trữ một danh sách các giá trị (phần tử). Là một đối tượng đặc biệt được xây dựng sẵn trong JavaScript và cung cấp cách để quản lý và thao tác các tập hợp dữ liệu một cách hiệu quả.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  II. Khởi tạo
&lt;/h3&gt;

&lt;p&gt;Có 2 cách chính để khởi tạo mảng:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dùng dấu ngoặc vuông &lt;code&gt;[]&lt;/code&gt;: Cách phổ biến và đơn giản nhất.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;arr &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;1, 2, 3, 4, 5]&lt;span class="p"&gt;;&lt;/span&gt; // Mảng chứa các số
&lt;span class="nb"&gt;let &lt;/span&gt;emptyArr &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;[]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;         // Mảng rỗng
&lt;span class="nb"&gt;let &lt;/span&gt;mixedArr &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;1, &lt;span class="s2"&gt;"two"&lt;/span&gt;, &lt;span class="nb"&gt;true&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // Mảng chứa các kiểu dữ liệu khác nhau
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Sử dụng Array() constructor:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;arr1 &lt;span class="o"&gt;=&lt;/span&gt; new Array&lt;span class="o"&gt;(&lt;/span&gt;5&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;          // Tạo mảng với độ dài 5, các phần tử ban đầu là undefined
&lt;span class="nb"&gt;let &lt;/span&gt;arr2 &lt;span class="o"&gt;=&lt;/span&gt; new Array&lt;span class="o"&gt;(&lt;/span&gt;1, 2, 3&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;    // Tạo mảng chứa các giá trị &lt;span class="o"&gt;[&lt;/span&gt;1, 2, 3]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Lưu ý: Nếu truyền một số duy nhất, nó sẽ được hiểu là độ dài của mảng, không phải phần tử.&lt;/p&gt;

&lt;h3&gt;
  
  
  III. Đặc điểm
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Mảng có thể chứa nhiều giá trị, mỗi giá trị được gọi là một phần tử.&lt;/li&gt;
&lt;li&gt;Các phần tử trong mảng được phân biệt thông qua chỉ số (index), bắt đầu từ 0.&lt;/li&gt;
&lt;li&gt;Hỗ trợ các kiểu dữ liệu khác nhau như: number, string, boolean, object hoặc array.&lt;/li&gt;
&lt;li&gt;Là một đối tượng đặc biệt: được coi là một đối tượng (object), nhưng có các tính năng và phương thức đặc biệt để xử lý danh sách dữ liệu.&lt;/li&gt;
&lt;li&gt;Kích thước động: có thể thêm hoặc xóa phần tử mà không cần khai báo lại.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  IV. Các hàm làm việc với mảng
&lt;/h3&gt;

&lt;h4&gt;
  
  
  1. Truy cập mảng
&lt;/h4&gt;

&lt;p&gt;Một phần tử trong một mảng JavaScript được truy cập bằng cách tham chiếu đến vị trí index của phần tử đó trong &lt;a href="https://dev.toindex%20b%E1%BA%AFt%20%C4%91%E1%BA%A7u%20t%E1%BB%AB%200"&gt;&lt;/a&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;fruits &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"Apple"&lt;/span&gt;, &lt;span class="s2"&gt;"Banana"&lt;/span&gt;, &lt;span class="s2"&gt;"Cherry"&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

console.log&lt;span class="o"&gt;(&lt;/span&gt;fruits[0]&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // Kết quả: &lt;span class="s2"&gt;"Apple"&lt;/span&gt;
console.log&lt;span class="o"&gt;(&lt;/span&gt;fruits[1]&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // Kết quả: &lt;span class="s2"&gt;"Banana"&lt;/span&gt;
console.log&lt;span class="o"&gt;(&lt;/span&gt;fruits[2]&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // Kết quả: &lt;span class="s2"&gt;"Cherry"&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  2. Độ dài mảng
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Độ dài mảng được xác định thông qua thuộc tính &lt;code&gt;.length&lt;/code&gt; thuộc tính này trả về số lượng phần tử trong mảng.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;fruits &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"Apple"&lt;/span&gt;, &lt;span class="s2"&gt;"Banana"&lt;/span&gt;, &lt;span class="s2"&gt;"Cherry"&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
console.log&lt;span class="o"&gt;(&lt;/span&gt;fruits.length&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // Kết quả: 3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  3. Thêm và xóa phần tử
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;push(element): Thêm phần tử vào cuối mảng.&lt;/li&gt;
&lt;li&gt;pop(): Xóa phần tử cuối cùng và trả về phần tử đó.&lt;/li&gt;
&lt;li&gt;unshift(element): Thêm phần tử vào đầu mảng.&lt;/li&gt;
&lt;li&gt;shift(): Xóa phần tử đầu tiên và trả về phần tử đó.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;arr &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;1, 2, 3]&lt;span class="p"&gt;;&lt;/span&gt;
arr.push&lt;span class="o"&gt;(&lt;/span&gt;4&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // Thêm 4 vào cuối
console.log&lt;span class="o"&gt;(&lt;/span&gt;arr&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // &lt;span class="o"&gt;[&lt;/span&gt;1, 2, 3, 4]

arr.pop&lt;span class="o"&gt;()&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // Xóa phần tử cuối
console.log&lt;span class="o"&gt;(&lt;/span&gt;arr&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // &lt;span class="o"&gt;[&lt;/span&gt;1, 2, 3]

arr.unshift&lt;span class="o"&gt;(&lt;/span&gt;0&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // Thêm 0 vào đầu
console.log&lt;span class="o"&gt;(&lt;/span&gt;arr&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // &lt;span class="o"&gt;[&lt;/span&gt;0, 1, 2, 3]

arr.shift&lt;span class="o"&gt;()&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // Xóa phần tử đầu
console.log&lt;span class="o"&gt;(&lt;/span&gt;arr&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // &lt;span class="o"&gt;[&lt;/span&gt;1, 2, 3]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  4. Cắt, nối, và thay đổi
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;slice(start, end): Lấy ra một phần của mảng (không làm thay đổi mảng gốc).&lt;/li&gt;
&lt;li&gt;splice(start, deleteCount, ...items): Xóa, thay thế hoặc chèn phần tử vào mảng.&lt;/li&gt;
&lt;li&gt;concat(...arrays): Nối mảng với các mảng khác.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;arr &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;1, 2, 3, 4, 5]&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nb"&gt;let &lt;/span&gt;sliced &lt;span class="o"&gt;=&lt;/span&gt; arr.slice&lt;span class="o"&gt;(&lt;/span&gt;1, 4&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // Cắt từ index 1 đến index 4 &lt;span class="o"&gt;(&lt;/span&gt;không bao gồm index 4&lt;span class="o"&gt;)&lt;/span&gt;
console.log&lt;span class="o"&gt;(&lt;/span&gt;sliced&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // &lt;span class="o"&gt;[&lt;/span&gt;2, 3, 4]

arr.splice&lt;span class="o"&gt;(&lt;/span&gt;1, 2, &lt;span class="s2"&gt;"a"&lt;/span&gt;, &lt;span class="s2"&gt;"b"&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // Từ index 1 Xóa 2 phần tử và chèn &lt;span class="s2"&gt;"a"&lt;/span&gt;, &lt;span class="s2"&gt;"b"&lt;/span&gt; vào
console.log&lt;span class="o"&gt;(&lt;/span&gt;arr&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // &lt;span class="o"&gt;[&lt;/span&gt; 1, &lt;span class="s1"&gt;'a'&lt;/span&gt;, &lt;span class="s1"&gt;'b'&lt;/span&gt;, 4, 5 &lt;span class="o"&gt;]&lt;/span&gt;

&lt;span class="nb"&gt;let &lt;/span&gt;newArr &lt;span class="o"&gt;=&lt;/span&gt; arr.concat&lt;span class="o"&gt;([&lt;/span&gt;6, 7]&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
console.log&lt;span class="o"&gt;(&lt;/span&gt;newArr&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // &lt;span class="o"&gt;[&lt;/span&gt; 1, &lt;span class="s1"&gt;'a'&lt;/span&gt;, &lt;span class="s1"&gt;'b'&lt;/span&gt;, 4, 5, 6, 7]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  5. Chuyển đổi mảng thành chuỗi
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;join(separator): Kết hợp các phần tử thành chuỗi.&lt;/li&gt;
&lt;li&gt;toString(): Chuyển mảng thành chuỗi (dùng dấu phẩy mặc định).
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;fruits &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"Apple"&lt;/span&gt;, &lt;span class="s2"&gt;"Banana"&lt;/span&gt;, &lt;span class="s2"&gt;"Cherry"&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
console.log&lt;span class="o"&gt;(&lt;/span&gt;fruits.join&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;" - "&lt;/span&gt;&lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // &lt;span class="s2"&gt;"Apple - Banana - Cherry"&lt;/span&gt;
console.log&lt;span class="o"&gt;(&lt;/span&gt;fruits.toString&lt;span class="o"&gt;())&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // &lt;span class="s2"&gt;"Apple,Banana,Cherry"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  6. Sắp xếp và đảo ngược
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;sort(): Sắp xếp mảng (mặc định theo thứ tự chữ cái).&lt;/li&gt;
&lt;li&gt;reverse(): Đảo ngược mảng.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;numbers &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;3, 1, 4, 2]&lt;span class="p"&gt;;&lt;/span&gt;
numbers.sort&lt;span class="o"&gt;()&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // Sắp xếp &lt;span class="o"&gt;(&lt;/span&gt;mặc định theo chuỗi&lt;span class="o"&gt;)&lt;/span&gt;
console.log&lt;span class="o"&gt;(&lt;/span&gt;numbers&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // &lt;span class="o"&gt;[&lt;/span&gt;1, 2, 3, 4]

numbers.reverse&lt;span class="o"&gt;()&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // Đảo ngược
console.log&lt;span class="o"&gt;(&lt;/span&gt;numbers&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // &lt;span class="o"&gt;[&lt;/span&gt;4, 3, 2, 1]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  7. Lặp qua mảng
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;forEach(callback): Duyệt qua mảng, thực hiện một hành động trên mỗi phần tử.&lt;/li&gt;
&lt;li&gt;map(callback): Tạo một mảng mới từ kết quả của hàm callback.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;numbers &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;1, 2, 3, 4, 5]&lt;span class="p"&gt;;&lt;/span&gt;

// forEach
numbers.forEach&lt;span class="o"&gt;((&lt;/span&gt;item&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
 // logic
   console.log&lt;span class="o"&gt;(&lt;/span&gt;item &lt;span class="k"&gt;*&lt;/span&gt; 2
&lt;span class="o"&gt;)})&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // 2, 4, 6, 8, 10

// map
&lt;span class="nb"&gt;let &lt;/span&gt;squares &lt;span class="o"&gt;=&lt;/span&gt; numbers.map&lt;span class="o"&gt;(&lt;/span&gt;num &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; num &lt;span class="k"&gt;*&lt;/span&gt; num&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
console.log&lt;span class="o"&gt;(&lt;/span&gt;squares&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // &lt;span class="o"&gt;[&lt;/span&gt;1, 4, 9, 16, 25]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  8. Kiểm tra điều kiện
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;some(callback): Kiểm tra xem chỉ cần có ít nhất một phần tử thỏa mãn điều kiện.&lt;/li&gt;
&lt;li&gt;every(callback): Kiểm tra xem tất cả các phần tử có thỏa mãn điều kiện không.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;numbers &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;1, 2, 3, 4]&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nb"&gt;let &lt;/span&gt;hasEven &lt;span class="o"&gt;=&lt;/span&gt; numbers.some&lt;span class="o"&gt;(&lt;/span&gt;num &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; num % 2 &lt;span class="o"&gt;===&lt;/span&gt; 0&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // Có số chẵn không?
console.log&lt;span class="o"&gt;(&lt;/span&gt;hasEven&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // &lt;span class="nb"&gt;true

let &lt;/span&gt;allPositive &lt;span class="o"&gt;=&lt;/span&gt; numbers.every&lt;span class="o"&gt;(&lt;/span&gt;num &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; num &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; 0&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // Tất cả đều dương?
console.log&lt;span class="o"&gt;(&lt;/span&gt;allPositive&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // &lt;span class="nb"&gt;true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  9. Tìm kiếm
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;indexOf(element): Tìm vị trí của phần tử&lt;/li&gt;
&lt;li&gt;lastIndexOf(element): Tìm vị trí cuối cùng của phần tử trong mảng
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;arr &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;1, 2, 3, 2, 4]&lt;span class="p"&gt;;&lt;/span&gt;
console.log&lt;span class="o"&gt;(&lt;/span&gt;arr.indexOf&lt;span class="o"&gt;(&lt;/span&gt;2&lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // 1 &lt;span class="o"&gt;(&lt;/span&gt;vị trí đầu tiên của 2&lt;span class="o"&gt;)&lt;/span&gt;
console.log&lt;span class="o"&gt;(&lt;/span&gt;arr.indexOf&lt;span class="o"&gt;(&lt;/span&gt;5&lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // &lt;span class="nt"&gt;-1&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;không tìm thấy&lt;span class="o"&gt;)&lt;/span&gt;
console.log&lt;span class="o"&gt;(&lt;/span&gt;arr.lastIndexOf&lt;span class="o"&gt;(&lt;/span&gt;2&lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // 3 &lt;span class="o"&gt;(&lt;/span&gt;vị trí cuối cùng của 2&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;find(callback): Tìm kiếm và trả về 1 giá trị thỏa mãn điều kiện.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;numbers &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;5, 12, 8, 130, 44]&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nb"&gt;let &lt;/span&gt;found &lt;span class="o"&gt;=&lt;/span&gt; numbers.find&lt;span class="o"&gt;(&lt;/span&gt;num &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; num &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; 10&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
console.log&lt;span class="o"&gt;(&lt;/span&gt;found&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // 12 &lt;span class="o"&gt;(&lt;/span&gt;phần tử đầu tiên lớn hơn 10&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;filter(callback): Tìm kiếm và trả về 1 giá trị thỏa mãn điều kiện.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;numbers &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;5, 12, 8, 130, 44]&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nb"&gt;let &lt;/span&gt;evenNumbers &lt;span class="o"&gt;=&lt;/span&gt; numbers.filter&lt;span class="o"&gt;(&lt;/span&gt;num &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; num % 2 &lt;span class="o"&gt;===&lt;/span&gt; 0&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
console.log&lt;span class="o"&gt;(&lt;/span&gt;evenNumbers&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // &lt;span class="o"&gt;[&lt;/span&gt;12, 8, 130, 44] &lt;span class="o"&gt;(&lt;/span&gt;các số chẵn&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  V. Tổng kết
&lt;/h3&gt;

&lt;p&gt;Trong bài viết này, mình đã giới thiệu với các bạn về mảng (Array) và các hàm làm việc thông dụng với mảng trong JavaScript, từ việc khởi tạo đến các phương thức phổ biến khi làm việc với mảng trong JavaScript.&lt;br&gt;
Hy vọng bài viết này sẽ có thể giúp đỡ các bạn trong quá trình học và tìm hiểu về JavaScript.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Kiểu dữ liệu number trong Javascript</title>
      <dc:creator>Dương Thái</dc:creator>
      <pubDate>Tue, 31 Dec 2024 15:16:12 +0000</pubDate>
      <link>https://dev.to/duongthai/kieu-du-lieu-number-trong-javascript-22ga</link>
      <guid>https://dev.to/duongthai/kieu-du-lieu-number-trong-javascript-22ga</guid>
      <description>&lt;ul&gt;
&lt;li&gt;Số (number) trong Javascript là một trong những kiểu giá trị quan trọng và phổ biến trong tất cả ngôn ngữ lập trình. Vậy chúng ta hãy cùng bắt đầu tìm hiểu về cách Number hoạt động và giúp bạn phát triển các ứng dụng JavaScript như thế nào nhé.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  1. Khái niệm và phân loại
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Số (number) là kiểu dữ liệu đại diện cho tất cả các giá trị số gồm cả số nguyên và số thực (số dấu phẩy động).&lt;/li&gt;
&lt;li&gt;Không phân biệt giữa số nguyên (integer) và số thực (float), tất cả đều thuộc kiểu Number.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;x &lt;span class="o"&gt;=&lt;/span&gt; 10&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nb"&gt;let &lt;/span&gt;y &lt;span class="o"&gt;=&lt;/span&gt; 10.5&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nb"&gt;let &lt;/span&gt;z &lt;span class="o"&gt;=&lt;/span&gt; 1e6&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Gồm có 2 kiểu chính:&lt;br&gt;
&lt;strong&gt;Các số thường:&lt;/strong&gt; Đây là kiểu dữ liệu số thông dụng nhất trong JavaScript, dùng để đại diện cho tất cả các giá trị số gồm:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Số nguyên (e.g., 10, -5)&lt;/li&gt;
&lt;li&gt;Số thực (số thập phân, e.g., 3.14, -0.001)&lt;/li&gt;
&lt;li&gt;Các giá trị đặc biệt: - Infinity (Vô cực). - Infinity: Âm vô cực.
NaN (Not-a-Number): Xuất hiện khi một phép toán số học không hợp lệ.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;- trong Javascript được lưu dưới dạng 64bit IEEE 754 (số phẩy động)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;a &lt;span class="o"&gt;=&lt;/span&gt; 42&lt;span class="p"&gt;;&lt;/span&gt;       // Số nguyên
&lt;span class="nb"&gt;let &lt;/span&gt;b &lt;span class="o"&gt;=&lt;/span&gt; 3.14&lt;span class="p"&gt;;&lt;/span&gt;     // Số thực
&lt;span class="nb"&gt;let &lt;/span&gt;c &lt;span class="o"&gt;=&lt;/span&gt; Infinity&lt;span class="p"&gt;;&lt;/span&gt; // Vô cực
&lt;span class="nb"&gt;let &lt;/span&gt;d &lt;span class="o"&gt;=&lt;/span&gt; NaN&lt;span class="p"&gt;;&lt;/span&gt;      // Không phải số
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;BigInt (Kiểu số lớn):&lt;/strong&gt; Là loại số sử dụng để biểu thị số nguyên rất lớn (hoặc rất nhỏ) hoặc có độ dài tùy ý.&lt;/p&gt;

&lt;p&gt;- BigInt là kiểu dữ liệu mới được giới thiệu từ ECMAScript 2020.&lt;br&gt;
  Ký hiệu bằng cách thêm chữ n ở cuối số.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;largeNumber &lt;span class="o"&gt;=&lt;/span&gt; 123456789012345678901234567890n&lt;span class="p"&gt;;&lt;/span&gt; // Số nguyên rất lớn
&lt;span class="nb"&gt;let &lt;/span&gt;smallNumber &lt;span class="o"&gt;=&lt;/span&gt; 10n&lt;span class="p"&gt;;&lt;/span&gt; // Số nguyên nhỏ
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Làm việc với số
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Các phép toán cơ bản:&lt;/strong&gt; cộng, trừ, nhân, chia, chia lấy dư, lũy thừa.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;x &lt;span class="o"&gt;=&lt;/span&gt; 10&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nb"&gt;let &lt;/span&gt;y &lt;span class="o"&gt;=&lt;/span&gt; 3&lt;span class="p"&gt;;&lt;/span&gt;

console.log&lt;span class="o"&gt;(&lt;/span&gt;x + y&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // 13
console.log&lt;span class="o"&gt;(&lt;/span&gt;x - y&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // 7
console.log&lt;span class="o"&gt;(&lt;/span&gt;x &lt;span class="k"&gt;*&lt;/span&gt; y&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // 30
console.log&lt;span class="o"&gt;(&lt;/span&gt;x / y&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // 3.3333333333333335
console.log&lt;span class="o"&gt;(&lt;/span&gt;x % y&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // 1 &lt;span class="o"&gt;(&lt;/span&gt;chia lấy dư&lt;span class="o"&gt;)&lt;/span&gt;
console.log&lt;span class="o"&gt;(&lt;/span&gt;2 &lt;span class="k"&gt;**&lt;/span&gt; 3&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // 8 &lt;span class="o"&gt;(&lt;/span&gt;2 mũ 3&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Tăng giảm một đơn vị&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tăng (++)
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;x &lt;span class="o"&gt;=&lt;/span&gt; 5&lt;span class="p"&gt;;&lt;/span&gt;
x++&lt;span class="p"&gt;;&lt;/span&gt;  // Tăng 1 -&amp;gt; x &lt;span class="o"&gt;=&lt;/span&gt; 6
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Giảm (--)
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;x &lt;span class="o"&gt;=&lt;/span&gt; 5&lt;span class="p"&gt;;&lt;/span&gt;
x--&lt;span class="p"&gt;;&lt;/span&gt;  // Giảm 1 -&amp;gt; x &lt;span class="o"&gt;=&lt;/span&gt; 4
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Lưu ý:
Tiền tố (++x hoặc --x): Thực hiện phép toán trước khi trả giá trị.
Hậu tố (x++ hoặc x--): Trả giá trị trước khi thực hiện phép toán.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Sử dụng các phương thức của đối tượng &lt;code&gt;Math&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Math.PI: Lấy ra số pi.&lt;/li&gt;
&lt;li&gt;Math.round(): Làm tròn đến số nguyên gần nhất.&lt;/li&gt;
&lt;li&gt;Math.abs(): Lấy giá trị tuyệt đối.&lt;/li&gt;
&lt;li&gt;Math.ceil() : làm tròn lên.&lt;/li&gt;
&lt;li&gt;Math.floor(): làm tròn dưới.&lt;/li&gt;
&lt;li&gt;Math.max(): trả về số lớn nhất trong dãy số.&lt;/li&gt;
&lt;li&gt;Math.min(): trả về số nhỏ nhất trong dãy số.&lt;/li&gt;
&lt;li&gt;Math.pow(): tính số mũ.&lt;/li&gt;
&lt;li&gt;Math..sqrt(): tính căn bậc hai.&lt;/li&gt;
&lt;li&gt;Math.random(): in ra dãy số thập phân ngẫu nhiên nhỏ hơn 1.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;console.log&lt;span class="o"&gt;(&lt;/span&gt;Math.PI&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // 3.141592653589793
console.log&lt;span class="o"&gt;(&lt;/span&gt;Math.round&lt;span class="o"&gt;(&lt;/span&gt;3.7&lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // 4
console.log&lt;span class="o"&gt;(&lt;/span&gt;Math.abs&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;-10&lt;/span&gt;&lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;   // 10
console.log&lt;span class="o"&gt;(&lt;/span&gt;Math.ceil&lt;span class="o"&gt;(&lt;/span&gt;3.1&lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  // 4
console.log&lt;span class="o"&gt;(&lt;/span&gt;Math.floor&lt;span class="o"&gt;(&lt;/span&gt;3.9&lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // 3
console.log&lt;span class="o"&gt;(&lt;/span&gt;Math.max&lt;span class="o"&gt;(&lt;/span&gt;1, 2, 3&lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // 3
console.log&lt;span class="o"&gt;(&lt;/span&gt;Math.min&lt;span class="o"&gt;(&lt;/span&gt;1, 2, 3&lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // 1
console.log&lt;span class="o"&gt;(&lt;/span&gt;Math.pow&lt;span class="o"&gt;(&lt;/span&gt;2, 3&lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // 8 &lt;span class="o"&gt;(&lt;/span&gt;2 mũ 3&lt;span class="o"&gt;)&lt;/span&gt;
console.log&lt;span class="o"&gt;(&lt;/span&gt;Math.sqrt&lt;span class="o"&gt;(&lt;/span&gt;25&lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  // 5
console.log&lt;span class="o"&gt;(&lt;/span&gt;Math.random&lt;span class="o"&gt;())&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Sử dụng đối tượng Number&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Number.isFinite(value): Kiểm tra giá trị có phải số hữu hạn hay không.&lt;/li&gt;
&lt;li&gt;Number.isInteger(value): Kiểm tra giá trị có phải số nguyên hay không.&lt;/li&gt;
&lt;li&gt;parseInt(value): chuyển chuỗi thành số phẩy động.&lt;/li&gt;
&lt;li&gt;parseFloat(value): chuyển chuỗi thành số nguyên.&lt;/li&gt;
&lt;li&gt;toString(): chuyển số thành chuỗi.&lt;/li&gt;
&lt;li&gt;toFixed(): làm tròn số.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;console.log&lt;span class="o"&gt;(&lt;/span&gt;Number.isFinite&lt;span class="o"&gt;(&lt;/span&gt;2/0&lt;span class="o"&gt;))&lt;/span&gt; // &lt;span class="nb"&gt;false
&lt;/span&gt;console.log&lt;span class="o"&gt;(&lt;/span&gt;Number.isFinite&lt;span class="o"&gt;(&lt;/span&gt;20/4&lt;span class="o"&gt;))&lt;/span&gt; // &lt;span class="nb"&gt;true
&lt;/span&gt;console.log&lt;span class="o"&gt;(&lt;/span&gt;Number.isInteger&lt;span class="o"&gt;(&lt;/span&gt;99&lt;span class="o"&gt;))&lt;/span&gt; // &lt;span class="nb"&gt;true
&lt;/span&gt;console.log&lt;span class="o"&gt;(&lt;/span&gt;Number.isInteger&lt;span class="o"&gt;(&lt;/span&gt;0.5&lt;span class="o"&gt;))&lt;/span&gt; // &lt;span class="nb"&gt;false
&lt;/span&gt;console.log&lt;span class="o"&gt;(&lt;/span&gt;parseInt&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"42"&lt;/span&gt;&lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;    // 42
console.log&lt;span class="o"&gt;(&lt;/span&gt;parseInt&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"46.5"&lt;/span&gt;&lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;    // 46
console.log&lt;span class="o"&gt;(&lt;/span&gt;Number.parseFloat&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"3.14"&lt;/span&gt;&lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  // 3.14
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. Tổng kết
&lt;/h3&gt;

&lt;p&gt;Trong bài viết này, mình đã giới thiệu với các bạn về kiểu dữ liệu số (number) và cách làm việc với chuỗi trong JavaScript, từ việc khởi tạo đến các phương thức phổ biến khi làm việc với số trong JavaScript.&lt;br&gt;
Hy vọng bài viết này sẽ có thể giúp đỡ các bạn trong quá trình học và tìm hiểu về JavaScript.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Toán tử trong Javascript</title>
      <dc:creator>Dương Thái</dc:creator>
      <pubDate>Fri, 27 Dec 2024 15:53:08 +0000</pubDate>
      <link>https://dev.to/duongthai/toan-tu-trong-javascript-205b</link>
      <guid>https://dev.to/duongthai/toan-tu-trong-javascript-205b</guid>
      <description>&lt;h2&gt;
  
  
  I. Toán tử là gì?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Toán tử là các dấu hay ký tự đặc biệt, dùng để thực hiện các thao tác trên giá trị hoặc biến nào đó để cho ra kết quả cuối cùng.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  II. Các loại toán tử
&lt;/h2&gt;

&lt;p&gt;Trong JavaScript có nhiều loại toán tử mà bạn nên biết như :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Toán tử số học - Arithmetic Operators&lt;/li&gt;
&lt;li&gt;Toán tử gán - Assignment Operators&lt;/li&gt;
&lt;li&gt;Toán tử so sánh - Comparison Operators&lt;/li&gt;
&lt;li&gt;Toán tử logic - Logical Operators&lt;/li&gt;
&lt;li&gt;Toán tử chuỗi - String Operators&lt;/li&gt;
&lt;li&gt;Toán tử ba ngôi - ternary operator&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  1. Toán tử số học - Arithmetic Operators
&lt;/h4&gt;

&lt;p&gt;Toán tử số học trong JavaScript là các ký hiệu dùng để thực hiện các phép tính toán học cơ bản trên số. Chúng giúp xử lý các phép toán như cộng, trừ, nhân, chia...&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Toán tử&lt;/th&gt;
&lt;th&gt; Mô tả&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;+&lt;/td&gt;
&lt;td&gt;Cộng&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;Trừ&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;*&lt;/td&gt;
&lt;td&gt;Nhân&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;**&lt;/td&gt;
&lt;td&gt;Nhân lũy thừa&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;/&lt;/td&gt;
&lt;td&gt;chia&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;%&lt;/td&gt;
&lt;td&gt;Chia lấy dư&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;++&lt;/td&gt;
&lt;td&gt;Tăng giá trị lên 1 đơn vị&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;--&lt;/td&gt;
&lt;td&gt;Giảm giá trị xuống 1 đơn vị&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Ví dụ :&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;x &lt;span class="o"&gt;=&lt;/span&gt; 10&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nb"&gt;let &lt;/span&gt;y &lt;span class="o"&gt;=&lt;/span&gt; 3&lt;span class="p"&gt;;&lt;/span&gt;

console.log&lt;span class="o"&gt;(&lt;/span&gt;x + y&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  // 13
console.log&lt;span class="o"&gt;(&lt;/span&gt;x - y&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  // 7
console.log&lt;span class="o"&gt;(&lt;/span&gt;x &lt;span class="k"&gt;*&lt;/span&gt; y&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  // 30
console.log&lt;span class="o"&gt;(&lt;/span&gt;x / y&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  // 3.3333333333333335
console.log&lt;span class="o"&gt;(&lt;/span&gt;x % y&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  // 1
console.log&lt;span class="o"&gt;(&lt;/span&gt;x &lt;span class="k"&gt;**&lt;/span&gt; y&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // 1000
x++&lt;span class="p"&gt;;&lt;/span&gt;
console.log&lt;span class="o"&gt;(&lt;/span&gt;x&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;      // 11
x--&lt;span class="p"&gt;;&lt;/span&gt;
console.log&lt;span class="o"&gt;(&lt;/span&gt;x&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;      // 10
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  2. Toán tử gán - Assignment Operators
&lt;/h4&gt;

&lt;p&gt;Toán tử gán được sử dụng để gán giá trị cho một biến. Toán tử gán cơ bản là &lt;code&gt;=&lt;/code&gt;, nhưng JavaScript cũng cung cấp nhiều toán tử gán kết hợp để thực hiện các phép tính và gán giá trị cùng lúc.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Toán tử&lt;/th&gt;
&lt;th&gt; Mô tả&lt;/th&gt;
&lt;th&gt; Tương đương&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;=&lt;/td&gt;
&lt;td&gt;x = y&lt;/td&gt;
&lt;td&gt;x = y&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;+=&lt;/td&gt;
&lt;td&gt;x += y&lt;/td&gt;
&lt;td&gt;x = x + y&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-=&lt;/td&gt;
&lt;td&gt;x -= y&lt;/td&gt;
&lt;td&gt;x = x - y&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;*=&lt;/td&gt;
&lt;td&gt;x *= y&lt;/td&gt;
&lt;td&gt;x = x * y&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;/=&lt;/td&gt;
&lt;td&gt;x /= y&lt;/td&gt;
&lt;td&gt;x = x / y&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;%=&lt;/td&gt;
&lt;td&gt;x %= y&lt;/td&gt;
&lt;td&gt;x = x % y&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;**=&lt;/td&gt;
&lt;td&gt;x **= y&lt;/td&gt;
&lt;td&gt;x = x**y&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Ví dụ:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;x &lt;span class="o"&gt;=&lt;/span&gt; 10&lt;span class="p"&gt;;&lt;/span&gt;

x +&lt;span class="o"&gt;=&lt;/span&gt; 5&lt;span class="p"&gt;;&lt;/span&gt;  // x &lt;span class="o"&gt;=&lt;/span&gt; 10 + 5 &lt;span class="o"&gt;(&lt;/span&gt;x &lt;span class="o"&gt;=&lt;/span&gt; 15&lt;span class="o"&gt;)&lt;/span&gt;
x -&lt;span class="o"&gt;=&lt;/span&gt; 3&lt;span class="p"&gt;;&lt;/span&gt;  // x &lt;span class="o"&gt;=&lt;/span&gt; 15 - 3 &lt;span class="o"&gt;(&lt;/span&gt;x &lt;span class="o"&gt;=&lt;/span&gt; 12&lt;span class="o"&gt;)&lt;/span&gt;
x &lt;span class="k"&gt;*&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; 2&lt;span class="p"&gt;;&lt;/span&gt;  // x &lt;span class="o"&gt;=&lt;/span&gt; 12 &lt;span class="k"&gt;*&lt;/span&gt; 2 &lt;span class="o"&gt;(&lt;/span&gt;x &lt;span class="o"&gt;=&lt;/span&gt; 24&lt;span class="o"&gt;)&lt;/span&gt;
x /&lt;span class="o"&gt;=&lt;/span&gt; 4&lt;span class="p"&gt;;&lt;/span&gt;  // x &lt;span class="o"&gt;=&lt;/span&gt; 24 / 4 &lt;span class="o"&gt;(&lt;/span&gt;x &lt;span class="o"&gt;=&lt;/span&gt; 6&lt;span class="o"&gt;)&lt;/span&gt;
x %&lt;span class="o"&gt;=&lt;/span&gt; 5&lt;span class="p"&gt;;&lt;/span&gt;  // x &lt;span class="o"&gt;=&lt;/span&gt; 6 % 5 &lt;span class="o"&gt;(&lt;/span&gt;x &lt;span class="o"&gt;=&lt;/span&gt; 1&lt;span class="o"&gt;)&lt;/span&gt;
x &lt;span class="k"&gt;**&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; 3&lt;span class="p"&gt;;&lt;/span&gt; // x &lt;span class="o"&gt;=&lt;/span&gt; 1 &lt;span class="k"&gt;**&lt;/span&gt; 3 &lt;span class="o"&gt;(&lt;/span&gt;x &lt;span class="o"&gt;=&lt;/span&gt; 1&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  3. Toán tử so sánh - Comparison Operators
&lt;/h4&gt;

&lt;p&gt;Dùng để so sánh hai giá trị và trả về một kết quả kiểu boolean (true hoặc false). Chúng thường được dùng trong các điều kiện hoặc các biểu thức logic.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Toán tử&lt;/th&gt;
&lt;th&gt; Mô tả&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;==&lt;/td&gt;
&lt;td&gt;So sánh bằng theo giá trị&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;===&lt;/td&gt;
&lt;td&gt;So sánh bằng cả giá trị và kiểu&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;!=&lt;/td&gt;
&lt;td&gt;So sánh không bằng theo giá trị&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;!==&lt;/td&gt;
&lt;td&gt;So sánh không bằng theo cả giá trị và kiểu&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;gt;&lt;/td&gt;
&lt;td&gt;Lớn hơn&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;lt;&lt;/td&gt;
&lt;td&gt;Bé hơn&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;gt;=&lt;/td&gt;
&lt;td&gt;Lớn hơn hoặc bằng&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;lt;=&lt;/td&gt;
&lt;td&gt;Bé hơn hoặc bằng&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Lưu ý:&lt;/strong&gt; khi sử dụng &lt;code&gt;==&lt;/code&gt; &lt;code&gt;===&lt;/code&gt; và &lt;code&gt;!=&lt;/code&gt; &lt;code&gt;!==&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;== không so sánh kiểu dữ liệu, do đó nó sẽ tự động chuyển đổi (coerce) kiểu dữ liệu để so sánh.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;=== yêu cầu cả giá trị và kiểu phải giống nhau.&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;console.log&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"5"&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; 5&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // &lt;span class="nb"&gt;true
&lt;/span&gt;console.log&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"5"&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; 5&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // &lt;span class="nb"&gt;false&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;!=&lt;/code&gt; và &lt;code&gt;!==&lt;/code&gt; tương tự
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;console.log&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"5"&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; 5&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // &lt;span class="nb"&gt;false
&lt;/span&gt;console.log&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"5"&lt;/span&gt; &lt;span class="o"&gt;!==&lt;/span&gt; 5&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // &lt;span class="nb"&gt;true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  4. Toán tử logic - Logical Operators
&lt;/h4&gt;

&lt;p&gt;Toán tử logic được sử dụng để thực hiện các phép toán logic, thường dùng để kết hợp nhiều điều kiện hoặc biểu thức và trả về kết quả dạng boolean (true hoặc false) Rất phổ biến trong các cấu trúc điều khiển như if-else, while, hoặc trong các điều kiện phức tạp.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Toán tử&lt;/th&gt;
&lt;th&gt; Tên &lt;/th&gt;
&lt;th&gt; Mô tả&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&amp;amp;&amp;amp;&lt;/td&gt;
&lt;td&gt;Toán tử AND&lt;/td&gt;
&lt;td&gt;Trả về &lt;code&gt;true&lt;/code&gt; nếu tất cả các biểu thức đều đúng, ngược lại trả về &lt;code&gt;false&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;\&lt;/td&gt;
&lt;td&gt;\&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;!&lt;/td&gt;
&lt;td&gt;Toán tử NOT&lt;/td&gt;
&lt;td&gt;Đảo ngược giá trị logic của một biểu thức. &lt;br&gt; Nếu biểu thức là &lt;code&gt;true&lt;/code&gt;, kết quả sẽ là &lt;code&gt;false&lt;/code&gt;, và ngược lại.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;// AND
console.log&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;true&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;true&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;   // &lt;span class="nb"&gt;true
&lt;/span&gt;console.log&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;true&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;false&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  // &lt;span class="nb"&gt;false
&lt;/span&gt;console.log&lt;span class="o"&gt;(&lt;/span&gt;5 &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; 3 &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; 10 &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; 8&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // &lt;span class="nb"&gt;true&lt;/span&gt;
// OR
console.log&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;true&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nb"&gt;false&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  // &lt;span class="nb"&gt;true
&lt;/span&gt;console.log&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;false&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nb"&gt;false&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // &lt;span class="nb"&gt;false
&lt;/span&gt;console.log&lt;span class="o"&gt;(&lt;/span&gt;5 &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; 10 &lt;span class="o"&gt;||&lt;/span&gt; 8 &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; 3&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // &lt;span class="nb"&gt;true&lt;/span&gt;
// NOT
console.log&lt;span class="o"&gt;(!&lt;/span&gt;&lt;span class="nb"&gt;true&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;    // &lt;span class="nb"&gt;false
&lt;/span&gt;console.log&lt;span class="o"&gt;(!&lt;/span&gt;&lt;span class="nb"&gt;false&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;   // &lt;span class="nb"&gt;true
&lt;/span&gt;console.log&lt;span class="o"&gt;(!(&lt;/span&gt;5 &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; 3&lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // &lt;span class="nb"&gt;false&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  5. Toán tử nối chuỗi
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Toán tử nối chuỗi (+): dừng để nối các chuỗi và biến lại với nhau
Cú pháp: chuỗi1 + chuỗi2
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;firstName &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"John"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nb"&gt;let &lt;/span&gt;lastName &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"Doe"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
console.log&lt;span class="o"&gt;(&lt;/span&gt;firstName + &lt;span class="s2"&gt;" "&lt;/span&gt; + lastName&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // &lt;span class="s2"&gt;"John Doe"&lt;/span&gt;
console.log&lt;span class="o"&gt;(&lt;/span&gt;5 + &lt;span class="s2"&gt;"5"&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;// 55
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Lưu ý: Nếu một trong các toán hạng là số và toán hạng còn lại là chuỗi, thì JavaScript sẽ chuyển số thành chuỗi trước khi nối&lt;/p&gt;

&lt;h4&gt;
  
  
  6. Toán tử ba ngôi - ternary operator
&lt;/h4&gt;

&lt;p&gt;Toán tử ba ngôi là một cách ngắn gọn để viết các câu lệnh điều kiện if-else một cách ngắn gọn. Đây là toán tử duy nhất trong JavaScript có ba toán hạng.&lt;br&gt;
Điều kiện ? giá trị 1 : giá trị 2&lt;/p&gt;

&lt;p&gt;giá trị 1: Giá trị hoặc biểu thức được thực thi nếu Điều kiện là true.&lt;br&gt;
giá trị 2: Giá trị hoặc biểu thức được thực thi nếu Điều kiện là false.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;age &lt;span class="o"&gt;=&lt;/span&gt; 20&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nb"&gt;let &lt;/span&gt;access &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;age &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; 18&lt;span class="o"&gt;)&lt;/span&gt; ? &lt;span class="s2"&gt;"Được phép truy cập"&lt;/span&gt; : &lt;span class="s2"&gt;"Bạn chưa đủ tuổi"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
console.log&lt;span class="o"&gt;(&lt;/span&gt;access&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // &lt;span class="s2"&gt;"Được phép truy cập"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ưu điểm:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ngắn gọn và dễ viết: Giúp mã ngắn hơn khi xử lý điều kiện đơn giản.&lt;/li&gt;
&lt;li&gt;Trực quan hơn: Khi viết mã ngắn gọn, dễ hiểu hơn.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nhược điểm:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Khó đọc: Nếu lồng nhiều toán tử ba ngôi, mã sẽ trở nên khó hiểu.&lt;/li&gt;
&lt;li&gt;Hạn chế với logic phức tạp: Với các điều kiện phức tạp, if-else sẽ rõ ràng hơn.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  7. Lời kết
&lt;/h4&gt;

&lt;p&gt;Trên đây là các loại toán tử phổ biến thường gặp, ngoài ra trong Js còn một số toán tử khác mang tính chuyên dụng hơn các bạn có thể chủ động tìm hiểu thêm nhé. Để giải quyết các bài toán lập trình với Javascript việc nắm vững các toán tử Js là yêu cầu bắt buộc đối với các lập trình viên.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Chuỗi (String) strong Jacascript</title>
      <dc:creator>Dương Thái</dc:creator>
      <pubDate>Fri, 27 Dec 2024 15:52:01 +0000</pubDate>
      <link>https://dev.to/duongthai/chuoi-string-strong-jacascript-46cj</link>
      <guid>https://dev.to/duongthai/chuoi-string-strong-jacascript-46cj</guid>
      <description>&lt;h2&gt;
  
  
  I. Khái quát
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Khái niệm
&lt;/h3&gt;

&lt;p&gt;chuỗi (string) là một kiểu dữ liệu được sử dụng để lưu trữ một chuỗi ký tự có thể bao gồm chữ cái, số, ký hiệu, từ hoặc câu .&lt;br&gt;
Chuỗi là một tập hợp các ký tự được bao bọc bởi dấu nháy đơn (') hoặc dấu nháy kép ("), và từ ES6, bạn cũng có thể sử dụng template literals với dấu backtick.&lt;/p&gt;
&lt;h3&gt;
  
  
  2. Tạo chuỗi
&lt;/h3&gt;

&lt;p&gt;Có 3 cách để tạo chính để tạo chuỗi:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sử dụng Dấu Nháy Đơn hoặc Dấu Nháy Kép:
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;singleQuote &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'Hello, world!'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nb"&gt;let &lt;/span&gt;doubleQuote &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"Hello, world!"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Sử dụng Constructor &lt;code&gt;String&lt;/code&gt;:
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;str &lt;span class="o"&gt;=&lt;/span&gt; String&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"Hello, world!"&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // Chuyển đổi sang chuỗi
&lt;span class="nb"&gt;let &lt;/span&gt;anotherStr &lt;span class="o"&gt;=&lt;/span&gt; new String&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"Hello, world"&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // Tạo đối tượng chuỗi
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Lưu ý: Trong trường hợp sử dụng dấu nháy đơn &lt;code&gt;'&lt;/code&gt; và dấu nháy kép &lt;code&gt;""&lt;/code&gt; trong chuỗi bạn cần sử dụng thêm ký tự backslash () để có thể hiển thị chúng.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;escapeSingle &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'It\'&lt;/span&gt;s a sunny day.&lt;span class="s1"&gt;'; // It'&lt;/span&gt;s a sunny day.
&lt;span class="nb"&gt;let &lt;/span&gt;escapeDouble &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"He said, &lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;Hello!&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // He said, &lt;span class="s2"&gt;"Hello!"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Dấu nháy ngược &lt;code&gt;&lt;/code&gt;&lt;code&gt;&lt;/code&gt; (Template literals):
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;str1 &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"World"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nb"&gt;let &lt;/span&gt;str2 &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sb"&gt;`&lt;/span&gt;Hello &lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;str1&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // Template literals, hỗ trợ nội suy
console.log&lt;span class="o"&gt;(&lt;/span&gt;str2&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // Output: Hello World
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  II. Làm việc với chuỗi
&lt;/h2&gt;

&lt;h4&gt;
  
  
  1. Kiểm tra độ dài chuỗi (length)
&lt;/h4&gt;

&lt;p&gt;cú pháp: &lt;code&gt;string.length&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;text &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"JavaScript"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
console.log&lt;span class="o"&gt;(&lt;/span&gt;text.length&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // Output: 10
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  2. Tìm kiếm chuỗi
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Tìm vị trí xuất hiện đầu tiên:&lt;/strong&gt;&lt;br&gt;
cú pháp: &lt;code&gt;string.indexOf(searchValue, start)&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;searchValue: Chuỗi con cần tìm.&lt;/li&gt;
&lt;li&gt;start (tùy chọn): Vị trí bắt đầu tìm kiếm trong chuỗi cha (mặc định là 0).
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;text &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"Hello, world!"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
console.log&lt;span class="o"&gt;(&lt;/span&gt;text.indexOf&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"world"&lt;/span&gt;&lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // Output: 7
console.log&lt;span class="o"&gt;(&lt;/span&gt;text.indexOf&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"JavaScript"&lt;/span&gt;&lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // Output: &lt;span class="nt"&gt;-1&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;Tìm vị trí xuất hiện cuối cùng:&lt;/strong&gt;&lt;br&gt;
cú pháp: &lt;code&gt;string.lastIndexOf(searchValue, start)&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;searchValue: Chuỗi con cần tìm.&lt;/li&gt;
&lt;li&gt;start (tùy chọn): Vị trí bắt đầu tìm kiếm trong chuỗi cha (mặc định là 0).
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;text &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"Hello, world!, Hello, world!"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
console.log&lt;span class="o"&gt;(&lt;/span&gt;text.lastIndexOf&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"world"&lt;/span&gt;&lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // Output: 22
console.log&lt;span class="o"&gt;(&lt;/span&gt;text.lastIndexOf&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"Python"&lt;/span&gt;&lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // Output: &lt;span class="nt"&gt;-1&lt;/span&gt;
console.log&lt;span class="o"&gt;(&lt;/span&gt;text.lastIndexOf&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"world"&lt;/span&gt;, 10&lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // Output: 7

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;Lưu ý:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Nếu chuỗi con không được tìm thấy, indexOf() sẽ trả về giá trị -1.&lt;/li&gt;
&lt;li&gt;indexOf() chỉ tìm được vị trí đầu tiên mà chuỗi con xuất hiện. Javascript sẽ bỏ qua những vị trí xuất hiện sau đó.&lt;/li&gt;
&lt;li&gt;lastIndexOf() chỉ tìm được vị trí cuối mà chuỗi con xuất hiện. Javascript sẽ bỏ qua những vị trí xuất hiện trước đó.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  4. Cắt chuỗi (slice)
&lt;/h4&gt;

&lt;p&gt;Cú pháp: &lt;code&gt;string.slice(startIndex, endIndex)&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;startIndex: Vị trí bắt đầu (tính từ 0).&lt;/li&gt;
&lt;li&gt;endIndex (tùy chọn): Vị trí kết thúc, không bao gồm ký tự tại endIndex. Nếu bỏ qua, chuỗi sẽ được cắt từ startIndex đến hết.
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;
&lt;span class="nb"&gt;let &lt;/span&gt;text &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"JavaScript is awesome"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
console.log&lt;span class="o"&gt;(&lt;/span&gt;text.slice&lt;span class="o"&gt;(&lt;/span&gt;0, 10&lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  // Output: &lt;span class="s2"&gt;"JavaScript"&lt;/span&gt;
console.log&lt;span class="o"&gt;(&lt;/span&gt;text.slice&lt;span class="o"&gt;(&lt;/span&gt;11&lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;     // Output: &lt;span class="s2"&gt;"is awesome"&lt;/span&gt;
console.log&lt;span class="o"&gt;(&lt;/span&gt;text.slice&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;-7&lt;/span&gt;&lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;     // Output: &lt;span class="s2"&gt;"awesome"&lt;/span&gt;
console.log&lt;span class="o"&gt;(&lt;/span&gt;text.slice&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;-7&lt;/span&gt;, &lt;span class="nt"&gt;-1&lt;/span&gt;&lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // Output: &lt;span class="s2"&gt;"awesom"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h4&gt;
  
  
  5. Thay Thế (replace)
&lt;/h4&gt;

&lt;p&gt;Cú pháp: &lt;code&gt;string.replace(searchValue, newValue)&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;searchValue: Chuỗi con cần tìm.&lt;/li&gt;
&lt;li&gt;newValue: Chuỗi thay thế.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Lưu ý:&lt;/strong&gt; Phương thức replace() có phân biệt chữ hoa và chữ thường&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;text &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"Hello, world!"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nb"&gt;let &lt;/span&gt;newText1 &lt;span class="o"&gt;=&lt;/span&gt; text.replace&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"World"&lt;/span&gt;, &lt;span class="s2"&gt;"JavaScript"&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nb"&gt;let &lt;/span&gt;newText2 &lt;span class="o"&gt;=&lt;/span&gt; text.replace&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"world"&lt;/span&gt;, &lt;span class="s2"&gt;"JavaScript"&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
console.log&lt;span class="o"&gt;(&lt;/span&gt;newText1&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // Output: &lt;span class="s2"&gt;"Hello, world!"&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;không thay thế vì &lt;span class="s2"&gt;"world"&lt;/span&gt; khác &lt;span class="s2"&gt;"World"&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
console.log&lt;span class="o"&gt;(&lt;/span&gt;newText2&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // Output: &lt;span class="s2"&gt;"Hello, JavaScript!"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  6. Chuyển đổi chữ hoa và chữ thường
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;string.toUpperCase()&lt;/code&gt;: Chuyển thành chữ in hoa&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;string.toLowerCase()&lt;/code&gt;: Chuyển thành chữ thường
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;text &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"JavaScript"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
console.log&lt;span class="o"&gt;(&lt;/span&gt;text.toUpperCase&lt;span class="o"&gt;())&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // Output: JAVASCRIPT
console.log&lt;span class="o"&gt;(&lt;/span&gt;text.toLowerCase&lt;span class="o"&gt;())&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // Output: javascript
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  7. Kiểm tra chuỗi con
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;string.includes(searchString, position)&lt;/code&gt;: kiểm tra có giá trị trong chuỗi không.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;string.startsWith(searchString, position)&lt;/code&gt;: kiểm tra giá trị bắt đầu.&lt;/li&gt;
&lt;li&gt;s&lt;code&gt;tring.endsWith(searchString, length)&lt;/code&gt;: kiểm tra giá trị kết thúc.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;text &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"JavaScript is fun"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
console.log&lt;span class="o"&gt;(&lt;/span&gt;text.includes&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"fun"&lt;/span&gt;&lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // Output: &lt;span class="nb"&gt;true
&lt;/span&gt;console.log&lt;span class="o"&gt;(&lt;/span&gt;text.startsWith&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"Java"&lt;/span&gt;&lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // Output: &lt;span class="nb"&gt;true
&lt;/span&gt;console.log&lt;span class="o"&gt;(&lt;/span&gt;text.endsWith&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"fun"&lt;/span&gt;&lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // Output: &lt;span class="nb"&gt;true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  8. Tách chuỗi
&lt;/h4&gt;

&lt;p&gt;Dựa vào điểm chung để cắt chuỗi và trả về dạng array.&lt;/p&gt;

&lt;p&gt;Cú pháp: &lt;code&gt;string.split(separator)&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;separator: Ký tự hoặc điểm chung. Nếu không chỉ định, chuỗi sẽ không bị tách.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;text &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"Apple, Banana, Orange"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nb"&gt;let &lt;/span&gt;fruits &lt;span class="o"&gt;=&lt;/span&gt; text.split&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;", "&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
console.log&lt;span class="o"&gt;(&lt;/span&gt;fruits&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // Output: &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"Apple"&lt;/span&gt;, &lt;span class="s2"&gt;"Banana"&lt;/span&gt;, &lt;span class="s2"&gt;"Orange"&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  9. Nối chuỗi
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;text1 &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"Hello"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nb"&gt;let &lt;/span&gt;text2 &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"World"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nb"&gt;let &lt;/span&gt;result &lt;span class="o"&gt;=&lt;/span&gt; text1 + &lt;span class="s2"&gt;" "&lt;/span&gt; + text2&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nb"&gt;let &lt;/span&gt;result2 &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;text1&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt; &lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;text2&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // Template literals
console.log&lt;span class="o"&gt;(&lt;/span&gt;result&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // Output: Hello World
console.log&lt;span class="o"&gt;(&lt;/span&gt;result2&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // Output: Hello World
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  10. Xóa khoảng trắng
&lt;/h4&gt;

&lt;p&gt;Cú pháp: &lt;code&gt;string.trim()&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;text &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"   JavaScript   "&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
console.log&lt;span class="o"&gt;(&lt;/span&gt;text.trim&lt;span class="o"&gt;())&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // Output: JavaScript
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  10. Chuyển đổi kiểu
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;str &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"123"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nb"&gt;let &lt;/span&gt;num &lt;span class="o"&gt;=&lt;/span&gt; 123&lt;span class="p"&gt;;&lt;/span&gt;
console.log&lt;span class="o"&gt;(&lt;/span&gt;Number&lt;span class="o"&gt;(&lt;/span&gt;str&lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // Output: 123
console.log&lt;span class="o"&gt;(&lt;/span&gt;parseInt&lt;span class="o"&gt;(&lt;/span&gt;str&lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // Output: 123
console.log&lt;span class="o"&gt;(&lt;/span&gt;String&lt;span class="o"&gt;(&lt;/span&gt;num&lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // Output: &lt;span class="s2"&gt;"123"&lt;/span&gt;
console.log&lt;span class="o"&gt;(&lt;/span&gt;num.toString&lt;span class="o"&gt;())&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // Output: &lt;span class="s2"&gt;"123"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  III. Lời kết
&lt;/h2&gt;

&lt;p&gt;Trong bài viết này, mình đã giới thiệu cho các bạn những điều cơ bản về cách làm việc với chuỗi trong JavaScript, từ việc tạo và hiển thị các ký tự chuỗi và các phương thức phổ biến khi làm việc với chuỗi trong JavaScript.&lt;br&gt;
Hy vọng bài viết trên có thể giúp đỡ các bạn trong việc hiểu thêm về JavaScript.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Tìm hiểu Object trong JavaScript</title>
      <dc:creator>Dương Thái</dc:creator>
      <pubDate>Fri, 27 Dec 2024 15:45:31 +0000</pubDate>
      <link>https://dev.to/duongthai/tim-hieu-object-trong-javascript-1be5</link>
      <guid>https://dev.to/duongthai/tim-hieu-object-trong-javascript-1be5</guid>
      <description>&lt;p&gt;Object là một phần quan trọng trong JavaScript, được sử dụng để lưu trữ và quản lý dữ liệu. Việc nắm vững cách hoạt động của Object sẽ giúp bạn viết code hiệu quả hơn. Vậy chúng ta hãy cùng tìm hiểu trong bsif viết này nhé!&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Khái niệm
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Object trong JavaScript là một cấu trúc dữ liệu dùng để lưu trữ các giá trị dưới dạng cặp key-value
Trong đó:
&lt;strong&gt;Key:&lt;/strong&gt; Là tên thuộc tính, thường là chuỗi hoặc ký hiệu.
&lt;strong&gt;Value:&lt;/strong&gt; Là dữ liệu được lưu trữ, có thể thuộc bất kỳ kiểu dữ liệu nào như số, chuỗi, mảng...&lt;/li&gt;
&lt;li&gt;Một object có thể bao gồm một hoặc nhiều thuộc tính (properties) và phương thức (methods).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  2. Đặc điểm cơ bản của Object:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Cấu trúc dạng key-value: Mỗi thuộc tính (property) của Object là một cặp key (tên thuộc tính) và value (giá trị).&lt;/li&gt;
&lt;li&gt;Động: Bạn có thể thêm, sửa đổi hoặc xóa các thuộc tính bất kỳ lúc nào.&lt;/li&gt;
&lt;li&gt;Linh hoạt: Các giá trị trong Object có thể là bất kỳ kiểu dữ liệu nào, bao gồm cả số, chuỗi, hàm, mảng hoặc thậm chí là một Object khác.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  3. Khởi tạo
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Sử dụng dấu ngoặc nhọn &lt;code&gt;{}&lt;/code&gt;: đây là cách khai báo phổ biến.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;const person &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
  name: &lt;span class="s2"&gt;"John"&lt;/span&gt;, // Thuộc tính name có giá trị &lt;span class="s2"&gt;"John"&lt;/span&gt;
  age: 30  // Thuộc tính age có giá trị 30
&lt;span class="o"&gt;}&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Sử dụng &lt;code&gt;Object()&lt;/code&gt; constructor
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;car &lt;span class="o"&gt;=&lt;/span&gt; new Object&lt;span class="o"&gt;()&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
car.brand &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"Toyota"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
car.model &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"Corolla"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Sử dụng &lt;code&gt;Object.create()&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;const animal &lt;span class="o"&gt;=&lt;/span&gt; Object.create&lt;span class="o"&gt;(&lt;/span&gt;null&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
animal.type &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"Dog"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
animal.sound &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"Bark"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Sử dụng class (ES6)
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;class Person &lt;span class="o"&gt;{&lt;/span&gt;
  constructor&lt;span class="o"&gt;(&lt;/span&gt;name, age&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    this.name &lt;span class="o"&gt;=&lt;/span&gt; name&lt;span class="p"&gt;;&lt;/span&gt;
    this.age &lt;span class="o"&gt;=&lt;/span&gt; age&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
const person &lt;span class="o"&gt;=&lt;/span&gt; new Person&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"Alice"&lt;/span&gt;, 25&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  4. Truy cập thuộc tính
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Dùng dấu chấm &lt;code&gt;.&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Dùng dấu ngoặc vuông &lt;code&gt;[]&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;const person &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
  name: &lt;span class="s2"&gt;"Alice"&lt;/span&gt;,
  age: 25,
&lt;span class="o"&gt;}&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
// Sử dụng dấu chấm
console.log&lt;span class="o"&gt;(&lt;/span&gt;person.name&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // &lt;span class="s2"&gt;"Alice"&lt;/span&gt;
console.log&lt;span class="o"&gt;(&lt;/span&gt;person.age&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  // 25

// Sử dụng dấu ngoặc vuông &lt;span class="o"&gt;(&lt;/span&gt;có thể sử dụng khi tên thuộc tính chứa ký tự đặc biệt hoặc biến&lt;span class="o"&gt;)&lt;/span&gt;
console.log&lt;span class="o"&gt;(&lt;/span&gt;person[&lt;span class="s2"&gt;"name"&lt;/span&gt;&lt;span class="o"&gt;])&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // &lt;span class="s2"&gt;"Alice"&lt;/span&gt;
console.log&lt;span class="o"&gt;(&lt;/span&gt;person[&lt;span class="s2"&gt;"age"&lt;/span&gt;&lt;span class="o"&gt;])&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  // 25
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  5. object Constructor
&lt;/h2&gt;

&lt;p&gt;Được hiểu là việc sử dụng một hàm constructor để tạo ra các đối tượng với cấu trúc và hành vi giống nhau. Cách sử dụng này cho phép bạn tái sử dụng mã và tạo ra các đối tượng với các thuộc tính và phương thức chung&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="k"&gt;function &lt;/span&gt;Person&lt;span class="o"&gt;(&lt;/span&gt;name, age&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    this.name &lt;span class="o"&gt;=&lt;/span&gt; name&lt;span class="p"&gt;;&lt;/span&gt;
    this.age &lt;span class="o"&gt;=&lt;/span&gt; age&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;

&lt;span class="nb"&gt;let &lt;/span&gt;person1 &lt;span class="o"&gt;=&lt;/span&gt; new Person&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"Alice"&lt;/span&gt;, 25&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nb"&gt;let &lt;/span&gt;person2 &lt;span class="o"&gt;=&lt;/span&gt; new Person&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"Bob"&lt;/span&gt;, 30&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

console.log&lt;span class="o"&gt;(&lt;/span&gt;person1&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // Person &lt;span class="o"&gt;{&lt;/span&gt; name: &lt;span class="s1"&gt;'Alice'&lt;/span&gt;, age: 25 &lt;span class="o"&gt;}&lt;/span&gt;
console.log&lt;span class="o"&gt;(&lt;/span&gt;person2&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // Person &lt;span class="o"&gt;{&lt;/span&gt; name: &lt;span class="s1"&gt;'Bob'&lt;/span&gt;, age: 30 &lt;span class="o"&gt;}&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Ưu điểm&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tái sử dụng mã&lt;/li&gt;
&lt;li&gt;Tạo đối tượng với cấu trúc xác định&lt;/li&gt;
&lt;li&gt;Quản lý đối tượng dễ dàng hơn&lt;/li&gt;
&lt;li&gt;Hỗ trợ kế thừa&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Nhược điểm&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cú pháp phức tạp hơn so với cách tạo đối tượng bằng dấu ngoặc nhọn &lt;code&gt;{}&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Không linh hoạt cho các đối tượng đơn giản&lt;/li&gt;
&lt;li&gt;Khó khăn trong việc kế thừa (đối với các hàm constructor truyền thống)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  6. Các thao tác với Object
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Thêm hoặc sửa thuộc tính:&lt;/strong&gt; Chỉ cần gán giá trị cho một key mới hoặc key đã tồn tại:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;person.city &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"New York"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // Thêm mới
person.age &lt;span class="o"&gt;=&lt;/span&gt; 35&lt;span class="p"&gt;;&lt;/span&gt;          // Sửa giá trị
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Xoá thuộc tính:&lt;/strong&gt; Dùng từ khoá &lt;code&gt;delete&lt;/code&gt;.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;delete person.age&lt;span class="p"&gt;;&lt;/span&gt;
console.log&lt;span class="o"&gt;(&lt;/span&gt;person&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // Thuộc tính &lt;span class="s2"&gt;"age"&lt;/span&gt; đã bị xoá
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Kiểm tra sự tồn tại của thuộc tính:&lt;/strong&gt; Sử dụng toán tử &lt;code&gt;in&lt;/code&gt; hoặc phương thức &lt;code&gt;hasOwnProperty()&lt;/code&gt;.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;const person &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
  name: &lt;span class="s2"&gt;"Alice"&lt;/span&gt;,
&lt;span class="o"&gt;}&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

// Toán tử &lt;span class="k"&gt;in
&lt;/span&gt;console.log&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"name"&lt;/span&gt; &lt;span class="k"&gt;in &lt;/span&gt;person&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  // &lt;span class="nb"&gt;true
&lt;/span&gt;console.log&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"address"&lt;/span&gt; &lt;span class="k"&gt;in &lt;/span&gt;person&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  // &lt;span class="nb"&gt;false&lt;/span&gt;

// hasOwnProperty&lt;span class="o"&gt;()&lt;/span&gt;
console.log&lt;span class="o"&gt;(&lt;/span&gt;person.hasOwnProperty&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"name"&lt;/span&gt;&lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // &lt;span class="nb"&gt;true
&lt;/span&gt;console.log&lt;span class="o"&gt;(&lt;/span&gt;person.hasOwnProperty&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"address"&lt;/span&gt;&lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; // &lt;span class="nb"&gt;false&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Duyệt qua Object:&lt;/strong&gt; dùng &lt;code&gt;for...in&lt;/code&gt; để duyệt qua các thuộc tính liệt kê được (enumerable properties) của một Object.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;const obj &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt; a: 1, b: 2, c: 3 &lt;span class="o"&gt;}&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;let &lt;/span&gt;key &lt;span class="k"&gt;in &lt;/span&gt;obj&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;obj.hasOwnProperty&lt;span class="o"&gt;(&lt;/span&gt;key&lt;span class="o"&gt;))&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt; // Đảm bảo chỉ lấy các thuộc tính của chính obj, không lấy từ prototype
        console.log&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;key&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;: &lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;obj&lt;/span&gt;&lt;span class="p"&gt;[key]&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Sao chép Object:&lt;/strong&gt;
- sử dụng vòng lặp:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;copy &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;{}&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;let &lt;/span&gt;key &lt;span class="k"&gt;in &lt;/span&gt;person&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
  copy[key] &lt;span class="o"&gt;=&lt;/span&gt; person[key]&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;- Sử dụng &lt;code&gt;Object.assign()&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;copy &lt;span class="o"&gt;=&lt;/span&gt; Object.assign&lt;span class="o"&gt;({}&lt;/span&gt;, person&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;- Sử dụng Spread Operator (...):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;let &lt;/span&gt;copy &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt; ...person &lt;span class="o"&gt;}&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  7. Tổng kết
&lt;/h3&gt;

&lt;p&gt;Trong bài viết này, mình đã giới thiệu với các bạn về Object và các hàm cách việc thông dụng với Object trong JavaScript,&lt;br&gt;&lt;br&gt;
Hy vọng bài viết này sẽ có thể giúp đỡ các bạn trong quá trình học và tìm hiểu về JavaScript.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
