💯 String 💯

Chuỗi trong javascript

Class String được sử dụng để đại diện và thao tác một chuỗi các ký tự.
js_masterJavascript
javascript-lap-trinh.jpg

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

  1. Chuỗi với dấu nháy kép

    1 let str = "Chỗi với dấu nháy kép";
  2. Chuỗi với dấu nháy đơn

    1 let str = 'Chỗi với dấu nháy đơn';
  3. 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

Ký tựMô tả
\nDòng mới
\'Dấu nháy đơn
\"Dấu nháy kép
\tTab
......

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

OFFJS.COM - Blog học tập giải trí - 🐲

Chia sẻ nhiều kiến thức thú vị trong lập trình cũng như cuộc sống.

Giới thiệu


Trang web này mình sẽ nói về kiến thức lập trình và cuộc sống mà các bạn mới học hay đang dự định học. Có một bước đi đầu đời vững chắc.

Hồ Quang Trí.jpg

Đi kèm với đó là những lý thuyết và các dòng code minh họa. Để các bạn dễ hình dung.

Đơn nhiên cũng không dễ dàng ngày một ngày hai mà học hết được.

Học Tập Là Một Con Đường Dài Vô Tận

Nó sẽ nuốt các bạn vô số thời gian nhưng bù lại khi đã biết thì mọi thứ thật là tuyệt.

1console.log("Hồ Quang Trí");

Nếu có ai nói bạn học lập trình trong vòng 3 đến 6 tháng thì mình xin nói thật không bao giờ có chuyện đó nhé.

Chúc các bạn thành công.

Chân trang

phone-toan-phat.png

0353210168

address-toan-phat.png

Việt Nam