Sieben Werttypen und Typoperator in JavaScript
Ich habe vor, JavaScript von den Grundlagen her zu überprüfen.
Übrigens möchte ich teilen und zusammenfassen, was ich gelernt habe
Eingebaute Typen
In JavaScript gibt es sieben integrierte Typen, darunter sechs Grundtypen und einen Referenztyp
Grundtyp
-
Zahl (Zahl)
Zeichenfolge
boolean
-
undefiniert
null (leerer Wert)
Symbol (Symbol) [ES6-Spezifikation neu]
Referenz Typ
Objekt (Objekt)
Hinweis: Array-Array und Funktionsfunktion sind auch spezielle Objekte Das heißt Sagen wir, sie sind „Subtypen“ von Objekten und auch Referenzwerte
Der Grundtyp ist ein einfaches Datensegment, das im Stapelspeicher gespeichert ist, und es gibt einen festen Platz im Speicher
Der Referenztyp ist Der Zugriff auf im Heap gespeicherte Objekte im Speicher erfolgt per Referenz. Der Stapelspeicher speichert den Zeiger auf das Objekt (die Zugriffsadresse des Objekts wird gespeichert).
Der Grund für die Aufteilung des Stapels in den Speicher liegt darin, dass er mit dem verknüpft ist Der Garbage-Collection-Mechanismus des Browsers stellt den Betrieb sicher. Es belegt die geringste Menge an Speicher
Es spielt keine Rolle, wenn Sie das oben Gesagte nicht verstehen, solange Sie wissen, dass der Grundtyp Stapeldaten sind und die Referenz Typ sind Heap-Daten.typeof Der Operator
kann auch als Typof-Operator bezeichnet werden. Der Operator Operator bezieht sich auf dasselbe
Durch diesen Typof können wir überprüfen der Werttyp Die Zeichenfolge seines Rückgabetyps (Englisch in Kleinbuchstaben), aber nicht alle Typen können identifiziert werden
console.log(typeof 123); // "number"console.log(typeof '123'); // "string"console.log(typeof true); // "boolean"console.log(typeof undefined); // "undefined"console.log(typeof Symbol()); // "symbol"console.log(typeof null); // "object" <-注意看这里console.log(typeof {demo: 123}); // "object"
Nun, es ist wie erwartet. Es ist anders
Es wurde versprochen, „null“ zurückzugeben
Tatsächlich handelt es sich hierbei um ein historisches Problem. Dieser Fehler besteht seit mehr als 20 Jahren (älter). als ich)
Wahrscheinlich für immer Es wird nicht repariert, weil es zu viele Websysteme betrifft und die Kosten für die „Reparatur“ unvorstellbar sind
Denn egal welches Objekt, auch ein leeres Objekt, es wird wahr sein, wenn es in einen booleschen Wert konvertiert wird (ich werde später darüber sprechen, wenn ich Typkonvertierung schreibe)
var foo = null;if(!foo && typeof foo === 'object'){ console.log('这是一个空值...'); }
typeof hat eine spezielle Behandlung dafür Funktionen, die erstklassige Bürger in JavaScript sind – ausführbare Objekte
console.log(typeof function(){});// "function"
Der Grund, warum die Funktion aufgerufen werden kann, liegt daran, dass sie vorhanden ist ein internes Attribut [[call]], also ein „aufrufbares Objekt“. Wir werden später darüber sprechen
Ach ja, obwohl Arrays auch spezielle Objekte sind, erkennt typeof sie nicht
Wenn Sie Wenn Sie Arrays unterscheiden möchten, können Sie lesen, was ich darüber geschrieben habe, wie man Arrays identifiziert
Typ der Rückgabewerte umfasst also diese Zeichenfolgen
Zahl, Zeichenfolge, boolescher Wert, undefiniert, Objekt, Funktion, Symbol
Es ist auch leicht, Fehler zu machen, und es kann zu Interviewfragen kommen
console.log(typeof NaN)// "number"
Not a number NaN auf Englisch
Not a Number
'Not a number' Das bedeutet: Eine Zahl, die keine Zahl ist, ist eine ZahlDas spielt keine Rolle, das tut es Ist egal
Denken Sie jetzt daran, dass NaN vom Typ Zahl ist
Obwohl „typeof“ auf diese Weise verwendet werden kann
Aber es ist keine Funktion, keine Funktion, keine Funktion (Wichtige Dinge werden dreimal gesagt) typeof(a + b)
ist ein unärer Operator. Denken Sie daran, dass
die obige Verwendung nur eine Typprüfung für das Ergebnis der Operandenoperation ist der Ausdruck
Wert und Typ
Hier erkläre ich ein solches Problem
In JavaScript haben Variablen keine Typen, nur Werte haben TypenDer Operator „typeof“ gibt einen String zurück des Typs des von der Variablen gehaltenen Werts
Weil wir eine schwache Typsprache sind
Also können wir den Typ des von der Variablen gehaltenen Werts ändern
var foo = 123;console.log(typeof foo); // "number"foo = true;console.log(typeof foo); // "boolean"foo = 'abc';console.log(typeof foo); // "string"
Zum Beispiel retArr, bFlag, strLen und dergleichen
Art von nicht deklariertem
Dieses nicht deklarierte Wort ist natürlich der Schlüssel zur Nichtexistenz von Wörtern
Aber warum schreibe ich soSchauen wir uns eine Frage an
console.log(foo);
我没定义foo就打印,于是
果不其然,浏览器蒙圈了
给大家翻译成中文:未捕获引用错误: foo没有定义
可能大家都不会去注意,其实这是很容易让人误会的
在这了 is not defined != is undefind
因为我连声明都没声明,怎么谈定义
所以如果浏览器报出is not declared或许更准确
我们暂且把这种连定义都没定义的变量看作“undeclared”变量
但是对于这种“undeclared”未定义的变量,typeof有特殊的安全防范机制
console.log(typeof foo);// "undefined"
出乎意料的,它对于undeclared变量并没有报错,而是返回了“undefined”
虽然我们觉得它返回“undeclared”更容易理解一些(我们的要求太高了)
其实它没有报错就相当不错了
这种容错对于我们来说还是很有帮助的
比如说我们想知道全局空间有没有变量foo
if(foo){ //若不存在会报错 //...}if(typeof foo !== 'undefined'){ //不存在也不会报错 //...}if(window.foo){ //不存在同样不会报错 //...}
最后一种通过window对象调用与undeclared变量不同
访问不存在的对象属性是不会报错的,而是返回undefined(是类型而不是字符串)
不过如果我们全局对象不是window的话,就不能使用这种方法了(比如,node.js)
总结
JavaScript内置类型:
基本类型(栈数据):number、string、boolean、undefined、null、object、symbol(ES6规范新增)
引用类型(堆数据):object
typeof操作符返回值:
“number”
“string”
“boolean”
“undefined”
“object”
“function”【sp】
“symbol”
typeof null -> “object” 历史遗留bug
typeof NaN -> ‘number’ 注意
变量没有类型,其持有值有类型
typeof的容错机制可以用来检查undeclared(未声明)变量
以上就是JavaScript中的七种值类型与typeof运算符的内容,更多相关内容请关注PHP中文网(www.php.cn)!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

So implementieren Sie mit WebSocket und JavaScript ein Online-Spracherkennungssystem. Einführung: Mit der kontinuierlichen Weiterentwicklung der Technologie ist die Spracherkennungstechnologie zu einem wichtigen Bestandteil des Bereichs der künstlichen Intelligenz geworden. Das auf WebSocket und JavaScript basierende Online-Spracherkennungssystem zeichnet sich durch geringe Latenz, Echtzeit und plattformübergreifende Eigenschaften aus und hat sich zu einer weit verbreiteten Lösung entwickelt. In diesem Artikel wird erläutert, wie Sie mit WebSocket und JavaScript ein Online-Spracherkennungssystem implementieren.

WebSocket und JavaScript: Schlüsseltechnologien zur Realisierung von Echtzeit-Überwachungssystemen Einführung: Mit der rasanten Entwicklung der Internet-Technologie wurden Echtzeit-Überwachungssysteme in verschiedenen Bereichen weit verbreitet eingesetzt. Eine der Schlüsseltechnologien zur Erzielung einer Echtzeitüberwachung ist die Kombination von WebSocket und JavaScript. In diesem Artikel wird die Anwendung von WebSocket und JavaScript in Echtzeitüberwachungssystemen vorgestellt, Codebeispiele gegeben und deren Implementierungsprinzipien ausführlich erläutert. 1. WebSocket-Technologie

Der Operator += wird verwendet, um den Wert des linken Operanden zum Wert des rechten Operanden zu addieren und das Ergebnis dem linken Operanden zuzuweisen. Er ist für numerische Typen geeignet und der linke Operand muss beschreibbar sein.

JavaScript und WebSocket: Aufbau eines effizienten Echtzeit-Wettervorhersagesystems Einführung: Heutzutage ist die Genauigkeit von Wettervorhersagen für das tägliche Leben und die Entscheidungsfindung von großer Bedeutung. Mit der Weiterentwicklung der Technologie können wir genauere und zuverlässigere Wettervorhersagen liefern, indem wir Wetterdaten in Echtzeit erhalten. In diesem Artikel erfahren Sie, wie Sie mit JavaScript und WebSocket-Technologie ein effizientes Echtzeit-Wettervorhersagesystem aufbauen. In diesem Artikel wird der Implementierungsprozess anhand spezifischer Codebeispiele demonstriert. Wir

JavaScript-Tutorial: So erhalten Sie HTTP-Statuscode. Es sind spezifische Codebeispiele erforderlich. Vorwort: Bei der Webentwicklung ist häufig die Dateninteraktion mit dem Server erforderlich. Bei der Kommunikation mit dem Server müssen wir häufig den zurückgegebenen HTTP-Statuscode abrufen, um festzustellen, ob der Vorgang erfolgreich ist, und die entsprechende Verarbeitung basierend auf verschiedenen Statuscodes durchführen. In diesem Artikel erfahren Sie, wie Sie mit JavaScript HTTP-Statuscodes abrufen und einige praktische Codebeispiele bereitstellen. Verwenden von XMLHttpRequest

Python wird aufgrund seiner einfachen und leicht lesbaren Syntax in einer Vielzahl von Bereichen häufig verwendet. Es ist von entscheidender Bedeutung, die Grundstruktur der Python-Syntax zu beherrschen, um sowohl die Programmiereffizienz zu verbessern als auch ein tiefes Verständnis für die Funktionsweise des Codes zu erlangen. Zu diesem Zweck bietet dieser Artikel eine umfassende Mindmap, die verschiedene Aspekte der Python-Syntax detailliert beschreibt. Variablen und Datentypen Variablen sind Container, die zum Speichern von Daten in Python verwendet werden. Die Mindmap zeigt gängige Python-Datentypen, einschließlich Ganzzahlen, Gleitkommazahlen, Zeichenfolgen, boolesche Werte und Listen. Jeder Datentyp hat seine eigenen Eigenschaften und Betriebsmethoden. Operatoren Operatoren werden verwendet, um verschiedene Operationen an Datentypen auszuführen. Die Mindmap deckt die verschiedenen Operatortypen in Python ab, z. B. arithmetische Operatoren und Verhältnisse

Einführung in die Methode zum Abrufen des HTTP-Statuscodes in JavaScript: Bei der Front-End-Entwicklung müssen wir uns häufig mit der Interaktion mit der Back-End-Schnittstelle befassen, und der HTTP-Statuscode ist ein sehr wichtiger Teil davon. Das Verstehen und Abrufen von HTTP-Statuscodes hilft uns, die von der Schnittstelle zurückgegebenen Daten besser zu verarbeiten. In diesem Artikel wird erläutert, wie Sie mithilfe von JavaScript HTTP-Statuscodes erhalten, und es werden spezifische Codebeispiele bereitgestellt. 1. Was ist ein HTTP-Statuscode? HTTP-Statuscode bedeutet, dass der Dienst den Dienst anfordert, wenn er eine Anfrage an den Server initiiert

Einführung in Python-Operatoren Operatoren sind spezielle Symbole oder Schlüsselwörter, die zum Ausführen von Operationen zwischen zwei oder mehr Operanden verwendet werden. Python bietet eine Vielzahl von Operatoren, die ein breites Anwendungsspektrum abdecken, von grundlegenden mathematischen Operationen bis hin zu komplexen Datenmanipulationen. Mathematische Operatoren Mathematische Operatoren werden zur Durchführung allgemeiner mathematischer Operationen verwendet. Dazu gehören: Beispiele für Operatoroperationen + Addition a + b - Subtraktion a-b * Multiplikation a * b / Division a / b % Modulo-Operation (nehmen Sie den Rest) a % b ** Potenzoperation a ** b // Ganzzahldivision (verwerfen Sie die Rest) a//b Logische Operatoren Logische Operatoren werden verwendet, um boolesche Werte zu verketten und Bedingungen auszuwerten. Dazu gehören: Beispiele für Operatoroperationen und logische und aorbnot logische oder aorbnot logische Nota-Vergleichsoperationen
