오늘의 JavaScript 칼럼에서는 변수가 숫자인지 확인하는 방법을 보여줍니다.
다들 이력서에 쓸 프로젝트가 없다고 해서 프로젝트 찾도록 도와드렸어요.
JavaScript는 동적으로 유형이 지정되는 언어입니다. 즉, 인터프리터가 런타임 시 변수의 유형을 결정합니다. 실제로 이를 통해 동일한 변수를 사용하여 동일한 코드에 다양한 유형의 데이터를 저장할 수도 있습니다. 문서화와 일관성이 없으면 코드 작업 시 변수 유형을 항상 알 수 없습니다.
변수가 숫자일 것으로 예상하는 경우 문자열이나 배열에 대한 연산은 코드에서 이상한 결과를 초래할 수 있습니다. 이번 글에서는 변수가 숫자인지 판단하는 몇 가지 함수를 소개하겠습니다."10"
과 같은 숫자 문자열은 허용되지 않습니다. JavaScript에서는 NaN
, Infinity
및 -Infinity
와 같은 특수 값도 숫자 유형입니다. "10"
之类的数字的字符串不应被接受。 在JavaScript中,诸如NaN
,Infinity
和-Infinity
之类的特殊值也是数字类型的。
根据这些要求,最好使用的函数是内置Number
对象中的isFinite()
函数。但是,开发人员通常会使用其他函数,如Number.isNaN()
和typeof()
函数。
我们先创建一些变量:
let intVar = 2; let floatVar = 10.5; let stringVar = '4'; let nanVar = NaN; let infinityVar = Infinity; let nullVar = null; let undefinedVar = undefined;复制代码
Number.isFinite()
函数检查变量是否为数字,还检查其是否为有限值。 因此,对于NaN
,Infinity
或-Infinity
的数字,它返回false
。
我们用上面定义的变量来检验一下:
> Number.isFinite(intVar); true > Number.isFinite(floatVar); true > Number.isFinite(stringVar); false > Number.isFinite(nanVar); false > Number.isFinite(infinityVar); false > Number.isFinite(nullVar); false > Number.isFinite(undefined); false复制代码
这正是我们想要的。特殊的非有限数以及非数字类型的任何变量都会被忽略。所以,如果你想检查一个变量是否是一个数字,最好的方法是使用Number.isFinite()
函数。
标准Number
对象有一个isNaN()
方法。它接受一个参数,并确定其值是否为NaN
。因为我们想检查一个变量是否是一个数字,所以我们将在检查中使用非操作符!
。
> !Number.isNaN(intVar); true > !Number.isNaN(floatVar); true > !Number.isNaN(stringVar); true # Wrong > !Number.isNaN(nanVar); false > !Number.isNaN(infinityVar); true # Wrong > !Number.isNaN(nullVar); true # Wrong > !Number.isNaN(undefinedVar); true # Wrong复制代码
这个方法是相当宽松的,因为它接受根本不是数字的值。这种方法最适合于当你知道你有一个数字并且要检查它是否是一个NaN
值时,而不是一般的数字检查。
typeof()
函数是一个全局函数,它接受变量或值作为参数,并返回其类型的字符串表示。JavaScript 总共有9
种类型
object
)为了验证变量是否为数字,我们只需要检查typeof()
返回的值是否为`"number"。 让我们尝试一下测试变量:
> typeof(intVar) == 'number'; true > typeof(floatVar) == 'number'; true > typeof(stringVar) == 'number'; false > typeof(nanVar) == 'number'; true # Wrong > typeof(infinityVar) == 'number'; true # Wrong > typeof(nullVar) == 'number'; false > typeof(undefined) == 'number'; false复制代码
typeof()
函数的性能比Number.isNaN()
要好得多。它正确地确定了字符串变量null
和undefined
不是数字。但是,对于NaN
和Infinity
,它返回true
。
尽管从技术上来说这是正确的结果,但NaN
和Infinity
是特殊的数字值,对于大多数使用情况,我们宁愿忽略它们。
在本文中,我们学习了如何检查JavaScript中的变量是否为数字。 Number.isNaN()函数仅在我们知道变量为数字并且需要验证它是否为
NaN`时才适用。
如果代码中有NaN
,Infinity
或-Infinity
以及其他数字,则 typeof()`函数适用。
Number.isFinite()
이러한 요구 사항에 따라 사용하기에 가장 좋은 기능은 내장 Number
개체의 isFinite()
함수입니다. 그러나 개발자는 Number.isNaN()
및 typeof()
함수와 같은 다른 함수를 사용하는 경우가 많습니다.
rrreee
Number.isFinite()
함수를 사용하여 변수가 는 숫자이고 유한값인지도 확인합니다. 따라서🎜NaN
,Infinity
또는-Infinity
의 숫자에 대해서는false
를 반환합니다.위에 정의된 변수를 사용하여 확인해 보겠습니다. rrreee이것이 바로 우리가 원하는 것입니다. 특수한 유한하지 않은 숫자와 숫자가 아닌 유형의 변수는 무시됩니다. 따라서 변수가 숫자인지 확인하려면
Number.isFinite()
함수를 사용하는 것이 가장 좋습니다.Number.isNaN() 메서드를 사용하세요.
표준Number
객체에는isNaN()
메서드가 있습니다. 매개변수를 승인하고 해당 값이NaN
인지 확인합니다. 변수가 숫자인지 확인하고 싶기 때문에 검사 시 비연산자!
를 사용하겠습니다. rrreee이 방법은 숫자가 전혀 아닌 값을 허용하므로 상당히 관대합니다. 이 방법은 일반적인 숫자 확인보다는 숫자가 있다는 것을 알고 그 값이NaN
값인지 확인하려는 경우에 가장 적합합니다.typeof() 메소드 사용
typeof()
함수는 변수나 값을 매개변수로 받아들이고 그 문자를 반환하는 전역 함수입니다. 유형 문자열 표현. JavaScript에는 총 9
유형🎜객체
를 표시함)typeof()
에서 반환된 값이 `"인지 확인하면 됩니다. 숫자". 테스트 변수를 사용하여 시도해 보겠습니다. 🎜rrreee🎜 typeof()
함수는 Number.isNaN()
보다 성능이 훨씬 좋습니다. 문자열 변수 null
및 undefine
이 숫자가 아닌지 올바르게 결정합니다. 그러나 NaN
및 Infinity
의 경우 true
를 반환합니다. 🎜🎜기술적으로는 올바른 결과이지만 NaN
및 Infinity
는 특수 숫자 값이므로 대부분의 사용 사례에서는 이를 무시하는 것이 좋습니다. 🎜함수는 변수가 숫자이고
NaN`인지 확인해야 하는 경우에만 적용 가능합니다. 🎜🎜코드에 NaN
, Infinity
또는 -Infinity
및 기타 숫자가 있는 경우 typeof()` 함수를 적용할 수 있습니다. 🎜🎜Number.isFinite()
메서드는 모든 유한수를 캡처하며 우리 요구 사항에 가장 적합합니다. 🎜🎜🎜🎜코드가 배포된 후에는 실시간으로 가능한 버그를 알 수 없습니다. 이러한 버그를 나중에 해결하기 위해 로그 디버깅에 많은 시간을 소비했습니다. 그런데, Fundebug를 추천하고 싶습니다. 유용한 BUG 모니터링 도구입니다. 🎜🎜🎜🎜🎜관련 무료 학습 권장 사항: 🎜🎜🎜javascript🎜🎜🎜(동영상) 🎜🎜🎜위 내용은 JavaScript에서 변수가 숫자인지 확인의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!