Heim > Web-Frontend > js-Tutorial > Hauptteil

Datentypen von JavaScript-Studiennotizen

PHPz
Freigeben: 2018-09-29 17:15:18
Original
952 Leute haben es durchsucht

Javascript-Datentypen sind sehr einfach und umfassen nur undefinierte, Null-, Zeichenfolgen-, Boolesche, Zahlen- und Objekttypen. Heute werden wir diese Datentypen einzeln erklären, um das Verständnis und die Erinnerung aller zu erleichtern.

1. Klassifizierung

Grundlegende Datentypen: undefiniert, null, string, Boolean, Zahl

Komplex Datentyp: Objekt

Die Attribute des Objekts werden in Form von ungeordneten Namens- und Wertpaaren (Name:Wert) definiert

2. Ausführliche Erklärung

1. undefiniert: Der undefinierte Typ hat nur einen Wert: undefiniert. Wenn eine Variable mit var deklariert, aber nicht initialisiert wird, ist der Wert dieser Variablen undefiniert.

Eine Variable, die Folgendes enthält Ein undefinierter Wert ist dasselbe wie undefinierte Variablen. Das folgende Beispiel kann veranschaulichen:

var demo1;//声明但未初始化
alert(demo1);//undefined
alert(demo2);//报错,demo2 is not defined
Nach dem Login kopieren

2. Der Nulltyp hat nur einen Wert: null Aus Sicht stellt der Nullwert einen Nullobjektzeiger dar.

Wenn die 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, solange der Nullwert direkt erkannt wird, feststellen, ob die entsprechende Variable einen Verweis auf ein Objekt gespeichert hat, zum Beispiel:

 if(car != null)
    {
        //对car对象执行某些操作
    }
Nach dem Login kopieren
Tatsächlich wird der undefinierte Wert von abgeleitet der Nullwert, daher gibt ECMA -262 an, dass der Test auf Gleichheit „true“ zurückgeben soll.

alert(undefined == null); //true
Nach dem Login kopieren
Obwohl null und undefiniert diese Beziehung haben, sind ihre Verwendungen völlig unterschiedlich. Unter keinen Umständen ist es notwendig, 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 besser zu unterscheiden.


3. Boolean:

Der boolesche Typ hat zwei Werte: wahr und falsch Werte, also true Es ist nicht unbedingt gleich 1 und false ist nicht unbedingt gleich 0.

Es ist zu beachten, dass beim Literalwert des booleschen Typs die Groß-/Kleinschreibung beachtet wird, d.

Obwohl es nur zwei Literalwerte vom Typ Boolean gibt, haben alle Werttypen in JavaScript Werte, die diesen beiden Booleschen Werten entsprechen. Um einen Wert in den entsprechenden booleschen Wert umzuwandeln, können Sie die Typkonvertierungsfunktion Boolean() aufrufen, zum Beispiel:

var message = 'Hello World';
    var messageAsBoolean = Boolean(message);
Nach dem Login kopieren
In diesem Beispiel wird die Zeichenfolgennachricht in einen booleschen Wert umgewandelt, der gespeichert wird in der Variable messageAsBoolean. 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. Die folgende Tabelle enthält die Konvertierungsregeln für verschiedene Datentypen und ihre Objekte.


Diese Konvertierungsregeln sind sehr wichtig, um Flusskontrollanweisungen (z. B. if-Anweisungen) zu verstehen und entsprechende boolesche Konvertierungen automatisch durchzuführen, zum Beispiel:

var message = 'Hello World';
if(message)//相当于if(Boolean(message)==true) {
        alert("Value is true");//Value is true
}
Nach dem Login kopieren
Aufgrund der Existenz von Diese automatisch durchgeführte Boolesche Konvertierung, daher ist es wichtig, genau zu wissen, welche Variablen in Flusskontrollanweisungen verwendet werden.

4. Zahl: Ganzzahl und Gleitkommazahl

4.1 Ganzzahl: Bei der Durchführung von Berechnungen werden alle Oktal- und Hexadezimalzahlen in Dezimalzahlen umgewandelt

4.2 Gleitkomma: Die höchste Genauigkeit von Gleitkommawerten beträgt 17 Stellen, daher ist ihre Genauigkeit bei arithmetischen Berechnungen weitaus schlechter als bei ganzen Zahlen. Beispiel: Das Ergebnis von 0,1 0,2 ist nicht 0,3, sondern 0,30000000000000004. Beispiel:

a=0.2;
b=0.1;
if(a+b==0.3){
alert("hello");
}
else{
alert("hi");
}
Nach dem Login kopieren
Das Ergebnis wird als „Hallo“ angezeigt. Testen Sie also keinen bestimmten Gleitkommawert.

4.3 NaN: Keine Zahl. Dieser Wert wird verwendet, um anzuzeigen, dass ein Operand, der einen numerischen Wert zurückgeben sollte, keinen numerischen Wert zurückgegeben hat (damit kein Fehler ausgegeben wird).

NaN selbst hat zwei außergewöhnliche Eigenschaften. Erstens gibt jede Operation mit NaN (z. B. NaN/10) NaN zurück, was bei mehrstufigen Berechnungen zu Problemen führen kann. Zweitens ist NaN keinem Wert gleich, auch nicht NaN selbst. Zum Beispiel:

alert(NaN == NaN);    //false
Nach dem Login kopieren
Es gibt eine isNaN()-Funktion in JavaScript. Diese Funktion akzeptiert einen Parameter, der einen beliebigen Typ haben kann, und die Funktion hilft uns zu bestimmen, ob der Parameter „kein numerischer Wert“ ist Wert". Nachdem isNaN() einen Wert empfängt, versucht es, den Wert in einen numerischen Wert umzuwandeln. Einige Werte, die nicht numerisch sind, werden direkt in numerische Werte umgewandelt, beispielsweise die Zeichenfolge „10“ oder ein boolescher Wert. Jeder Wert, der nicht in einen numerischen Wert umgewandelt werden kann, führt dazu, dass diese Funktion „true“ zurückgibt. Beispielsweise verfügt

alert(isNaN(NaN));    //true
alert(isNaN(10));    //false(10是一个数值)
alert(isNaN("10"));    //false(可能被转换为数值10)
alert(isNaN("blue"));    //true(不能被转换为数值)
alert(isNaN("bule123")); //ture(不能被转换为数值)
alert(isNaN(true));    //false(可能被转换为数值1)
Nach dem Login kopieren
über drei Funktionen, die nicht numerische Werte in numerische Werte umwandeln können: Number(), parseInt() und parseFloat(). Die erste Funktion, die Konvertierungsfunktion Number(), kann für jeden Datentyp verwendet werden, während die anderen beiden Funktionen speziell zum Konvertieren von Zeichenfolgen in Zahlen dienen. Diese drei Funktionen geben unterschiedliche Ergebnisse für dieselbe Eingabe zurück.

Die Konvertierungsregeln der Funktion Number() lauten wie folgt:

● Wenn es sich um einen booleschen Wert handelt, werden wahr und falsch durch 1 bzw. 0 ersetzt

● Wenn es sich um einen numerischen Wert handelt, übergeben Sie ihn einfach und geben Sie

zurück. ● Wenn es sich um einen Nullwert handelt, geben Sie 0 zurück.

. ● Wenn er undefiniert ist, geben Sie NaN zurück

● Wenn es sich um eine Zeichenfolge handelt, befolgen Sie die folgenden Regeln:

   ○ 如果字符串中只包含数字,则将其转换为十进制数值,即”1“会变成1,”123“会变成123,而”011“会变成11(前导的0被忽略)

   ○ 如果字符串中包含有效的浮点格式,如”1.1“,则将其转换为对应的浮点数(同样,也会忽略前导0)

   ○ 如果字符串中包含有效的十六进制格式,例如”0xf“,则将其转换为相同大小的十进制整数值

   ○ 如果字符串是空的,则将其转换为0

   ○ 如果字符串中包含除了上述格式之外的字符,则将其转换为NaN

● 如果是对象,则调用对象的valueOf()方法,然后依照前面的规则转换返回的值。如果转换的结果是NaN,则调用对象的toString()方法,然后再依次按照前面的规则转换返回的字符串值。

var num1 = Number("Hello World");    //NaN
var num2 = Number("");                //0
var num3 = Number("000011");        //11
var num4 = Number(true);            //1
Nach dem Login kopieren

由于Number()函数在转换字符串时比较复杂而且不够合理,因此在处理整数的时候更常用的是parseInt()函数,而处理浮点数的时候常用parseFloat()函数。

5、String

String类型用于表示由零或多个16位Unicode字符组成的字符序列,即字符串。字符串可以由单引号(')或双引号(")表示。

var str1 = "Hello";
var str2 = 'Hello';
Nach dem Login kopieren

任何字符串的长度都可以通过访问其length属性取得

alert(str1.length);        //输出5
Nach dem Login kopieren

要把一个值转换为一个字符串有两种方式。第一种是使用几乎每个值都有的toString()方法。

var age = 11;
var ageAsString = age.toString();    //字符串"11"
var found = true;
var foundAsString = found.toString();    //字符串"true"
Nach dem Login kopieren

数值、布尔值、对象和字符串值都有toString()方法。但null和undefined值没有这个方法。

多数情况下,调用toString()方法不必传递参数。但是,在调用数值的toString()方法时,可以传递一个参数:输出数值的基数。

var num = 10;
alert(num.toString());      //"10"
alert(num.toString(2));     //"1010"
alert(num.toString(8));     //"12"
alert(num.toString(10));    //"10"
alert(num.toString(16));    //"a"
Nach dem Login kopieren

通过这个例子可以看出,通过指定基数,toString()方法会改变输出的值。而数值10根据基数的不同,可以在输出时被转换为不同的数值格式。

在不知道要转换的值是不是null或undefined的情况下,还可以使用转型函数String(),这个函数能够将任何类型的值转换为字符串。

String()函数遵循下列转换规则:

● 如果值有toString()方法,则调用该方法(没有参数)并返回相应的结果

● 如果值是null,则返回"null"

● 如果值是undefined,则返回”undefined“

6、object

对象其实就是一组数据和功能的集合。对象可以通过执行new操作符后跟要创建的对象类型的名称来创建。而创建Object类型的实例并为其添加属性和(或)方法,就可以创建自定义对象。

var o = new Object();

object类型所具有的任何属性和方法也同样存在于更具体的对象中,Object的每个实例都具有下列属性和方法:

● constructor(构造函数)——保存着用于创建当前对象的函数

● hasOwnProperty(propertyName)——用于检查给定的属性在当前对象实例中(而不是在实例的原型中)是否存在。其中,作为参数的属性名(propertyName)必须以字符串形式指定(例如:o.hasOwnProperty("name"))

● isPrototypeOf(object)——用于检查传入的对象是否是另一个对象的原型

● propertyIsEnumerable(propertyName)——用于检查给定的属性是否能够使用for-in语句来枚举

● toString()——返回对象的字符串表示

● valueOf()——返回对象的字符串、数值或布尔值表示。通常与toString()方法的返回值相同。

三、小测试

typeof(NaN)
typeof(Infinity)
typeof(null)
typeof(undefined)
Nach dem Login kopieren

很多面试都会问到上面几个小问题哒~~

以上就是这6种javascript数据类型的介绍了,小伙伴们是否了解清楚了呢,希望看完本文后大家能有所提高。更多相关教程请访问JavaScript视频教程

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!