Cú pháp JavaScript parsInt: ví dụ về cách sử dụng. Chức năng giải thích nghiêm ngặt hơn

Chức năng phân tích cú phápInt() lấy một chuỗi làm đối số và trả về một số nguyên theo cơ số đã chỉ định.

Cú pháp

phân tích cú phápInt( sợi dây, cơ số);

Tùy chọn

string Giá trị cần được diễn giải. Nếu giá trị của tham số chuỗi không phải là loại chuỗi thì nó sẽ được chuyển đổi thành một loại (sử dụng thao tác trừu tượng ToString). Khoảng trắng ở đầu dòng không được tính. cơ số Một số nguyên trong khoảng từ 2 đến 36 đại diện cho cơ số của hệ thống số dây miêu tả trên. Hầu hết người dùng sử dụng hệ thống số thập phân và chỉ ra 10. Luôn chỉ định tham số nàyđể loại bỏ lỗi đọc và đảm bảo thực hiện chính xác và kết quả có thể dự đoán được. Khi cơ số không được chỉ định, các cách triển khai khác nhau có thể trả về các kết quả khác nhau.

Giá trị trả về

Một số nguyên thu được bằng cách phân tích cú pháp (phân tích cú pháp và diễn giải) chuỗi đã truyền. Nếu ký tự đầu tiên không thể chuyển đổi thành số thì trả về NaN.

Sự miêu tả

Hàm phân tích cú pháp Int chuyển đổi đối số đầu tiên được truyền cho nó thành kiểu chuỗi, diễn giải nó và trả về một số nguyên hoặc giá trị NaN. Kết quả (nếu không phải NaN) là một số nguyên và là đối số đầu tiên (chuỗi), được coi là một số trong hệ thống quy định ký hiệu (cơ số). Ví dụ: cơ số 10 biểu thị sự chuyển đổi từ số thập phân, 8 từ số bát phân, 16 từ số thập lục phân, v.v. Nếu cơ số lớn hơn 10 thì các chữ cái được dùng để biểu thị các số lớn hơn 9. Ví dụ, đối với số thập lục phân(cơ sở 16) các chữ cái từ A đến F được sử dụng.

Nếu hàm parsInt gặp một ký tự không phải là số trong hệ thống số đã chỉ định, thì nó sẽ bỏ qua ký tự đó và tất cả các ký tự tiếp theo (ngay cả khi chúng hợp lệ) và trả về một số nguyên được chuyển đổi từ phần chuỗi trước ký tự đó. ParseInt cắt bỏ phần phân số của một số. Cho phép có khoảng trắng ở đầu và cuối dòng.

Vì một số số bao gồm ký tự e trong biểu diễn chuỗi của chúng (ví dụ: 6.022e23), thì việc sử dụng ParseInt để cắt bớt các giá trị số có thể cho kết quả bất ngờ, khi sử dụng số lượng rất nhỏ hoặc rất lớn. Không nên sử dụngparseInt để thay thế cho Math.floor() .

Nếu cơ số không được xác định hoặc 0 (hoặc không được chỉ định), thì JavaScript sẽ giả định như sau theo mặc định:

  • Nếu giá trị của tham số đầu vào chuỗi bắt đầu bằng "0x" hoặc "0X", cơ số là 16 và phần còn lại của chuỗi sẽ được diễn giải.
  • Nếu giá trị của tham số đầu vào chuỗi bắt đầu bằng "0", thì cơ số là 8 hoặc 10, tùy thuộc vào cách triển khai cụ thể. Đặc tả ECMAScript 5 chỉ định việc sử dụng 10 (thập phân), nhưng điều này chưa được tất cả các trình duyệt hỗ trợ, vì vậy cần thiết luôn chỉ định cơ số khi sử dụng hàmphân tích cú phápInt.
  • Nếu giá trị của tham số đầu vào chuỗi bắt đầu bằng bất kỳ ký tự nào khác thì hệ thống số được coi là thập phân (cơ số 10).

Nếu ký tự đầu tiên của chuỗi không thể chuyển đổi thành số, thì parsInt trả về NaN.

Từ quan điểm toán học, giá trị NaN không phải là một số trong bất kỳ hệ thống số nào. Để xác định xem parsInt có trả về kết quả là NaN hay không, bạn có thể gọi hàm isNaN. Nếu NaN tham gia vào các phép tính toán học, kết quả cũng sẽ là NaN .

Để chuyển đổi một số thành một chuỗi theo cơ số được chỉ định, hãy sử dụng intValue.toString(radix) .

Ví dụ

Ví dụ: Sử dụng phân tích cú pháp

15 :

ParseInt(" 0xF", 16); ParseInt("F", 16); ParseInt("17", 8); phân tích cú phápInt(021, 8); ParseInt("015", 10); //parseInt(015, 10); sẽ trả về 15 parsInt(15,99, 10); ParseInt("FXX123", 16); ParseInt("1111", 2); ParseInt("15*3", 10); ParseInt("15e2", 10); ParseInt("15px", 10); ParseInt("12", 13);

Tất cả các ví dụ sau đều trả về NaN:

ParseInt("Xin chào", 8); // Không phải là số parsInt("546", 2); // Số không hợp lệ trong hệ thống nhị phân tính toán chết

Tất cả các ví dụ sau đều trả về -15 :

ParseInt("-F", 16); ParseInt("-0F", 16); ParseInt("-0XF", 16); ParseInt(-15.1, 10) ParseInt("-17", 8); ParseInt("-15", 10); ParseInt("-1111", 2); ParseInt("-15e1", 10); ParseInt("-12", 13);

Tất cả các ví dụ sau đều trả về 4 :

phân tích cú phápInt(4.7, 10); phân tích cú phápInt(4.7 * 1e22, 10); // Rất số lượng lớn trở thành 4 phân tích cú phápInt (0,00000000000434, 10); // Số rất nhỏ trở thành 4

Ví dụ sau trả về 224 :

ParseInt("0e0", 16);

Giải thích bát phân mà không chỉ định hệ thống số

Mặc dù không được khuyến khích trong đặc tả ECMAScript 3 và bị cấm trong ECMAScript 5, nhưng nhiều cách triển khai diễn giải chuỗi số bắt đầu bằng 0 là số bát phân. Ví dụ sau có thể có kết quả là số bát phân hoặc số thập phân. Để tránh kết quả không mong muốn, hãy luôn chỉ định cơ số.

ParseInt("0e0"); // 0 parsingInt("08"); // 0, "8" không phải là chữ số trong hệ bát phân.

ECMAScript 5 loại bỏ việc giải thích bát phân

Đặc tả ECMAScript 5 không còn cho phép phân tích cú pháp xử lý các chuỗi bắt đầu bằng 0 trong hệ bát phân. ECMAScript 5 tuyên bố:

Hàm ParseInt tạo ra một giá trị số nguyên bằng cách diễn giải nội dung của đối số chuỗi theo cơ số đã chỉ định. Khoảng trống ở đầu dòng bị bỏ qua. Nếu cơ số không được chỉ định hoặc bằng 0 thì giả định là 10, ngoại trừ khi chuỗi bắt đầu bằng cặp ký tự 0x hoặc 0X: thì cơ số được giả định là 16. Nếu cơ số được chỉ định là 16, số cũng có thể bắt đầu bằng cặp ký tự 0x hoặc 0X.

Đây là điểm khác biệt của ECMAScript 5 với đặc tả ECMAScript 3, vốn không được khuyến khích nhưng không cấm việc diễn giải bát phân.

Vì tính đến năm 2013, hành vi được mô tả ở trên không được triển khai trong tất cả các triển khai và cần hỗ trợ cho các trình duyệt cũ hơn, Luôn chỉ ra cơ số của hệ thống số.

Chức năng giải thích nghiêm ngặt hơn

Đôi khi cần có một cách diễn giải các giá trị số nguyên chặt chẽ hơn. Biểu thức thông thường có thể giúp với điều này:

Var filterInt = function (giá trị) ( if (/^(\-|\+)?(+|Infinity)$/.test(value)) return Number(value); return NaN; ) console.log(filterInt ("421")); // 421 console.log(filterInt("-421")); // -421 console.log(filterInt("+421")); // 421 console.log(filterInt("Infinity")); // Infinity console.log(filterInt("421e+0")); // NaN console.log(filterInt("421hop")); // NaN console.log(filterInt("hop1.61803398875")); // NaN console.log(filterInt("1.61803398875")); // NaN

Sự chỉ rõ

Sự chỉ rõ Trạng thái Một lời bình luận
ECMAScript Phiên bản đầu tiên (ECMA-262) Tiêu chuẩn Định nghĩa ban đầu.
ECMAScript 5.1 (ECMA-262)
Tiêu chuẩn
ECMAScript 2015 (Phiên bản thứ 6, ECMA-262)
Định nghĩa của "parseInt" có trong thông số kỹ thuật này.
Tiêu chuẩn
Bản nháp mới nhất của ECMAScript (ECMA-262)
Định nghĩa của "parseInt" có trong thông số kỹ thuật này.
Bản nháp

Hỗ trợ trình duyệt

Bảng tương thích trên trang này được tạo từ dữ liệu có cấu trúc. Nếu bạn muốn đóng góp vào dữ liệu, vui lòng Thủ tục thanh toán https://github.com/mdn/browser-compat-data và gửi cho chúng tôi yêu cầu kéo.

Cập nhật dữ liệu tương thích trên GitHub

Máy tínhĐiện thoại di độngMáy chủ
Trình duyệt ChromeBờ rìaFirefoxtrình duyệt web IEOperaCuộc đi sănChế độ xem web trên AndroidChrome dành cho AndroidCạnh di độngFirefox dành cho AndroidOpera cho AndroidSafari trên iOSInternet SamsungNode.js
Hỗ trợ cơ bảnTrình duyệt Chrome Hỗ trợ đầy đủ ĐúngBờ rìa Hỗ trợ đầy đủĐúngFirefox Hỗ trợ đầy đủ 1 I E. Hỗ trợ đầy đủĐúngOpera Hỗ trợ đầy đủĐúngCuộc đi săn Hỗ trợ đầy đủĐúngWebXem Android Hỗ trợ đầy đủĐúngChrome Android Hỗ trợ đầy đủĐúngCạnh di động Hỗ trợ đầy đủĐúngFirefox Android Hỗ trợ đầy đủ 4 Opera Android Hỗ trợ đầy đủĐúngSafari iOS Hỗ trợ đầy đủĐúngSamsung Internet Android Hỗ trợ đầy đủĐúngnútjs Hỗ trợ đầy đủĐúng
Phân tích cú pháp các chuỗi số 0 đứng đầu là số thập phân, không phải số bát phânTrình duyệt Chrome Hỗ trợ đầy đủ 23 Bờ rìa Hỗ trợ đầy đủĐúngFirefox Hỗ trợ đầy đủ 21 I E. Hỗ trợ đầy đủ 9 Opera Hỗ trợ đầy đủĐúngCuộc đi săn Hỗ trợ đầy đủ 6 WebXem Android Hỗ trợ đầy đủ 4.4 Chrome Android Hỗ trợ đầy đủĐúngCạnh di động Hỗ trợ đầy đủĐúngFirefox Android Hỗ trợ đầy đủ 21 Opera Android Hỗ trợ đầy đủĐúngSafari iOS Hỗ trợ đầy đủ 6 Samsung Internet Android Hỗ trợ đầy đủĐúngnútjs Hỗ trợ đầy đủĐúng

Nhận biết một số trong một chuỗi và chắc chắn rằng thuật toán đang sử dụng giá trị của một biến có kiểu là số là cần thiết trong hầu hết mọi thuật toán. Phương thức ParsInt của JavaScript giải quyết vấn đề này và cho phép bạn nhận dạng các giá trị số trong hệ thống phổ biếnĐang tính toán.

Cú pháp phương thức ParseInt

Phương thức này có hai tham số, tham số thứ hai là tùy chọn. Kết quả của công việc luôn là một con số. Nếu tham số đầu tiên (chuỗi) không chứa ký tự hệ thống số ở đầu thì kết quả sẽ là NaN.

Đến những con số hệ thập lục phân Các số bao gồm các chữ cái: "a", "b", "c", "d", "e" và "f". Dấu hiệu số bát phân là số "0" đứng đầu và cặp số thập lục phân đứng đầu là "0x". Nhưng việc chuyển đổi không phải lúc nào cũng được thực hiện chính xác, mặc dù nó được biểu thị chính xác về mặt cú pháp.

Hàm phân tích số là một thao tác phổ biến. Chớm ban đầu trường hợp đơn giản Phương thức và lời nhắc parsInt của JavaScript cho phép bạn lọc đầu vào có giá trị số chính xác để đưa ra quyết định nhanh chóng.

Ghi chú. Hàm Promt() nhập nội dung khách truy cập đã nhập vào trường nhập chứ không phải “kết quả” của nút Ok hoặc Cancel. Chính vì thế để có được giá trị nhanh chóng bạn có thể theo dõi nội dung đầu vào của khách truy cập một cách nhanh chóng và chấp nhận giải pháp đúng.

Sử dụng phương thức parsInt

Lập trình Internet có những đặc thù riêng và có ảnh hưởng mạnh mẽ đến các ý tưởng lập trình nói chung. Hợp nhất dữ liệu nhỏ thành một "từ" có dung lượng lớn là một tham số có phẩm chất chính là:

  • sự nhỏ gọn;
  • nhận biết nhanh chóng.

Trong nhiều trường hợp, những “người hâm mộ” lớn nhất của yếu tố CSS và HTML này bắt đầu viết một số, và sau đó ngay lập tức, không có dấu cách, đơn vị đo lường hoặc dấu chấm câu. Nói cách khác, hãy soạn các chuỗi ký hiệu chặt chẽ.

Các biểu thức thông thường nói chung, đối với những người chưa quen với những bí ẩn của phân tích cú pháp, là mã Morse, trong đó một mớ các dấu chấm và dấu gạch ngang được “chia” thành hầu hết các ký tự của bộ tám bit truyền thống. Hơn nữa, mọi thứ không có trong phần hiển thị của bảng ký hiệu đều có thể được viết dễ dàng bằng mã, tức là số và chữ cái - đây là phương thức JavaScript ParsInt.

Nhiều thông số của một số Tính năng CSS không cho phép khoảng trắng và chỉ hoạt động khi chúng được viết theo một tiêu chuẩn chính xác.

Ngôn ngữ XML, với tất cả tính mở của nó, không cho phép tự do khi mã hóa thông tin tham số.

Ví dụ về nhu cầu phân tích cú pháp thông tin số Có rất nhiều thứ có thể được trích dẫn bên ngoài JavaScript, nhưng điều đó không thành vấn đề. Nghĩa Phương thức JavaScript ParseInt phụ thuộc vào vai trò của thông tin số và cách nó được thể hiện trong nhiều ứng dụng khác nhau.

Ý nghĩa phân tích số

Phân tích thông tin là một thủ tục mang tính biểu tượng, nhưng việc lập trình ngày nay vẫn là quá trình xử lý thông tin số giống như cách đây ba thập kỷ. Trước đây không có JavaScript & ParseInt. Nhưng chính từ kinh nghiệm trong quá khứ mà kiến ​​thức về xử lý thông tin số đã hình thành, tiềm năng cho biểu thức chính quy và những ý tưởng tương tự khác.

TRONG Thời kỳ nhất định thời gian, các ngôn ngữ lập trình đã "tự do" trong từ khóa, “mở khóa” bảng chữ cái Cyrillic và cho phép nhà phát triển xử lý dữ liệu được chính thức hóa yếu. Nhưng khoảng thời gian này rất ngắn và với sự quan tâm ngày càng tăng đối với lập trình hướng đối tượng, một “lỗ đen” đã hình thành trong thời gian đó:

  • làm thế nào để làm;
  • phải làm gì.

Ngôn ngữ lập trình hiện đại nói chung (mặc dù ý nghĩa Ngôn ngữ JavaScript nói chung khó đánh giá) buộc phải tách công cụ lao động ra khỏi chủ thể của công việc. Công cụ phải chính xác và nhanh chóng, chủ đề của tác phẩm có thể lớn như mong muốn và thực tế không bị chính thức hóa. Nhưng kết quả của chương trình trở nên có ý nghĩa hơn theo từng thời điểm.

Phát triển các đối tượng mà không có JavaScript ParsInt là một sự lãng phí không đáng có về công sức, thời gian và mã. Các phương thức của đối tượng phải hoạt động giống như kim đồng hồ, nhanh chóng và chính xác. Nhưng đối tượng cho hoạt động của đối tượng là thông tin, kết quả hoạt động của đối tượng cũng là thông tin. Và những gì chúng tôi muốn nói đến đối tượng ở đây không nhất thiết phải là khái niệm về JavaScript, PHP hay Python... - đây là những biến thể và kiểu mã hóa riêng của các đối tượng thực.

Hàm ParseInt được thiết kế để chuyển đổi một chuỗi thành số trong JavaScript. Phương thức này lấy một giá trị chuỗi làm đối số và chuyển đổi nó thành một số không có vị trí thập phân hoặc tạo ra giá trị NaN. ParseInt nhận hai đối số. Tham số thứ hai chỉ định hệ thống số sẽ được sử dụng khi chuyển đổi giá trị chuỗi thành số.

Một ví dụ đơn giản sử dụng ký hiệu thập phân trông như thế này:

var x = "1"; console.log(x, typeof x); //1 dòng x = ParseInt(x, 10); console.log(x, typeof x); // 1 số Mã mẫu trực tuyến

Nếu không có đối số nào được truyền cho giá trị hệ thống số thì giá trị mặc định sẽ được sử dụng ( hệ thập phân cơ bản). Bạn cũng có thể đặt giá trị thành 2 để yêu cầu hàm sử dụng ký hiệu nhị phân. Giá trị 8 yêu cầu ParseInt sử dụng hệ bát phân và giá trị 16 yêu cầu ParseInt sử dụng hệ thập lục phân. Đối với các hệ thống số có cơ số lớn hơn 10, các chữ cái trong bảng chữ cái được sử dụng thay cho các số lớn hơn 9.

Trước khi bạn chuyển đổi một chuỗi thành một số trong JavaScript, hãy xem một ví dụ chuyển đổi Số nhị phânđến một số nguyên trong hệ thống thập phân phép tính:

var x = 10; x = parsingInt(x, 2); console.log(x); //2 Mã mẫu trực tuyến

Biến x nhận giá trị 10. Trong hệ nhị phân giá trị là 10 ( tức là “một, không”) tương đương với 2 ở dạng thập phân. Chúng tôi đã chuyển ParseInt 10 cho hàm và chỉ định nhị phân làm hệ thống số. Hàm trả về giá trị 2, là số nguyên tương đương với "một, không".

Điều gì xảy ra nếu chúng ta chuyển ParseInt cho hàm số thập phân với một hoặc nhiều chữ số thập phân? Chúng ta hãy xem:

var x = 3,14; x = ParseInt(x, 10); console.log(x); //3 Mã mẫu trực tuyến

Hàm ParseInt được chấp nhận giá trị số với số thập phân và đưa nó về số nguyên. Nhưng nếu bạn cần chuyển đổi một chuỗi thành số trong JavaScript thì sao? Đây là một ví dụ:

var x = "Thế giới Hola!"; x = ParseInt(x, 10); console.log(x); //NaN ...hoặc không phải là số Mã mẫu trực tuyến

Nếu ParseInt được truyền vào một đối số không thể dễ dàng chuyển đổi thành giá trị số thì giá trị trả về sẽ là NaN (hoặc không phải là số). Nếu một hàm được truyền kết hợp các giá trị chuỗi số và chữ cái, nó sẽ chuyển đổi các ký tự số thành số nguyên và loại bỏ phần còn lại:

var x = "123UnoDosTres";

Khám phá các khóa học JavaScript

x = ParseInt(x, 10); console.log(x); //123 Mã mẫu trực tuyến

Đây là những nguyên tắc cơ bản khi sử dụng hàm ParseInt. Cần nhớ rằng mục đích chính của ParseInt là dịch JavaScript một chuỗi thành một số ( không có chữ số thập phân). Bạn cũng có thể chỉ định hệ thống số sẽ sử dụng. Nếu một hàm được truyền một giá trị không thể chuyển đổi thành số thì ParseInt sẽ trả về NaN.

Thông tin thêm về Các hàm JavaScript ParseInt có thể được tìm thấy ở đây

Dịch bài viết" Sử dụng phương pháp ParseInt của JavaScript"được chuẩn bị bởi nhóm dự án thân thiện.

Tốt xấu