Heim  >  Artikel  >  Web-Frontend  >  Detaillierte Erläuterung der Datentypen in JavaScript

Detaillierte Erläuterung der Datentypen in JavaScript

黄舟
黄舟Original
2017-03-01 15:00:371317Durchsuche

1.Undefinierter Typ

Der undefinierte Typ hat nur einen Wert, nämlich den speziellen undefinierten. Wenn eine Variable mit var deklariert, aber nicht initialisiert wird, ist der Wert der Variablen undefiniert, zum Beispiel:

var message;
alert(message == undefined); //true

Dieses Beispiel deklariert nur Die Variable message ist gesetzt, aber nicht initialisiert. Beim Vergleich dieser Variablen mit dem undefinierten Literal zeigt das Ergebnis , dass sie gleich sind. Dieses Beispiel entspricht dem folgenden Beispiel:

var message = undefined;
alert(message == undefined); //true

Dieses Beispiel initialisiert die Variable message explizit mit einem undefinierten Wert. Dies ist jedoch nicht erforderlich, da nicht initialisierte Werte standardmäßig undefiniert werden.

2. Nulltyp

Nulltyp ist der zweite Datentyp mit nur einem Wert. Aus logischer Sicht stellt ein Nullwert einen Nullobjektzeiger dar. Aus diesem Grund wird „object“ zurückgegeben, wenn der Operator „typeof“ zum Erkennen eines Nullwerts verwendet wird, wie im folgenden Beispiel gezeigt:

var car = null;
alert(typeof car); // "object"


Wenn die von Ihnen definierte Variable in Zukunft zum Halten eines Objekts verwendet werden soll, ist es am besten, die Variable auf Null statt auf einen anderen Wert zu initialisieren. Auf diese Weise können Sie feststellen, ob die entsprechende Variable bereits einen Verweis auf ein Objekt enthält, indem Sie den Nullwert direkt überprüfen, wie im folgenden Beispiel gezeigt:

if (car != null){
// 对car 对象执行某些操作
}

Oben wird der undefinierte Wert vom Nullwert abgeleitet, daher schreibt ECMA-262 vor, dass ihr Gleichheitstest „true“ zurückgeben soll:

alert(null == undefined); //true

Hier zwischen null und undefiniert Der Gleichheitsoperator (==) gibt immer „true“ zurück. Beachten Sie jedoch, dass dieser Operator seine Operanden zu Vergleichszwecken konvertiert (mehr dazu später in diesem Kapitel). Obwohl null und undefiniert diese Beziehung haben, sind ihre Verwendungen völlig unterschiedlich. Wie bereits erwähnt, besteht unter keinen Umständen die Notwendigkeit, den Wert einer Variablen explizit auf undefiniert zu setzen, aber die gleiche Regel gilt nicht für null. Mit anderen Worten: Solange eine Variable, die ein Objekt enthalten soll, nicht tatsächlich ein Objekt enthält, sollten Sie die Variable explizit einen Nullwert enthalten lassen. Dies spiegelt nicht nur
die Konvention von null als Nullobjektzeiger wider, sondern hilft auch dabei, null und undefiniert weiter zu unterscheiden.

3.Boolescher Typ

Dieser Typ hat nur zwei Literalwerte: wahr und falsch. Diese beiden Werte sind nicht dasselbe wie numerische Werte. Wahr ist also nicht unbedingt gleich 1 und falsch ist nicht unbedingt gleich 0. Das Folgende ist ein Beispiel für die Zuweisung eines Werts vom Typ

zu einer Variablen:

var found = true;
var lost = false;

Es sollte beachtet werden Wörter vom Typ Boolean Bei den Werten true und false wird die Groß-/Kleinschreibung beachtet. Das heißt, „Wahr“ und „Falsch“ (und andere Formen mit gemischter Groß-/Kleinschreibung) sind keine booleschen Werte, sondern nur Bezeichner. Obwohl es nur zwei Literalwerte vom Typ Boolean gibt, haben alle Wertetypen in ECMAScript Werte, die diesen beiden Booleschen Werten entsprechen. Um einen Wert in den entsprechenden booleschen Wert umzuwandeln, können Sie die Konvertierungsfunktion Boolean() aufrufen, wie im folgenden Beispiel gezeigt:

var message = "Hello world!";
var messageAsBoolean = Boolean(message);
BooleanExample01.htm

In diesem Beispiel wird die Zeichenfolge message in einen booleschen Wert umgewandelt, der in der Variablen messageAsBoolean gespeichert wird. Die Funktion Boolean() kann für einen Wert eines beliebigen Datentyps aufgerufen werden und gibt immer einen booleschen Wert zurück. Ob der zurückgegebene Wert wahr oder falsch ist, hängt vom Datentyp des umzuwandelnden Werts und seinem tatsächlichen Wert ab. In der folgenden Tabelle sind verschiedene Datentypen und die entsprechenden Konvertierungsregeln aufgeführt.

Datentyp

Konvertieren Sie in den Wert von wahr

Konvertieren Sie in den Wert von falsch

Boolean

true

false

String

Jede nicht leere Zeichenfolge

"" (leere Zeichenfolge)

Zahl

Jeder numerische Wert ungleich Null (einschließlich Unendlichkeit)

0 und NaN

Objekt undefiniert

Jedes Objekt

null

undefiniert

 

undefined

4.Number类型

5.NaN

NaN,即非数值(Not a Number)是一个特殊的数值,这个数值用于表示一个本来要返回数值的操作数未返回数值的情况(这样就不会抛出错误了)。例如,在其他编程语言中,任何数值除以0 都会导致错误,从而停止代码执行。但在ECMAScript 中,任何数值除以0 会返回NaN①,因此不会影响其他代码的执行。NaN 本身有两个非同寻常的特点。首先,任何涉及NaN 的操作(例如NaN/10)都会返回NaN,这个特点在多步计算中有可能导致问题。其次,NaN 与任何值都不相等,包括NaN 本身。例如,下面的代码会返回false:


alert(NaN == NaN); //false

针对NaN 的这两个特点,ECMAScript 定义了isNaN()函数。这个函数接受一个参数,该参数可以是任何类型,而函数会帮我们确定这个参数是否“不是数值”。isNaN()在接收到一个值之后,会尝试将这个值转换为数值。某些不是数值的值会直接转换为数值,例如字符串"10"或Boolean 值。而任何不能被转换为数值的值都会导致这个函数返回true。请看下面的例子:

alert(isNaN(NaN)); //true
alert(isNaN(10)); //false(10 是一个数值)
alert(isNaN("10")); //false(可以被转换成数值10)
alert(isNaN("blue")); //true(不能转换成数值)
alert(isNaN(true)); //false(可以被转换成数值1)

6.数值转换

有3 个函数可以把非数值转换为数值:Number()、parseInt()和parseFloat()。第一个函数,即转型函数Number()可以用于任何数据类型,而另两个函数则专门用于把字符串转换成数值。这3 个函数对于同样的输入会有返回不同的结果

 以上就是JavaScript中数据类型详解的内容,更多相关内容请关注PHP中文网(www.php.cn)!


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