✏️ Infinity

 

Infinity 전역 속성은 무한대를 나타내는 숫자 값입니다.

 

 
const maxNumber = Math.pow(10, 1000); // Max positive number

if (maxNumber === Infinity) {
  console.log('Let\'s call it Infinity!');
  // Expected output: "Let's call it Infinity!"
}

console.log(1 / maxNumber);
// Expected output: 0

 

 
console.log(Infinity);          /* Infinity */
console.log(Infinity + 1);      /* Infinity */
console.log(Math.pow(10,1000)); /* Infinity */
console.log(Math.log(0));       /* -Infinity */
console.log(1 / Infinity);      /* 0 */
console.log(1 / 0);             /* Infinity */

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Infinity

 

Infinity - JavaScript | MDN

Infinity 전역 속성은 무한대를 나타내는 숫자 값입니다.

developer.mozilla.org


✏️ isFinite()

 

isFinite() 전역 함수는 주어진 값이 유한수인지 판별합니다. 필요한 경우 매개변수를 먼저 숫자로 변환합니다.

 

 

구문

   isFinite(testValue)

 

매개변수

testValue

유한한지 판별할 값.

반환 값

testValue가 양 또는 음의 Infinity, NaN, 또는 undefinedfalse, 아니면 true.

설명

isFinite()은 최상위 함수로 어떤 객체와도 연결되지 않았습니다.

숫자가 유한수인지 판별하기 위해 isFinite()을 사용할 수 있습니다. isFinite()은 주어진 수를 검사해 그 값이 NaN, 양의 무한대, 또는 음의 무한대이면 false를 반환합니다. 그렇지 않으면 true를 반환합니다.

예제

isFinite() 사용하기

 

isFinite(Infinity);  // false
isFinite(NaN);       // false
isFinite(-Infinity); // false

isFinite(0);         // true
isFinite(2e64);      // true
isFinite(910);       // true

isFinite(null);      // true, would've been false with the
                    // more robust Number.isFinite(null)

isFinite('0');       // true, would've been false with the
                    // more robust Number.isFinite("0")

 

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/isFinite

 

isFinite() - JavaScript | MDN

isFinite() 전역 함수는 주어진 값이 유한수인지 판별합니다. 필요한 경우 매개변수를 먼저 숫자로 변환합니다.

developer.mozilla.org

 

'IT > JavaScript' 카테고리의 다른 글

[JS] ✏️ NaN (Not a Number) / isNaN()  (0) 2023.07.17
[JS] ✏️ Nullish (??)  (0) 2023.07.17
[JS] ✏️ Logical AND(&&) & OR( | | )  (0) 2023.07.17
[JS] ✏️ Truthy && Falsey  (0) 2023.07.17
[JS] ✏️ eval(), JSON.parse(), JSON.stringify()  (0) 2023.07.17

✏️ NaN (Not a Number)

 

전역 NaN 속성은 Not-A-Number(숫자가 아님)를 나타냅니다.

 

function sanitise(x) {
  if (isNaN(x)) {
    return NaN;
  }
  return x;
}

console.log(sanitise('1'));
// Expected output: "1"

console.log(sanitise('NotANumber'));
// Expected output: NaN

NaN을 반환하는 연산에는 다섯 가지 종류가 있습니다.

 

  • 숫자로 변환 실패 (예시: parseInt("blabla"), Number(undefined)와 같은 명시적인 것 또는 Math.abs(undefined)와 같은 암시적인 것)

 

  • 결과가 허수인 수학 계산식 (예시: Math.sqrt(-1))

 

  • 정의할 수 없는 계산식 (예시: 0 * Infinity, 1 ** Infinity, Infinity / Infinity, Infinity - Infinity)

 

  • 피연산자가 NaN이거나 NaN으로 강제 변환되는 메서드 또는 표현식 (예시: 7 ** NaN, 7 * "blabla") - 이것은 NaN이 전염성 있다는 것을 의미합니다.

 

  • 유효하지 않은 값이 숫자로 표시되는 기타 경우 (예시: 잘못된 날짜 new Date("blabla").getTime(), "".charCodeAt(1))

 

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/NaN

 

NaN - JavaScript | MDN

전역 NaN 속성은 Not-A-Number(숫자가 아님)를 나타냅니다.

developer.mozilla.org

 


✏️ isNaN()

 

NaN은 “==”, “!=” 연산자로 판별할 수 없다.값이 NaN인지 확인하려면, Number.isNaN() 또는 isNaN()를 사용하여 값이 NaN인지 여부를 확인 할 수 있습니다. 또는 NaN은 자신과 같지 않다고 비교되는 유일한 값이므로 x !== x와 같은 자체 비교를 수행할 수 있습니다.

 

 
NaN === NaN;        // false
Number.NaN === NaN; // false
isNaN(NaN);         // true
isNaN(Number.NaN);  // true

function valueIsNaN(v) {
  return v !== v;
}
valueIsNaN(1);          // false
valueIsNaN(NaN);        // true
valueIsNaN(Number.NaN); // true

 

그러나 isNaN()Number.isNaN()의 차이를 유의해야 합니다. isNaN은 현재 값이 NaN이거나, 숫자로 변환했을 때 NaN이 되면 참을 반환하지만, Number.isNaN은 현재 값이 NaN이어야만 참을 반환합니다.

 

 
isNaN('hello world'); // true
Number.isNaN('hello world'); // false



같은 이유로 BigInt 값을 사용하면 Number.isNaN()이 아닌 isNaN()에서 오류가 발생합니다.

 

 
isNaN(1n); // TypeError: Conversion from 'BigInt' to 'number' is not allowed.
Number.isNaN(1n); // false

 

또한 일부 배열 메서드는 NaN을 찾을 수 없는 반면에 다른 배열 메서드들은 찾을 수 있습니다. 즉, (indexOf(), lastIndexOf())는 NaN을 찾을 수 없지만, includes()는 값을 찾을 수 있습니다.

 

 
const arr = [2, 4, NaN, 12];
arr.indexOf(NaN); // -1
arr.includes(NaN); // true

// 적절하게 정의된 조건자를 허용하는 메서드는 항상 NaN을 찾을 수 있습니다.
arr.findIndex((n) => Number.isNaN(n)); // 2

 

 

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/isNaN

 

isNaN() - JavaScript | MDN

isNaN() 함수는 어떤 값이 NaN인지 판별합니다. isNaN 함수는 몇몇 혼란스러운 케이스을 가지고 있으므로, ECMAScript 2015에서 추가한 Number.isNaN()으로 바꾸는 편이 좋을 수도 있습니다.

developer.mozilla.org

 

'IT > JavaScript' 카테고리의 다른 글

[JS] ✏️ Infinity / ifFinite()  (0) 2023.07.17
[JS] ✏️ Nullish (??)  (0) 2023.07.17
[JS] ✏️ Logical AND(&&) & OR( | | )  (0) 2023.07.17
[JS] ✏️ Truthy && Falsey  (0) 2023.07.17
[JS] ✏️ eval(), JSON.parse(), JSON.stringify()  (0) 2023.07.17

✏️ nullish


The nullish coalescing (??) operator is a logical operator that returns its right-hand side operand when its left-hand side operand is null or undefined, and otherwise returns its left-hand side operand.

 

var kor = null ?? 10;//null 로만 한정해서 기본값을 만들고 싶을 때
var kor = false ?? 10;
var kor = false || 10;// falsy를 기반으로 기본값을 만들고 싶을 때
console.log(kor);



https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/Nullish_coalescing

 

Nullish coalescing operator - JavaScript | MDN

널 병합 연산자 (??) 는 왼쪽 피연산자가 null 또는 undefined일 때 오른쪽 피연산자를 반환하고, 그렇지 않으면 왼쪽 피연산자를 반환하는 논리 연산자이다.

developer.mozilla.org

 

🟩 논리적 AND(&&)


논리적 AND (&&)은 피연산자를 왼쪽에서 오른쪽으로 평가하면서 첫 거짓 같은 피연산자를 만나면 즉시 그 값을 반환합니다. 만약 모든 값이 참 같은 값이라면 마지막 피연산자의 값이 반환됩니다.
만약 어떤 값이 true로 변환 가능하다면 그 값은 소위 참 같은 값(truthy)이라 합니다. 만약 어떤 값이 false로 변환 가능하다면 그 값은 소위 거짓 같은 값(falsy) 이라고 합니다.

 

result = '' && 'foo';  // result 에 ""(빈 문자열)이 할당됩니다
result = 2 && 0;       // result 에 0 이 할당됩니다
result = 'foo' && 4;   // result 에 4 가 할당됩니다.

 

a1 = true && true // t && t returns true
a2 = true && false // t && f returns false
a3 = false && true // f && t returns false
a4 = false && (3 === 4) // f && f returns false
a5 = 'Cat' && 'Dog' // t && t returns "Dog"
a6 = false && 'Cat' // f && t returns false
a7 = 'Cat' && false // t && f returns false
a8 = '' && false // f && f returns ""
a9 = false && '' // f && f returns false




https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/Logical_AND

 

논리적 AND (&&) - JavaScript | MDN

논리적 AND (&&) (논리적 연결) 연산자는 모든 불리언 피연산자가 true가 되었을 때 해당 피연산자의 집합은true가 됩니다.

developer.mozilla.org


🟩 논리적 OR(||)

 

If x can be converted to true, returns x; else, returns y.

If a value can be converted to true, the value is so-called truthy. If a value can be converted to false, the value is so-called falsy.

 

 
true || true; // t || t returns true
false || true; // f || t returns true
true || false; // t || f returns true
false || 3 === 4; // f || f returns false
"Cat" || "Dog"; // t || t returns "Cat"
false || "Cat"; // f || t returns "Cat"
"Cat" || false; // t || f returns "Cat"
"" || false; // f || f returns false
false || ""; // f || f returns ""
false || varObject; // f || object returns varObject

 

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_OR

 

Logical OR (||) - JavaScript | MDN

The logical OR (||) (logical disjunction) operator for a set of operands is true if and only if one or more of its operands is true. It is typically used with boolean (logical) values. When it is, it returns a Boolean value. However, the || operator actual

developer.mozilla.org


✏️ or and를 같이 쓸 때 우선순위는?

 

"&&" >> "||"   

 

“&&”   - > 이놈이 더 우선순위 높음

 

 
true || false && false; // returns true, because && is executed first
(true || false) && false; // returns false, because grouping has the highest precedence

 

'IT > JavaScript' 카테고리의 다른 글

[JS] ✏️ Infinity / ifFinite()  (0) 2023.07.17
[JS] ✏️ NaN (Not a Number) / isNaN()  (0) 2023.07.17
[JS] ✏️ Nullish (??)  (0) 2023.07.17
[JS] ✏️ Truthy && Falsey  (0) 2023.07.17
[JS] ✏️ eval(), JSON.parse(), JSON.stringify()  (0) 2023.07.17

✏️ Truthy && Falsey


🟩 Truthy

 

JavaScript에서, 참 같은 값(Truthy)인 값이란 Boolean을 기대하는 문맥에서 true로 평가되는 값입니다. 따로 거짓 같은 값으로 정의된 값이 아니면 모두 참 같은 값으로 평가됩니다. (예: false, 0, -0, 0n, "", null, undefinedNaN 등)

   

    if (true)
    if ({})
    if ([])
    if (42)
    if ("0")
    if ("false")
    if (new Date())
    if (-42)
    if (12n)
    if (3.14)
    if (-3.14)
    if (Infinity)
    if (-Infinity)
 

 

https://developer.mozilla.org/ko/docs/Glossary/Truthy

 

참 같은 값 - MDN Web Docs 용어 사전: 웹 용어 정의 | MDN

JavaScript에서, 참 같은 값(Truthy)인 값이란 불리언을 기대하는 문맥에서 true로 평가되는 값입니다. 따로 거짓 같은 값으로 정의된 값이 아니면 모두 참 같은 값으로 평가됩니다. (예: false, 0, -0, 0n, "

developer.mozilla.org


🟩 Falsey

거짓 같은 값(Falsy, falsey로 쓰이기도 함) 값은 Boolean 문맥에서 false로 평가되는 값입니다.

JavaScript조건절 (en-US), 반복문 (en-US) 등 불리언 값이 필요한 곳에서 형 변환을 이용해 특정 값을 불리언 값으로 변환합니다.

다음은 8가지 거짓 같은 값들입니다:

false 키워드 false
0 숫자 zero
-0 음수 zero
0n BigInt. 불리언으로 사용될 경우, 숫자와 같은 규칙을 따름. 0n은 거짓 같은 값.
"" string
null null - 아무런 값도 없음
undefined undefined - 원시값
NaN (en-US) NaN - 숫자가 아님

https://developer.mozilla.org/ko/docs/Glossary/Falsy

 

 

거짓같은 값 - MDN Web Docs 용어 사전: 웹 용어 정의 | MDN

거짓 같은 값(Falsy, falsey로 쓰이기도 함) 값은 불리언 문맥에서 false로 평가되는 값입니다.

developer.mozilla.org


 

✏️ eval()

var code = "var x=30;";

    eval(code);

    console.log(code);

 

eval()의 인자는 문자열 입니다. 문자열 안에 연산식을 코드로 실행한다. (해킹의 위혐이 있으니 사용하지 말것)

 

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/eval

 

eval() - JavaScript | MDN

**eval()**은 문자로 표현된 JavaScript 코드를 실행하는 함수입니다.

developer.mozilla.org


✏️ JSON.parse()

JSON 문자열의 구문을 분석하고, 그 결과에서 JavaScript 값이나 객체를 생성합니다.

var str = '{"id":1, "username":"newlec", "password":"111"}';
var member = JSON.parse(str);//JSON.parse(str);
console.log(member.username);

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse

 

JSON.parse() - JavaScript | MDN

JSON.parse() 메서드는 JSON 문자열의 구문을 분석하고, 그 결과에서 JavaScript 값이나 객체를 생성합니다. 선택적으로, reviver 함수를 인수로 전달할 경우, 결과를 반환하기 전에 변형할 수 있습니다.

developer.mozilla.org


✏️ JSON.stringify() ⭐️중요~!

 

JSON.stringify() 메서드는 JavaScript 값이나 객체를 JSON 문자열로 변환합니다. 선택적으로, replacer를 함수로 전달할 경우 변환 전 값을 변형할 수 있고, 배열로 전달할 경우 지정한 속성만 결과에 포함합니다.

 

var member = { id: 1, username: "dragon", password: 111 };

var json = JSON.stringify(member);//JSON.stringify(member); -> 문자열로 자동으로 변환해줌

console.log(json);


https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify

 

JSON.stringify() - JavaScript | MDN

JSON.stringify() 메서드는 JavaScript 값이나 객체를 JSON 문자열로 변환합니다. 선택적으로, replacer를 함수로 전달할 경우 변환 전 값을 변형할 수 있고, 배열로 전달할 경우 지정한 속성만 결과에 포함

developer.mozilla.org


 

'IT > JavaScript' 카테고리의 다른 글

[JS] ✏️ Infinity / ifFinite()  (0) 2023.07.17
[JS] ✏️ NaN (Not a Number) / isNaN()  (0) 2023.07.17
[JS] ✏️ Nullish (??)  (0) 2023.07.17
[JS] ✏️ Logical AND(&&) & OR( | | )  (0) 2023.07.17
[JS] ✏️ Truthy && Falsey  (0) 2023.07.17

+ Recent posts