js의 6가지 일반적인 데이터 유형: 문자열 유형, Null 유형, 숫자 유형, 부울 유형 및 객체 유형.
1. 유형에 대한 참고사항
데이터 유형에 있어서 연산자 유형을 언급하는 것은 불가피합니다. 참고:
1. Typeof는 메서드가 아니라 연산자입니다. 객체의 데이터 유형을 얻기 위해 종종 typeof()를 사용하지만.
2. null의 typeof는 object이고(null은 빈 개체 참조이기 때문입니다), function의 typeof는 function
2. 다양한 데이터형의 객체변수에 대한 초기값을 설정합니다
Object 유형의 객체 변수가 처음에 무엇을 할당할지 모르는 경우 var 데모={}를 사용하지 말고 null로 설정하는 것이 가장 좋습니다.
var d4=0; //Number 유형의 초기값이 0으로 설정됩니다.
var d5=null; //초기 기본값이 설정됩니다. 객체 유형
3. undefine과 null의 차이점과 주의할 점
1. "=="를 사용하여 비교하면 비교 값이 동일하므로 같습니다2. 구별하는 방법은 두 가지가 있습니다. (핵심은 데이터 유형을 비교하는 것입니다.)
1) typeof를 사용하여 구분하세요
2) 일치하는 "===" 사용: 비교 대상은 값과 데이터 유형이며, 모두 동일한 경우에만 true를 반환합니다.
1. true와 1의 비교도 같고, false와 0의 비교도 같습니다("==" 비교입니다). 내부적으로 데이터형 변환을 구현해서 true를 1로 변환하기 때문입니다. false를 0으로 변환합니다.js 내부 모든 사람이 주의해야 하는 데이터 유형의 자동 변환이 많이 있습니다. 나중에 더 많은 내용이 언급될 것입니다. 그러나 "==="를 사용하는 것은 데이터 유형이 동일하지 않기 때문에 동일하지 않습니다.
2. Boolean() 메소드를 사용하여 변환을 표시합니다. 주목해야 할 것은 언제 true로 변환하고 언제 false로 변환하는지입니다.
1) 문자열 타입, 빈 문자열이 아닌 이상 true로 변환됩니다
2) 숫자형, 0이 아닌 이상 음수라도 true로 변환
3) 객체 유형은 null 유형이 아닌 한 true로 변환됩니다
4) 정의되지 않은 유형은 false로 변환됩니다
시연은 하지 않으니 직접 해보셔도 됩니다.
3. (***) if() 문 안의 ()는 부울 함수를 호출합니다
5. 숫자형 주의사항1. Float형은 정확한 계산을 할 수 없습니다
3. NaN(숫자가 아님)
1) var d=0/0; 참고: js에서는 오류가 보고되지 않지만 NaN
이 반환됩니다.2) Number.NaN을 통해 획득 가능
3) NaN과 모든 객체 간의 연산은 NaN을 반환합니다
4) isNaN()은 NaN인지 확인합니다
5) isNaN()의 내부 실행 원리: 객체에도 동일하게 적용됩니다. 구현 원칙: 총리는 객체의 valueOf() 메서드를 호출합니다. 숫자로 변환할 수 있으면 직접 판단하고, 그렇지 않으면 toString() 메서드를 다시 호출한 다음 반환 값을 테스트합니다. .
valueOf()는 내부적으로 toObject() 메소드를 호출합니다. 두 메소드의 내부 실행 원리는 다음과 같습니다.
코드 복사
Number()의 내부 구현 원리: isNaN()과 동일하며 valueOf()가 먼저 호출되고 그 다음 toString()이 호출됩니다. . 그래서 상대적으로 성능이 좋지 않다는 것을 짐작할 수 있습니다. . 따라서 변환할 객체가 문자열인 경우 내부적으로 유형을 판단할 필요가 없으므로parseInt() 또는parseFloat()를 호출하십시오.
코드 복사
코드 복사
1) (*중요*) ECMAScript에서 문자열은 변경할 수 없습니다. 문자열은 생성된 후에 변경되지 않습니다. 값이 할당된 문자열 변수를 변경하려면 먼저 변수의 문자열을 삭제한 다음 새 값이 포함된 문자열로 변수를 채웁니다.
코드 복사
내부 원칙: 먼저 toString()을 호출하고 문자열로 변환할 수 있으면 결과가 직접 반환됩니다. 아니요, 그런 다음 null인지 정의되지 않았는지 판단한 다음 'null' 또는 '정의되지 않음'을 반환합니다
요약: 변수가 null이거나 정의되지 않을 수 없다는 것을 알고 있다면 String()보다 성능이 뛰어난 toString()을 사용하세요. String()은 내부 판단을 해야 하기 때문에 성능에 해를 끼칠 수 있습니다.