그러한 기본적인 것들은 더 이상 기록되어서는 안되며, 과거를 검토하고 새로운 것을 먼저 배우십시오. 데이터 유형부터 시작하겠습니다.
JS 6 가지 주요 데이터 유형 : 번호, 문자열, 객체, 부울, 널, 정의되지 않은
문자열 : "String"과 같은 단일 또는 이중 인용문으로 설명
숫자 : 정수, 부동 소수점 번호는 모두 숫자라고합니다.
부울 : 그것은 사실이고 거짓입니다
정의되지 않은 : 정의되지 않은 것, 즉 변수를 만들지 만 값을 할당하지 않습니다 ~
NULL : 따라서 Sijiu라고합니다. Null은 아무것도 의미하지 않으며 아무것도 의미가 없습니다
대상 : 나는 이것을 설명하기가 어렵다. 위의 5 가지 이외의 유형입니다
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
데이터 유형 판단 유형
Typeof는 대부분의 데이터 유형 판단을 해결할 수 있습니다. 일방적 인 작업입니다. 작동 값 전에 리턴 값은 문자열입니다. 이 문자열은 작동 번호의 유형을 나타냅니다. 따라서 if (typeof (your value) == "string") {}
다음은 다양한 데이터 유형으로 반환 된 결과입니다.
var a = "String"; Console.log (a); // StringVar a = 1; Console.log (a); // numbervar a = false; Console.log (a); // booleanvar a; Console.log (타입 A); // undfinedvar a = null; Console.log (타입 A); // ObjectVar a = 문서; Console.log (타입 A); // ObjectVar a = []; Console.log (a); // ObjectVar a = function () {}; Console.log (타입 A) // 기능 데이터 유형 판단 외에도 기능 유형을 판단 할 수도 있습니다.이것은 분명합니다. 처음 네 가지 유형을 제외하고 Null, Object 및 Array는 모든 객체 유형을 반환합니다.
함수 유형의 경우, typeof (date), typeof (Eval) 등과 같은 함수가 반환됩니다.
그런 다음 여기에서 우리는 매우 인기있는 또 다른 문제를 확장 할 수 있으며 솔루션은 이미 일반적입니다. 데이터가 배열 유형인지 확인하는 방법은 무엇입니까?
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
JS 메소드 배열 유형을 결정합니다
방법 1 인스턴스
따라서 인스턴스는 이름을 의미합니다. 인스턴스, 예제입니다. 따라서 인스턴스는 변수가 객체의 인스턴스인지 여부를 결정하는 데 사용됩니다. 3 차원 작동 공식입니다.
A B? ALERT ( "TRUE") : ALERT ( "FALSE") // B 값은 배열과 같은 문자열이 아닌 판단하려는 데이터 유형입니다.
밤나무를 가져 가십시오 :
var a = []; console.log (인스턴스 배열) // true를 반환합니다
방법 2 생성자
W3C 정의의 정의 : 생성자 속성이 객체를 만든 배열 함수에 대한 참조를 반환합니다.
물체에 해당하는 생성자를 반환합니다. 정의에서, 그것은 인스턴스와 그다지 일치하지 않지만 효과는 동일합니다.
예를 들면 : (배열 인스턴스) // a 배열 인스턴스입니까? 참 또는 거짓
(a.constructor == array) // 생성자는 인스턴스 A에 해당하는 A가 배열에 해당합니까? 참 또는 거짓
밤나무를 가져 가십시오 :
기능 직원 (이름, 직업, 출생) {this.name = 이름; this.job = job; this.born = born;} var bill = 신입 사원 ( "Bill Gates", "Engineer", 1985); console.log (Bill.constructor); // 출력 기능 직원 (이름, Jobtitle, Born) {this.name = 이름; this.jobtitle = job; this.born = born;}그런 다음 다양한 유형을 판단하는 방법은 다음과 같습니다.
console.log ([]. 생성자 == array); console.log ({}. 생성자 == 객체); console.log ( "string".constructor == String); console.log ((123) .Constructor == number); console.log (true.constructor == boolean);----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
보다 엄격하고 일반적인 방법 :
함수 isArray (Object) {return object && typeof object === '객체'&& array == object.constructor;}! ! 알아채다:
인스턴스 및 생성자를 사용하여 판단 된 배열은 현재 페이지에 선언되어야합니다! 예를 들어, 페이지 (부모 페이지)에 프레임 워크가 있고, 페이지 (하위 페이지)에 프레임 워크에 참조되고 배열이 하위 페이지에 선언되어 부모 페이지의 변수에 할당됩니다. 현재 변수는 array == object.constructor; 거짓을 반환합니다.
이유:
1. 배열은 참조 데이터입니다. 전송 과정에서는 참조 주소의 전송 일뿐입니다.
2. 각 페이지의 배열 기본 개체에서 참조 된 주소는 다릅니다. 자식 페이지에 선언 된 배열의 해당 생성자는 자식 페이지의 배열 객체입니다. 부모 페이지의 판단을 위해 사용 된 배열은 자식 페이지의 배열과 같지 않습니다. 그렇지 않으면 문제를 추적하기가 어려울 것입니다!
방법 3 : 특성 판단 방법
위의 모든 방법에는 특정한 결함이 있지만, 대중의 지혜가 전능하다고 믿어야합니다. 배열의 일부 특성에 따라 그 유형을 판단 할 수 있습니다.
function isArray (Object) {return object && typeof object === '객체'&& type '&& typeof object.length ==='숫자 '&& typeof object.splice ==='function '&& // 배열에 대해 길이 속성이 열거 될 수 있는지 확인하십시오!가장 중요한 판단 요소는 객체에 속성을 추가하는 것이지만 길이 속성을 열거하는 것이 아니기 때문에 길이와 스플 라이스를 갖는 것이 반드시 배열 일 필요는 없습니다.
추신 : 여기서 우리는 Propertyisenumerable 방법을 대중화합니다.
물체. PropertyisEnumerable (Proname)
지정된 속성을 나열 할 수 있는지 확인하십시오
참고 : 프로 이름이 객체에 존재하고 for…에서 a… 객체에 지정된 속성이 없거나 지정된 속성이 열거 될 수없는 경우 PropertySeenumerable 속성은 False를 반환합니다.
Propertyisenumerable 속성은 프로토 타입 체인의 개체를 고려하지 않습니다.
예:
var a = new Array ( "Apple", "Banana", "Cactus"); document.write (a.propertyisEnumerable (1));
방법 4 가장 쉬운 방법
함수 isarray (o) {return object.prototype.tostring.call (o) === '[객체 배열]';}위는이 기사의 전체 내용입니다. JavaScript에 대한 자세한 내용은 "JavaScript 참조 자습서"및 "JavaScript Code Style Guide"를 확인하십시오. 또한 모두가 wulin.com을 더 지원하기를 바랍니다.