이 글은 주로 JavaScript표준 객체 관련 정보를 자세하게 소개하고 있습니다. 관심 있는 친구들이 참고할 수 있습니다.
JavaScript의 세계에서는 모든 것이 객체입니다.
그러나 일부 개체는 여전히 다른 개체와 다릅니다. 개체 유형을 구별하기 위해 typeof 연산자를 사용하여 항상 문자열 을 반환하는 개체 유형을 가져옵니다.
typeof 123; // 'number' typeof NaN; // 'number' typeof 'str'; // 'string' typeof true; // 'boolean' typeof undefined; // 'undefined' typeof Math.abs; // 'function' typeof null; // 'object' typeof []; // 'object' typeof {}; // 'object'
visible, number, string, boolean, function 그리고 undefine은 다른 유형과 다릅니다. null 유형이 객체이고 Array 유형도 객체라는 사실에 특히 주의하세요. typeof를 사용하면 일반적인 의미인 {}에서 null, Array 및 객체를 구별할 수 없습니다.
Packaging object
JavaScript는 이러한 유형 외에도 패키징 개체도 제공합니다. Java에 익숙한 친구라면 int와 Integer 사이의 모호한 관계를 잘 알고 있어야 합니다.
숫자, 부울, 문자열 모두 패키징 객체를 가지고 있습니다. 예, JavaScript에서 문자열은 문자열 유형과 래퍼 유형도 구별합니다. 포장 개체는 새로운 항목으로 생성됩니다.
var n = new Number(123); // 123,生成了新的包装类型 var b = new Boolean(true); // true,生成了新的包装类型 var s = new String('str'); // 'str',生成了新的包装类型
포장 개체가 원래 값과 완전히 동일하고 동일하게 표시되지만 해당 유형이 개체로 변경되었습니다! 따라서 ===를 사용하여 래핑된 객체를 원래 값과 비교하면 false가 반환됩니다.
typeof new Number(123); // 'object' new Number(123) === 123; // false typeof new Boolean(true); // 'object' new Boolean(true) === true; // false typeof new String('str'); // 'object' new String('str') === 'str'; // false
그러므로 여유가 있다면 래핑된 객체를 사용하지 마세요! 특히 string 유형의 경우! ! !
Number, Boolean 및 String을 사용할 때 new을 쓰지 않으면 어떻게 되나요? 이때,
Number(), Boolean 및 String()은 모든 유형의 데이터를 number, boolean 및 string 유형으로 변환하는 일반 함수로 취급됩니다(참고 포장 형태가 아니라는 것):
var n = Number('123'); // 123,相当于parseInt()或parseFloat() typeof n; // 'number' var b = Boolean('true'); // true typeof b; // 'boolean' var b2 = Boolean('false'); // true! 'false'字符串转换结果为true!因为它是非空字符串! var b3 = Boolean(''); // false var s = String(123.45); // '123.45' typeof s; // 'string'
요약하자면, 따라야 할 몇 가지 규칙이 있습니다:
new Number(), new Boolean(), new String()을 사용하지 마세요. ze
또는 parseFloat()를 사용하여 모든 유형을 number로 변환합니다. 어떤 유형이든 string, 또는 객체의
메소드를 직접 호출합니다. z 일반적으로 모든 유형을 boolean으로 변환할 필요가 없습니다. 왜냐하면 직접 할 수 있기 때문입니다. (Myvar) {{
wilean, boolean, string, function and undefined ; Array를 사용하려면
Array.isArray(arr);ol판단하려면 null을 사용하세요.
myVar === nullYZ 여부를 판단하려면 전역 변수가 있으면 typeof window를 사용하세요.
마지막으로 주의 깊은 학생이 모든 객체에메서드가 있다는 점을 지적했습니다. null 및 undefine
같은 것은 없습니다! 실제로 이 두 가지 특수 값은 제외되어야 하지만 null은更细心的同学指出,number对象调用toString()报SyntaxError: 遇到这种情况,要特殊处理一下: 不要问为什么,这就是JavaScript代码的乐趣!123.toString(); // SyntaxError
123..toString(); // '123', 注意是两个点!
(123).toString(); // '123'
위 내용은 JavaScript 표준 객체에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!