현재 위치: > 최신 기사 목록> JavaScript에서 Hexdec과 Parseint의 차이점은 무엇입니까?

JavaScript에서 Hexdec과 Parseint의 차이점은 무엇입니까?

gitbox 2025-05-29

육각형 문자열을 10 진수 정수로 변환하는 과정에서 PHP와 JavaScript는 자체 표준 기능을 제공합니다 : hexdec () 는 php 및 parseint ()가 JavaScript의 parseint ()를 제공합니다. 그들의 기본 기능은 비슷하지만 특정 구현 및 경계 행동에는 주목할만한 차이가 있으며,이 기사에서는 비교 및 ​​설명 될 것입니다.

1. 기본 사용량 비교

PHP의 HEXDEC 기능

Hexdec ()은 육각 문자열을 10 진수 정수로 변환하는 데 사용되며 구문은 매우 간단합니다.

 <?php
echo hexdec("1A"); // 산출 26
?>

이 함수에 대한 입력은 합법적 인 16 진수 문자열 ( 0x 접두사를 포함 할 수 있음)이며, 반환 값은 범위를 벗어난 경우 정수 또는 부동 소수점 번호입니다.

JavaScript의 parseint 기능

JavaScript의 parseint ()는 보다 일반적이며 임의의 문자열을 구문 분석 할 수 있으며 구문은 다음과 같습니다.

 console.log(parseInt("1A", 16)); // 산출 26

두 번째 매개 변수는 이것이 16 진 문자열임을 나타 내기 위해 명시 적으로 지정되어야합니다. Radix가 지정되지 않은 경우 Parseint는 문자열 형식 (오류를 유발할 수 있음)을 기반으로 바이너리를 자동으로 결정하려고합니다.

2. 불법적 인물의 차이를 처리하십시오

불법적 인 캐릭터를 만나면이 두 기능의 처리 동작에는 상당한 차이가 있습니다.

PHP의 Hexdec

 <?php
echo hexdec("1A*F"); // 산출 26
?>

문자열의 시작 부분에서 PHP의 hexdec ()가 구문 분석합니다. 불법적 인 캐릭터 ( * 등)가 발생하면 처리를 중지하지만 오류를보고하지는 않지만 지금까지 성공적으로 구문 분석 된 값을 반환합니다.

JavaScript의 parseint

 console.log(parseInt("1A*F", 16)); // 산출 26

JavaScript는 PHP와 유사하게 동작하며 첫 번째 불법 캐릭터가 발생하면 중지되고 이전에 성공한 부분을 반환합니다.

두 사람은 이와 관련하여 일관되게 행동하며 예외를 던지지 않지만 PHP는 다음과 같은 오류에 대한 허용 오차가 약간 더 높습니다.

 <?php
echo hexdec("GHI"); // 산출 0
?>

그리고 JavaScript에서 :

 console.log(parseInt("GHI", 16)); // 산출 NaN

PHP는 0을 반환하고 JavaScript는 NAN을 반환하여 논리적 판단의 차이를 초래할 수 있습니다.

3. 사례 민감도

PHP와 JavaScript는 16 진 문자를 다룰 때 사례에 민감합니다.

 <?php
echo hexdec("1a"); // 산출 26
?>
 console.log(parseInt("1a", 16)); // 산출 26

이는 언어에 걸쳐 개발할 때 일관성을 제공하며 추가 변환이 필요하지 않습니다.

4. 수치 범위 및 오버플로 처리

매우 큰 16 진수 문자열을 통과 할 때 두 언어는 다르게 처리합니다.

PHP에서 :

 <?php
echo hexdec("FFFFFFFFFFFFFFFF"); // 산출 1.84467440737096E+19(부동 소수점 번호)
?>

JavaScript :

 console.log(parseInt("FFFFFFFFFFFFFFFF", 16)); // 산출 18446744073709552000(Number,정확도는 손실 될 수 있습니다)

JavaScript의 parseint 결과는 여전히 숫자 유형 (이중 정밀 부동 소수점 번호)이지만 값이 매우 큰 경우 정확도 손실 문제에 직면하게됩니다. PHP는 정수 범위 외부에있을 때 자동으로 플로트로 변환되며, 이는 부정확 할 수도 있지만 동작은 예상됩니다.

5. 빈 줄과 비 숫자 문자열의 처리

 <?php
echo hexdec(""); // 산출 0
echo hexdec("xyz"); // 산출 0
?>
 console.log(parseInt("", 16)); // 산출 NaN
console.log(parseInt("xyz", 16)); // 산출 NaN

이것은 PHP와 JavaScript의 큰 차이점입니다. PHP는 더 견딜 수 있고 빈 문자열도 0 으로 간주되는 반면 JavaScript는 더 엄격하고 NAN을 반환합니다.

6. URL 매개 변수의 응용 시나리오

16 진수가 색상 또는 해시 매개 변수를 나타내는 일부 시나리오에서는 다음 URL 예와 같이 이러한 매개 변수를 처리를 위해 정수로 구문 분석해야 할 수도 있습니다.

 <?php
$hex = $_GET['value'] ?? '1F';
$decimal = hexdec($hex);
echo "Decimal value: $decimal";
?>

URL이있을 때 :

 https://gitbox.net/color.php?value=FF

JavaScript의 유사한 처리 방법은 다음과 같습니다.

 const urlParams = new URLSearchParams(window.location.search);
const hex = urlParams.get('value') || "1F";
const decimal = parseInt(hex, 16);
console.log("Decimal value:", decimal);

7. 요약

특성 PHP HEXDEC JS Parseint
불법 캐릭터 처리 구문 분석 값의 일부를 반환합니다 부분적으로 구문 분석 된 값 또는 NAN을 반환합니다
빈 문자열 처리 0으로 돌아갑니다 Nan으로 돌아갑니다
정확도와 범위 많은 숫자를 지원하지만 float로 변환합니다 정확도가 손실 될 수 있습니다
케이스 감도 무감각합니다 무감각합니다
지정된 이진이 필요합니다 아니요 예 (권장)

HexDECParseInt는 모두 16 진수의 기본 작업을 소수점으로 완료 할 수 있지만 경계 입력, 유형 호환성 및 오류 허용 오차에 차이가 있습니다. 이러한 차이를 이해하는 것은 교차 시스템 개발, 사용자 입력 처리 및 데이터를 디버깅하는 데 중요합니다.