Chuỗi trong javascript
Chào các bạn
Trong bài viết này mình sẽ nói về chuỗi String trong javascript
Cú pháp
Để khai báo một chuỗi string trong javscript chúng ta có 3 cách. Cách nào đễ sử dụng thì cũng tùy thuộc vào tình huống của các bạn
Chuỗi với dấu nháy kép
1 let str = "Chỗi với dấu nháy kép";
Chuỗi với dấu nháy đơn
1 let str = 'Chỗi với dấu nháy đơn';
Chuỗi với dấu backticks
1 let str = `Chỗi với dấu backticks`;
Dấu nháy đơn '' với dấu nháy kép "" thì giống nhau. Trong các ngôn ngữ khác như C thì dấu nháy đơn là một ký tự char. Nhưng trong javascript thì không phải vậy. Dấu nháy đơn '' với dấu nháy "" đều giống nhau đều đại diện cho một chuỗi string.
Nhưng chuỗi backticks thì lại khác. Chúng ta có thể nhúng một biểu thức tính toán vào đó. Để nhúng một biểu thức tính toán vào chuỗi backticks chúng ta dùng cú pháp ${biểu thức cần nhúng}.
1let backticks = `1 cộng 1 bằng ${1 + 1}`; 2 3console.log(backticks); // 1 cộng 1 bằng 2
Hoặc chúng ta cũng có thể nhúng cuộc gọi hàm vào chuỗi backticks
1let backticks = `Tên của bạn là: ${prompt("Nhập tên của bạn")}`; 2 3console.log(backticks); // Tên của bạn là: Hồ quang trí
Khi chạy chức năng prompt và hiện lên thông báo Nhập tên của bạn. Giả sử mình nhập tên Hồ quang trí vào thì bây giờ chuổi backticks có giá trị là Tên của bạn là: Hồ quang trí. Tiếp đến log ra bản điều khiển.
Chúng ta có thể nhúng chuỗi backticks trên nhiều dòng.
1 let backticks = `a 2 b 3 c`; 4 5 console.log(backticks); // a\nb\nc 6 7 console.log(backticks.match(/\n/g).length); // 2
Nhưng với dấu nháy kép "" hay nháy đơn '' thì lỗi
1 let backticks = 'a // Uncaught SyntaxError: Invalid or unexpected token 2 b 3 c'; 4 5 console.log(backticks); 6 7 console.log(backticks.match(/\n/g).length);
Trong chuỗi string có rất rất nhiều ký tự đặt biệt
Và còn rất rất là nhiều ký tự đặt biệt khác nữa. Các bạn có thể xem thêm về nó tại đây Ký tự đặt biệt
Length
Để xác định độ dài một chuỗi string chúng ta dùng tài sản length
1let name = "Hồ Quang Trí"; 2 3console.log(name.length); // 12
Trong ngôn ngữ khác như c thì dùng phương pháp length() nhưng trong javascript không phải vậy length. Trong javascript length không có dấu ngoặc đơn ().
Các bạn cũng có thể viết một phương pháp tìm độ dài của chuỗi. Cũng đơn giản lắm.
1let name = "Hồ Quang Trí"; 2 3function myLength (str) { 4 let length = 0; 5 6 for(let i = 0; i < str.length; i++ ){ 7 length ++; 8 } 9 10 return length; 11} 12console.log(myLength(name)); // 12 13 14// Cuộc gọi myLength(name);
Hoặc chúng ta thêm vào nguyên mẫu của String.prototype
1let name = "Hồ Quang Trí"; 2 3function myLength (str) { 4 let length = 0; 5 6 for(let i = 0; i < str.length; i++ ){ 7 length ++; 8 } 9 10 return length; 11} 12 13Object.defineProperty(String.prototype, "myLength", { 14 get() { 15 return myLength(this); 16 } 17}) 18console.log(name.myLength); // 12 19 20// Cuộc gọi name.myLength
Các bạn nhìn trên sẽ thấy 2 cuộc gọi nó khác nhau nhé. Lên cao hơn mình sẽ nói về cái này. Trước mắt các bạn cứ biết vậy đã.
Truy cập ký tự trong chuỗi string
Để truy cập một ký tự bất kỳ trong chuỗi string chúng ta dùng cú pháp [position], position ở đây là vị trí ký tự bạn muốn lấy.
1let name = "Hồ Quang Trí"; 2 3let kyTu = name[3]; 4console.log(kyTu); // Q
Nếu vị trí chuỗi không có ký tự nào thì undefined được trả lại
1let name = "Hồ Quang Trí"; 2 3let kyTu = name[24]; 4console.log(kyTu); // undefined
Ngoài ra còn có phương pháp charAt(position).
1let name = "Hồ Quang Trí"; 2 3let kyTu = name.charAt(3); 4console.log(kyTu); // Q
Nếu vị trí chuỗi không có ký tự nào thì chuỗi rỗng "" được trả lại
1let name = "Hồ Quang Trí"; 2 3let kyTu = name.charAt(34); 4console.log(kyTu); // ""
Lặp chuỗi string
Để lặp chuỗi chúng ta có thể dùng vòng lặp for
1let name = "Hồ Quang Trí"; 2 3for(let i = 0; i < name.length; i++) { 4 console.log(name[i]); // H, ồ, , Q, u, a, n, g, t, h, , T, r, í 5}
Hoặc vòng lặp for of
1let name = "Hồ Quang Trí"; 2 3for(let v of name) { 4 console.log(v); // H, ồ, , Q, u, a, n, g, t, h, , T, r, í 5}
Nối chuỗi
Để nối một chuỗi chúng ta dùng toán tử cộng +
1let fristName = "Hồ" 2let lastName = " Quang Trí"; 3let fullName = fristName + lastName; 4 5console.log(fullName); // Hồ Quang Trí
Chúng ta không thể thay đổi chuỗi bằng cách gán như thế này. Chuỗi ở đây sẽ không có gì thay đổi.
1let name = "Hồ Quang Trí"; 2 3name[3] = "H"; 4 5console.log(name); // Hồ Quang Trí
Nếu chúng ta dùng chế độ nghiêm ngặt use strict thì lỗi sẽ văng ra.
1"use strict"; 2 3let name = "Hồ Quang Trí"; 4 5name[3] = "H"; // Uncaught TypeError: Cannot assign to read only property '3' of string 'Hồ Quang Trí' 6 7console.log(name);
Để thay đổi chuỗi chúng ta có nhiều cách. Dùng phương pháp replace.
1let name = "Hồ Quang Trí"; 2 3name = name.replace('Q', 'H'); // Phương pháp thay thế 4 5console.log(name);
Lưu Ý: Chuỗi chỉ có thể thay thế bằng chuỗi mới khác. Chứ không thể thay đổi được. Không giống như mảng array
Ngoài ra còn có rất rất là nhiều phương pháp làm việc với chuỗi. Đến bài nào đó mình sẽ nói hết.
Tổng kết
Trong bài này mình đã nói về chuỗi String trong javascript.
Các bạn có thể tìm hiểu thêm về nó tại đây String
- string
- chuỗi
- Number
- String
Các bài viết liên quan
this trong javascript
Trong javascript this luôn luôn đại diện cho một đối tượng trước dấu chấm .Javascriptnew function trong javascript
Tạo mới đối tượng bằng từ khóa new theo chức năng ta định nghĩaJavascriptSymbol trong javascript
symbol là một đối tượng một nhà xây dựng trả về một giá trị nguyên thủy.JavascriptChuyển đổi đối tượng thành nguyên thủy trong javascript
Cùng nhau tìm hiểu ký hiệu chuyển đổi Symbol.toPrimitiveJavascript