> 웹 프론트엔드 > JS 튜토리얼 > 자바스크립트의 6가지 데이터 유형과 특별한 주의점_자바스크립트 능력에 대한 간략한 논의

자바스크립트의 6가지 데이터 유형과 특별한 주의점_자바스크립트 능력에 대한 간략한 논의

WBOY
풀어 주다: 2016-05-16 17:07:55
원래의
1128명이 탐색했습니다.

js의 6가지 일반적인 데이터 유형: 문자열 유형, Null 유형, 숫자 유형, 부울 유형 및 객체 유형.

1. 유형에 대한 참고사항

데이터 유형에 있어서 연산자 유형을 언급하는 것은 불가피합니다. 참고:

1. Typeof는 메서드가 아니라 연산자입니다. 객체의 데이터 유형을 얻기 위해 종종 typeof()를 사용하지만.

2. null의 typeof는 object이고(null은 빈 개체 참조이기 때문입니다), function의 typeof는 function

코드 복사 코드는 다음과 같습니다.

alert(typeof null) //Return object
function 데모(){
경고('demo');
}
alert(typeof 데모); //반환 함수

2. 다양한 데이터형의 객체변수에 대한 초기값을 설정합니다

Object 유형의 객체 변수가 처음에 무엇을 할당할지 모르는 경우 var 데모={}를 사용하지 말고 null로 설정하는 것이 가장 좋습니다.

코드 복사 코드는 다음과 같습니다.
var d2=null;
d2 ={' 키':"똥"};
var d3=''; //String default

var d4=0; //Number 유형의 초기값이 0으로 설정됩니다.
var d5=null; //초기 기본값이 설정됩니다. 객체 유형

3. undefine과 null의 차이점과 주의할 점

1. "=="를 사용하여 비교하면 비교 값이 동일하므로 같습니다

2. 구별하는 방법은 두 가지가 있습니다. (핵심은 데이터 유형을 비교하는 것입니다.)

1) typeof를 사용하여 구분하세요

2) 일치하는 "===" 사용: 비교 대상은 값과 데이터 유형이며, 모두 동일한 경우에만 true를 반환합니다.

코드 복사 코드는 다음과 같습니다.
alert(undefine == null) 🎜 >alert(정의되지 않은 유형 == null 유형); //false
alert(정의되지 않음 === null); //true


4. 불리언 관련 주의사항

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형은 정확한 계산을 할 수 없습니다

alert(0.1 0.2);//Return 0.300000000000000004


2. 과학적 표기법 계산 지원

3. NaN(숫자가 아님)

1) var d=0/0; 참고: js에서는 오류가 보고되지 않지만 NaN

이 반환됩니다.

2) Number.NaN을 통해 획득 가능

3) NaN과 모든 객체 간의 연산은 NaN을 반환합니다

4) isNaN()은 NaN인지 확인합니다

코드 복사 코드는 다음과 같습니다.

alert(isNaN(NaN));//true
alert(isNaN(12));//false
alert(isNaN('123'));//false: 때문에 문자 문자열 유형 숫자는 자동으로 숫자로 변환될 수 있습니다
alert(isNaN('lew'));//true
alert(isNaN(false));//(*)false: bool 값은 숫자로 변환, true는 1로 변경, false는 0으로 변경

5) isNaN()의 내부 실행 원리: 객체에도 동일하게 적용됩니다. 구현 원칙: 총리는 객체의 valueOf() 메서드를 호출합니다. 숫자로 변환할 수 있으면 직접 판단하고, 그렇지 않으면 toString() 메서드를 다시 호출한 다음 반환 값을 테스트합니다. .

valueOf()는 내부적으로 toObject() 메소드를 호출합니다. 두 메소드의 내부 실행 원리는 다음과 같습니다.

자바스크립트의 6가지 데이터 유형과 특별한 주의점_자바스크립트 능력에 대한 간략한 논의

코드 복사 코드는 다음과 같습니다.

var box={
// 상자 개체의 toString() 메서드 다시 작성
       toString:function(){
                                                                                                                                           toString() 메서드(상자);//123 내부적으로 Alert()는 먼저 개체의 valueOf()를 호출한 다음 toString() 메서드를 호출합니다.



6) 다른 데이터 유형을 숫자 유형으로 변환
세 가지 함수가 포함되어 있습니다. Number(): 모든 데이터 유형을 변환할 수 있습니다.

코드 복사

코드는 다음과 같습니다.alert(번호('123')) ;// 123alert(번호('0234'));//234
alert(번호(true));//1
alert(번호(null));//(** )0

//위를 제외한 나머지는 모두 NaN을 반환합니다
alert(Number(undefine))//NaN


Number()의 내부 구현 원리: isNaN()과 동일하며 valueOf()가 먼저 호출되고 그 다음 toString()이 호출됩니다. . 그래서 상대적으로 성능이 좋지 않다는 것을 짐작할 수 있습니다. . 따라서 변환할 객체가 문자열인 경우 내부적으로 유형을 판단할 필요가 없으므로parseInt() 또는parseFloat()를 호출하십시오.

parseInt() 및 parseFloat() 호출 참고: 숫자인 첫 번째 문자부터 시작하여 숫자인 첫 번째 문자 앞의 숫자로 끝나며, 문자열의 이 부분은 숫자로 변환됩니다.

코드 복사

코드는 다음과 같습니다.alert(parseInt('123leb')) ;// 123alert(parseInt('123leb345'));//123
alert(parseInt('len234'));//NaN



parseInt()의 매개변수가 float 유형인 경우 숫자의 정수 부분만 가져옵니다

코드 복사

코드는 다음과 같습니다.alert(parseInt(56.12));/ /56


6. 문자열 타입

1) (*중요*) ECMAScript에서 문자열은 변경할 수 없습니다. 문자열은 생성된 후에 변경되지 않습니다. 값이 할당된 문자열 변수를 변경하려면 먼저 변수의 문자열을 삭제한 다음 새 값이 포함된 문자열로 변수를 채웁니다.

코드 복사

코드는 다음과 같습니다.var d='hello';d= d 'shit';//실행 프로세스: 먼저 'hello'에 값을 할당한 다음 d에서 문자열을 지우고 문자열 'hello'와 'shit'을 연결한 다음 d 변수에 값을 할당합니다. (그래서 한번 생성된 문자열의 값은 변하지 않습니다)


2) toString() 메소드는 다른 데이터 유형을 String 유형으로 변환합니다. 그러나 null 또는 정의되지 않은 작업을 수행하면 오류가 보고됩니다.
3) 그러나 String() 메서드는 toString()의 효과를 얻을 수도 있지만 null 및 정의되지 않은 경우에도 작동할 수 있습니다.

내부 원칙: 먼저 toString()을 호출하고 문자열로 변환할 수 있으면 결과가 직접 반환됩니다. 아니요, 그런 다음 null인지 정의되지 않았는지 판단한 다음 'null' 또는 '정의되지 않음'을 반환합니다

요약: 변수가 null이거나 정의되지 않을 수 없다는 것을 알고 있다면 String()보다 성능이 뛰어난 toString()을 사용하세요. String()은 내부 판단을 해야 하기 때문에 성능에 해를 끼칠 수 있습니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿