Heim  >  Artikel  >  Web-Frontend  >  Detaillierte Einführung in JavaScript-Standardobjekte

Detaillierte Einführung in JavaScript-Standardobjekte

零下一度
零下一度Original
2017-06-28 13:34:191272Durchsuche

In diesem Artikel werden hauptsächlich die relevanten Informationen zu JavaScript-Standardobjekten im Detail vorgestellt, die einen gewissen Referenzwert haben

in der Welt von JavaScript Hier ist alles ein Objekt.

Aber einige Objekte unterscheiden sich dennoch von anderen. Um den Objekttyp zu unterscheiden, verwenden wir typeofOperator, um den Objekttyp abzurufen, der immer einenString zurückgibt:


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'

Es ist ersichtlich, dass Zahl, Zeichenfolge, Boolescher Wert, Funktion und undefiniert unterschiedlich sind andere Typen. Achten Sie besonders darauf, dass der Typ von Null ein Objekt ist und der Typ von Array auch ein Objekt ist. Wenn wir typeof verwenden, können wir nicht zwischen Null, Array und Objekt im üblichen Sinne unterscheiden – {}.

Verpackungsobjekte

Zusätzlich zu diesen Typen bietet JavaScript auch Verpackungsobjekte, die sich mit Java auskennen und int und IntegerDiese mehrdeutige Beziehung. Number, Boolean und String haben alle Verpackungsobjekte. Ja, in JavaScript wird bei Strings auch zwischen dem String-Typ und seinem Wrapping-Typ unterschieden. Verpackungsobjekte werden mit neu erstellt:


var n = new Number(123); // 123,生成了新的包装类型
var b = new Boolean(true); // true,生成了新的包装类型
var s = new String('str'); // 'str',生成了新的包装类型
Obwohl die Verpackungsobjekte genauso aussehen wie die ursprünglichen Werte und genau gleich angezeigt werden, sind ihre Typen haben Objekt geändert! Daher wird beim Vergleichen des umschlossenen Objekts mit dem Originalwert mit === false zurückgegeben:



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
Verwenden Sie also keine umschlossenen Objekte, wenn Sie frei sind ! Speziell für den Typ

String! ! ! Wenn wir
Number, Boolean und String verwenden, ohne new zu schreiben Was geschieht? Zu diesem Zeitpunkt werden
Number(), Boolean und String() als gewöhnliche Funktionen zum Konvertieren jeglicher Art behandelt Daten Für die Typen Zahl, Boolescher Wert und Zeichenfolge (beachten Sie nicht den Verpackungstyp):


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'
Fühlt sich Ihr Kopf groß an? Das ist der einzigartige hypnotische Charme von JavaScript!


Zusammenfassend gibt es mehrere Regeln, die befolgt werden müssen:


  • Verwenden Sie keine

    neue Nummer( ), new Boolean(), new String()Erstellen Sie ein Wrapper-Objekt; >parseFloat()

  • , um jeden Typ in
  • Zahl umzuwandeln ; Verwenden Sie String(), um einen beliebigen Typ in String

    , oder rufen Sie direkt
  • toString()

    Methode; Normalerweise ist es nicht erforderlich, einen -Typ zu konvertieren zu boolean, bevor Sie urteilen, da Sie direkt Write if (myVar) {...}; schreiben können

  • typeof Operator Sie können Zahl, Boolescher Wert, Zeichenfolge, Funktion und Undefiniert beurteilen; 🎜>Judge

    Array
  • Um

    Array.isArray(arr); zu verwenden, verwenden Sie bitte myVar === null;

     Um festzustellen, ob eine globale Variable vorhanden ist, verwenden Sie
  • typeof window.

    Intern ermittelt die Funktion mithilfe von typeof myVar === 'undefiniert', ob eine Variable vorhanden ist.

  • Schließlich wies ein aufmerksamer Student darauf hin, dass jedes Objekt eine toString()-Methode hat? null

  • und
  • undefiniert sind nicht verfügbar! Tatsächlich müssen diese beiden Sonderwerte ausgeschlossen werden, obwohl null auch als Typ Objektklasse getarnt ist.

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


    123.toString(); // SyntaxError

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

    123..toString(); // '123', 注意是两个点!
    (123).toString(); // '123'

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

Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in JavaScript-Standardobjekte. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn