> 웹 프론트엔드 > JS 튜토리얼 > JavaScript 표준 객체에 대한 자세한 소개

JavaScript 표준 객체에 대한 자세한 소개

零下一度
풀어 주다: 2017-06-28 13:34:19
원래의
1321명이 탐색했습니다.

이 글은 주로 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, BooleanString을 사용할 때 new을 쓰지 않으면 어떻게 되나요? 이때,
Number(), BooleanString()은 모든 유형의 데이터를 number, booleanstring 유형으로 변환하는 일반 함수로 취급됩니다(참고 포장 형태가 아니라는 것):

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

  • parseInt()
  • 또는 parseFloat()를 사용하여 모든 유형을 number로 변환합니다. 어떤 유형이든 string, 또는 객체의

  • toString()
  • 메소드를 직접 호출합니다. z 일반적으로 모든 유형을 boolean으로 변환할 필요가 없습니다. 왜냐하면 직접 할 수 있기 때문입니다. (Myvar) {{

  • wilean, boolean, string, function and undefined ; Array를 사용하려면

    Array.isArray(arr);
  • ol판단하려면 null을 사용하세요.

    myVar === null
  • ;

    YZ 여부를 판단하려면 전역 변수가 있으면 typeof window를 사용하세요.

    마지막으로 주의 깊은 학생이 모든 객체에
  • toString()

    메서드가 있다는 점을 지적했습니다. nullundefine

    같은 것은 없습니다! 실제로 이 두 가지 특수 값은 제외되어야 하지만 null은
  • 객체 클래스
  • 유형으로 위장되기도 합니다.

    更细心的同学指出,number对象调用toString()报SyntaxError:


    123.toString(); // SyntaxError
    로그인 후 복사

    遇到这种情况,要特殊处理一下:

    123..toString(); // '123', 注意是两个点!
    (123).toString(); // '123'
    로그인 후 복사

    不要问为什么,这就是JavaScript代码的乐趣!

    위 내용은 JavaScript 표준 객체에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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