HomeLập trìnhJavaScriptChuỗi thành số...

Chuỗi thành số trong JavaScript – Chuyển chuỗi thành số nguyên trong JS


Khi lập trình, bạn thường cần chuyển đổi giữa các loại dữ liệu. Ví dụ: bạn có thể cần chuyển đổi một chuỗi thành một số.

Khả năng chuyển đổi loại dữ liệu này sang loại dữ liệu khác giúp bạn linh hoạt hơn khi làm việc với thông tin.

JavaScript có các phương thức tích hợp sẵn khác nhau để chuyển đổi hoặc truyền một chuỗi thành một số.

Trong bài viết này, bạn sẽ tìm hiểu một số phương thức JavaScript tích hợp sẵn có để chuyển đổi chuỗi thành số, cùng với phần giới thiệu (hoặc ôn lại!) về kiến ​​thức cơ bản về cách hoạt động của chuỗi và số trong JavaScript.

Đây là những gì chúng tôi sẽ đề cập:

  1. Chuỗi trong JavaScript là gì?
  2. Một số trong JavaScript là gì?
  3. Làm cách nào để kiểm tra kiểu dữ liệu của một giá trị trong JavaScript?
  4. Cách chuyển đổi một chuỗi thành một số bằng cách sử dụng parseInt() chức năng
  5. Cách chuyển đổi một chuỗi thành một số bằng cách sử dụng parseFloat() chức năng
  6. Cách chuyển đổi một chuỗi thành một số bằng cách sử dụng Number() chức năng
  7. Cách chuyển đổi một chuỗi thành một số bằng cách sử dụng Math chức năng
  8. Cách chuyển đổi một chuỗi thành một số bằng cách nhân và chia 1
  9. Cách chuyển đổi một chuỗi thành một số bằng cách sử dụng Unary + nhà điều hành

Chuỗi trong JavaScript là gì?

Chuỗi là một cách giao tiếp hiệu quả thông qua văn bản, chẳng hạn như lưu trữ và thao tác văn bản. Chúng là một trong những kiểu dữ liệu cơ bản nhất trong tất cả các ngôn ngữ lập trình.

Các chuỗi trong JavaScript là một kiểu dữ liệu nguyên thủy. Điều này có nghĩa là chúng được tích hợp vào ngôn ngữ theo mặc định.

Chuỗi là một chuỗi có thứ tự gồm 0 hoặc nhiều giá trị ký tự. Cụ thể, đó là một chuỗi gồm một hoặc nhiều ký tự có thể là chữ cái, số hoặc ký hiệu (chẳng hạn như dấu chấm câu).

Nói chung, bạn có thể biết liệu một giá trị dữ liệu có phải là một chuỗi hay không nếu giá trị đó được đặt trong dấu ngoặc kép, chẳng hạn như dấu ngoặc đơn hoặc dấu ngoặc kép.

Cụ thể, có ba cách bạn có thể tạo một chuỗi trong JavaScript:

  • Bằng cách sử dụng dấu nháy đơn.
  • Bằng cách sử dụng dấu ngoặc kép.
  • Bằng cách sử dụng backticks.

Đây là cách tạo một chuỗi bằng dấu nháy đơn:

// string created using single quotes ('')
let favePhrase="Hello World!";

Đây là cách tạo một chuỗi bằng cách sử dụng dấu ngoặc kép:

// string created using double quotes ("")
let favePhrase = "Hello World!";

Và đây là cách tạo một chuỗi bằng backticks:

// string created using backticks (``)
let favePhrase = `Hello World!`;

Cách cuối cùng để tạo chuỗi trong JavaScript còn được gọi là mẫu chữ.

Các số cho phép bạn biểu diễn các giá trị số và thực hiện các phép toán cũng như phép tính.

Các số trong JavaScript là một kiểu dữ liệu nguyên thủy – giống như các chuỗi.

Không giống như các ngôn ngữ lập trình khác, bạn không cần chỉ định loại số bạn muốn tạo. Ví dụ: bạn không cần phải đề cập đến việc số đó sẽ là số nguyên hay số float.

Đọc thêm  Cách bắt đầu quốc tế hóa trong JavaScript

Trong JavaScript, có một số loại số khác nhau (cả dương và âm) được tích hợp trong ngôn ngữ:

  • số nguyên. Số nguyên là một giá trị số không bao gồm phần thập phân – còn được gọi là số tròn chục hoặc số nguyên.
  • Phao nổi. Số float là một số có phần thập phân và ít nhất một số sau dấu thập phân.
  • Số mũ là những số có thể là số nguyên hoặc số thực và được theo sau bởi một e. Các e biểu thị phép nhân một số với 10 nâng lên một sức mạnh nhất định.
  • Số nhị phân (còn được gọi là cơ số 2). Nhị phân là một hệ thống số chỉ bao gồm hai số: 1. Nó sử dụng 8 bit để biểu diễn một byte. Số bắt đầu bằng một Theo sau là một b theo sau là một số 8 bit.
  • Số bát phân (hay còn gọi là cơ số 8). Một số bát phân bắt đầu bằng một theo sau là các chữ số bát phân nằm trong khoảng từ 0 - 7.
  • Số thập lục phân (còn được gọi là cơ số 16). Một số thập lục phân bắt đầu bằng một theo sau bởi một trong hai x hoặc X. Sau đó, có thể có sự kết hợp của các chữ số thập lục phân từ 0 - 9 và các chữ cái khác nhau, từ A - F (hoặc a - f). Bức thư A - F được liên kết với các giá trị 10 -15.
// integer
let num = 47;

// float
let num = 47.32;

// exponential - to represent large numbers
let num = 477e2;  // equal to multiplying 477 to 10 to the power of 2 (or 100) which results in 47700

// exponential - to represent small numbers
let num = 477e-2;  // equal to dividing 477 to 10 to the power of 2 (or 100) which results in 4.77

// binary
let num = 0b1111;    // stands for 15

// octal
let num = 023; // stands for 19

// hexadecimal
let num = 0xFF; // stands for 255

Một điều cần lưu ý là những con số không nên được bao quanh bởi dấu ngoặc kép – điều đó sẽ tự động biến chúng thành một chuỗi.

// this is a string not a number!
let num = '7';

Làm cách nào để kiểm tra loại dữ liệu của một giá trị trong JavaScript?

Để tránh mắc lỗi và kiểm tra kỹ loại dữ liệu của một giá trị trong JavaScript, hãy sử dụng typeof nhà điều hành.

Trước đó tôi đã đề cập rằng các số được đặt trong dấu ngoặc kép là các chuỗi.

Bạn có thể tự kiểm tra điều đó bằng cách làm như sau:

let num = '7';
console.log(typeof num)

// string

Cách chuyển đổi một chuỗi thành một số bằng cách sử dụng parseInt() Chức năng

Cú pháp chung cho parseInt() chức năng như sau:

parseInt(string, radix)

Các parseInt() hàm nhận hai đối số: một chuỗi làm đối số thứ nhất và một cơ số làm đối số tùy chọn thứ hai.

Chuỗi là giá trị cần chuyển thành số.

Cơ số chỉ định hệ thống số toán học mà bạn muốn sử dụng và cơ số của số sẽ được trả về – cho dù số đó sẽ là cơ số 2 (hoặc nhị phân), cơ số 8 (hoặc bát phân), cơ số 10 (thập phân) hay cơ số 16 (hoặc thập lục phân) số.

Nếu cơ số không được bao gồm, thì nó là 10 (giá trị thập phân) theo mặc định.

let num = '7';

let strToNum = parseInt(num, 10);

console.log(strToNum);
console.log(typeof strToNum);

// 7
// number

Nếu chuỗi chứa chữ cái và số thì sao? Nó sẽ chỉ trả về các số từ chuỗi:

let num = '7 cats 7';

let strToNum = parseInt(num, 10);

console.log(strToNum);
console.log(typeof strToNum);

// 7
// number

Khi nào parseInt() gặp một ký tự không phải là số, nó sẽ bỏ qua nó và tất cả các ký tự xuất hiện sau đó, ngay cả khi có nhiều số hơn ở cuối dòng.

Một điều cần lưu ý là nếu chuỗi không không phải bắt đầu bằng một số, sau đó NaN (viết tắt của Not a Number) sẽ được trả về thay thế.

let num = 'h7';

let strToNum = parseInt(num, 10);

console.log(strToNum);

// NaN

Các parseInt() chức năng sẽ bắt đầu tại vị trí của chuỗi và xác định xem ký tự tại vị trí đó có thể được chuyển đổi thành số hay không. Nếu không thể, hàm trả về NaN thay vào đó, ngay cả khi chuỗi chứa số sau này.

Đọc thêm  Hướng dẫn JavaScript Array.find() – Cách lặp qua các phần tử trong một mảng

Nếu bạn có một chuỗi chứa dấu phẩy thì sao? Các parseInt() hàm sẽ làm tròn số đó và sẽ trả về một số nguyên:

let num = '7.77';

let strToNum = parseInt(num, 10);

console.log(strToNum);

// returns 7 instead of 7.77

Nếu trường hợp này xảy ra và bạn muốn thực hiện chuyển đổi theo nghĩa đen, cách tốt nhất là sử dụng parseFloat() chức năng thay thế.

Cách chuyển đổi một chuỗi thành một số bằng cách sử dụng parseFloat() Chức năng

Cú pháp chung cho parseFloat() chức năng như sau:

parseFloat(string)

Cú pháp và hành vi của parseFloat() chức năng tương tự như của parseInt() chức năng. Sự khác biệt chính là parseFloat() chỉ nhận một đối số và không chấp nhận cơ số làm đối số.

Các parseFloat() hàm chấp nhận một chuỗi làm đối số duy nhất của nó và trả về một số float – một số có dấu thập phân.

Sử dụng parseFloat() khi bạn muốn giữ lại phần thập phân chứ không chỉ phần nguyên của một số.

Lấy ví dụ tương tự từ phần trước, đây là cách bạn sẽ viết lại bằng cách sử dụng parseFloat():

let num = '7.77';

let strToNum = parseFloat(num);

console.log(strToNum);

// 7.77

Giống như parseInt()các parseFloat() hàm sẽ chỉ trả về số đầu tiên và bỏ qua mọi ký tự không phải số:

let num = '7.77 cats 7.77';

let strToNum = parseFloat(num);

console.log(strToNum);

// 7.77

Và cũng giống như parseInt() một lần nữa, nếu ký tự đầu tiên không phải là một số hợp lệ, parseFloat() chức năng sẽ trở lại NaN thay vì một số vì nó không thể chuyển đổi nó thành một số:

let num = 'h7.77';

let strToNum = parseFloat(num);

console.log(strToNum);

// NaN

Cú pháp chung cho Number() chức năng như sau:

Number(string)

Sự khác biệt giữa Number() chức năng và parseInt()parseFloat() chức năng là thực tế là Number() chức năng cố gắng chuyển đổi toàn bộ chuỗi thành một số cùng một lúc. Các phương thức phân tích cú pháp chuyển đổi một chuỗi thành một số theo từng phần và chúng di chuyển qua các ký tự tạo nên chuỗi riêng lẻ và từng ký tự một.

Hãy lấy ví dụ sau mà bạn đã thấy trước đó được sử dụng parseInt():

let num = '7 cats 7';

let strToNum = parseInt(num, 10);

console.log(strToNum);

// 7

phút mà parseInt() gặp một ký tự không phải là số, nó sẽ kết thúc quá trình chuyển đổi.

Đây là cách ví dụ tương tự hoạt động với Number() chức năng:

let num = '7 cats 7';

let strToNum = Number(num);

console.log(strToNum);

// NaN

Từ Number() cố gắng chuyển đổi và đánh máy toàn bộ chuỗi thành một số cùng một lúc, nó sẽ trả về NaN vì nó gặp các ký tự không phải là số và do đó không thể chuyển đổi thành số.

Các Number() là một lựa chọn tuyệt vời khi bạn muốn chuyển đổi không thành công nếu chuỗi chứa các ký tự không phải là số.

Một điều khác cần lưu ý là Number() hàm không trả về số nguyên khi gặp số thập phân, trái ngược với parseInt() chức năng bạn đã thấy trước đó.

let num = '7.77';

let strToNum = Number(num);

console.log(strToNum);

// 7.77

Cách chuyển đổi một chuỗi thành một số bằng cách sử dụng Math Chức năng

Các Math đối tượng là một đối tượng JavaScript được tích hợp sẵn. Và bạn có thể sử dụng một số phương pháp của nó, chẳng hạn như Math.round(),Math.floor()Math.ceil()để chuyển chuỗi thành số.

Một điều cần lưu ý và ghi nhớ khi sử dụng các phương thức Toán học để chuyển đổi kiểu là khi bạn đang làm việc với số float, chúng sẽ biến chúng thành một số nguyên và số float sẽ mất phần thập phân.

Đọc thêm  Lời hứa JavaScript – Giải thích về các phương thức Promise.then, Promise.Catch và Promise.Lastly

Các phương thức sẽ chuyển đổi chuỗi thành số nguyên tương đương gần nhất.

Các Math.round() hàm chuyển đổi một chuỗi thành một số và làm tròn nó thành số nguyên gần nhất:

let num = '7.5';

let strToNum = Math.round(num);

console.log(strToNum);

// 8

Nếu giá trị của num bằng 7.4tôi sẽ nhận được kết quả như sau:

let num = '7.4';

let strToNum = Math.round(num);

console.log(strToNum);

// 7

Nếu chuỗi chứa các ký tự không phải là số, Math.round() lợi nhuận NaN.

let num = '7.5a';

let strToNum = Math.round(num);

console.log(strToNum);

// NaN

Các Math.floor() hàm chuyển đổi một chuỗi thành một số và làm tròn nó xuống đến số nguyên gần nhất:

let num = '7.87';

let strToNum = Math.floor(num);

console.log(strToNum);

// 7

Nếu chuỗi chứa các ký tự không phải là số, Math.floor() lợi nhuận NaN. Cách thức hoạt động của hàm này là nó cố gắng chuyển đổi toàn bộ chuỗi thành một số và sau đó đánh giá kết quả, nghĩa là chuỗi phải là một chuỗi hợp lệ để nó hoạt động:

let num = '7.87a';

let strToNum = Math.floor(num);

console.log(strToNum);

// NaN

Các Math.ceil() chức năng ngược lại với Math.floor() vì nó chuyển đổi một chuỗi thành một số và làm tròn nó hướng lên đến số nguyên gần nhất:

let num = '7.87';

let strToNum = Math.ceil(num);

console.log(strToNum);

// 8

Tương tự như các ví dụ trước, các Math.ceil() chức năng sẽ trở lại NaN khi nó gặp một giá trị không phải là số trong chuỗi:

let num = '7.87a';

let strToNum = Math.ceil(num);

console.log(strToNum);

// NaN

Cách chuyển đổi một chuỗi thành một số bằng cách nhân và chia cho 1

nhân với 1 là một trong những cách nhanh nhất để chuyển đổi một chuỗi thành một số:

let convertStringToInt = "7" * 1;

console.log(convertStringToInt);
console.log(typeof convertStringToInt);

// 7
// number

Và nếu bạn muốn thực hiện chuyển đổi kiểu trên số float, hãy nhân với 1 bảo lưu vị trí thập phân:

let convertStringToInt = "7.1" * 1;

console.log(convertStringToInt);
console.log(typeof convertStringToInt);

// 7.1
// number

Nếu chuỗi chứa các ký tự không phải là số, nó sẽ trả về NaN:

let convertStringToInt = "7a" * 1;

console.log(convertStringToInt);

// NaN

Cách chuyển đổi chuỗi thành số nguyên này cũng hoạt động với việc chia chuỗi cho 1:

let convertStringToInt = "7" / 1

console.log(convertStringToInt);
console.log(typeof(convertStringToInt));

// 7
// number

Tại thời điểm này, điều đáng nói là điều gì sẽ xảy ra khi bạn cố gắng thêm 1 thành một chuỗi để chuyển đổi nó thành một số nguyên. Nếu bạn cố gắng làm điều đó, đây là kết quả bạn sẽ nhận được:

let convertStringToInt = "7" + 1;

console.log(convertStringToInt);
console.log(typeof convertStringToInt);

// 71
// string

Trong ví dụ trên, 1 được nối với chuỗi "7"nghĩa là nó được đặt cạnh chuỗi.

Cách chuyển đổi một chuỗi thành một số bằng cách sử dụng Unary + Nhà điều hành

Sử dụng đơn nguyên + toán tử cũng là một trong những cách nhanh nhất để chuyển đổi một chuỗi thành một số.

Bạn đặt toán tử cộng, +trước chuỗi và nó chuyển đổi chuỗi thành một số nguyên:

let convertStringToInt = +"7";

console.log(convertStringToInt);
console.log(typeof convertStringToInt);

// 7
// number

.. hoặc một số float:

let convertStringToInt = +"7.77";

console.log(convertStringToInt);

// 7.77

Tương tự như các cách khác mà bạn đã thấy để chuyển đổi một chuỗi thành một số, toàn bộ chuỗi chỉ được chứa các ký tự số đối với số đơn nguyên. + nhà điều hành để làm việc. Nếu chuỗi không đại diện cho một số, thì nó sẽ trả về NaN:

let convertStringToInt = +"7a";

console.log(convertStringToInt);

// NaN

Phần kết luận

Và bạn có nó rồi đấy! Bây giờ bạn đã biết một số cách để chuyển đổi chuỗi thành số trong JavaScript.

Để tìm hiểu thêm về JavaScript, hãy xem Chứng nhận cấu trúc dữ liệu và thuật toán JavaScript của freeCodeCamp.

Đó là một chương trình giảng dạy miễn phí, được cân nhắc kỹ lưỡng và có cấu trúc, nơi bạn sẽ học một cách tương tác. Cuối cùng, bạn cũng sẽ xây dựng 5 dự án để nhận chứng chỉ và củng cố kiến ​​thức của mình.

Cảm ơn vì đã đọc!



Zik.vn – Biên dịch & Biên soạn Lại

spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status