Heim > CMS-Tutorial > WordDrücken Sie > Verwenden Sie einfache Zeichenfolgen, Zahlen und boolesche Werte

Verwenden Sie einfache Zeichenfolgen, Zahlen und boolesche Werte

PHPz
Freigeben: 2023-08-29 18:25:02
Original
1100 Leute haben es durchsucht

Verwenden Sie einfache Zeichenfolgen, Zahlen und boolesche Werte

Lassen Sie sich nicht durch die Tatsache verwirren, dass Zeichenfolgen, Zahlen und boolesche Literale als Objekte mit Eigenschaften betrachtet werden können (z. B. true.toString()). Wenn diese Grundwerte als Objekte behandelt werden, indem versucht wird, auf ihre Eigenschaften zuzugreifen, erstellt JavaScript aus dem dem Grundelement zugeordneten Konstruktor ein Wrapper-Objekt, sodass auf die Eigenschaften und Methoden des Wrapper-Objekts zugegriffen werden kann.

Sobald auf die Eigenschaft zugegriffen wird, wird das Wrapper-Objekt verworfen. Diese Konvertierung ermöglicht es uns, Code zu schreiben, der so aussieht, als ob der ursprüngliche Wert tatsächlich ein Objekt wäre. Um ehrlich zu sein: Wenn es im Code als Objekt behandelt wird, konvertiert JavaScript es in ein Objekt, damit der Zugriff auf Eigenschaften funktioniert, und konvertiert es dann nach der Rückgabe des Werts wieder in den ursprünglichen Wert. Das Wichtigste, was Sie hier beachten sollten, ist, was vor sich geht, und JavaScript erledigt das hinter den Kulissen für Sie.


Originalwertmuster

Hier sind einige Beispiele, um zu veranschaulichen, wovon ich spreche:

String-Beispiel: sample56.html

<!DOCTYPE html><html lang="en"><body><script>

	// String object treated like an object.
	var stringObject = new String('foo');
	console.log(stringObject.length); // Logs 3.
	console.log(stringObject['length']); // Logs 3.

	// String literal/primitive converted to an object when treated as an object.
	var stringLiteral = 'foo';
	console.log(stringLiteral.length); // Logs 3.
	console.log(stringLiteral['length']); // Logs 3.
	console.log('bar'.length); // Logs 3.
	console.log('bar'['length']); // Logs 3.

</script></body></html>
Nach dem Login kopieren

Numerisches Beispiel: sample57.html

<!DOCTYPE html><html lang="en"><body><script>

	// Number object treated like an object.
	var numberObject = new Number(1.10023);
	console.log(numberObject.toFixed()); // Logs 1.
	console.log(numberObject['toFixed']()); // Logs 1.

	// Number literal/primitive converted to an object when treated as an object.
	var numberLiteral = 1.10023;
	console.log(numberLiteral.toFixed()); // Logs 1.
	console.log(numberLiteral['toFixed']()); // Logs 1.
	console.log((1234).toString()); // Logs '1234'.
	console.log(1234['toString']()); // Logs '1234'.

</script></body></html>
Nach dem Login kopieren

Boolesches Beispiel: sample58.html

<!DOCTYPE html><html lang="en"><body><script>

	// Boolean object treated like an object.
	var booleanObject = new Boolean(0);
	console.log(booleanObject.toString()); // Logs 'false'.
	console.log(booleanObject['toString']()); // Logs 'false'.

	// Boolean literal/primitive converted to an object when treated as an object.
	var booleanLiteral = false;
	console.log(booleanLiteral.toString()); // Logs 'false'.
	console.log(booleanLiteral['toString']()); // Logs 'false'.
	console.log((true).toString()); // Logs 'true'.
	console.log(true['toString']()); // Logs 'true'.

</script></body></html>
Nach dem Login kopieren

Beim direkten Zugriff auf die Eigenschaften einer Rohzahl (nicht in einer Variablen gespeichert) muss die Zahl berechnet werden, bevor der Wert als Objekt behandelt werden kann (z. B. (1).toString();1..toString();). Warum zwei Punkte? Der erste Punkt wird als numerische Dezimalzahl behandelt und nicht als Operator für den Zugriff auf die Eigenschaften des Objekts.


Im Allgemeinen sollten Sie rohe Zeichenfolgen, Zahlen und Boolesche Werte verwenden

Literal-/Rohwerte, die Zeichenfolgen, Zahlen oder boolesche Werte darstellen, werden schneller und in einer prägnanteren Literalform geschrieben.

Daher sollten Sie Literalwerte verwenden. Außerdem typeof 运算符的准确性取决于您创建值的方式(文字与构造函数调用)。如果您创建字符串、数字或布尔对象,则 typeof 运算符会将类型报告为对象。如果您使用文字,则 typeof 运算符将返回实际值类型的字符串名称(例如,typeof 'foo' // returns 'string').

Ich demonstriere diese Tatsache im folgenden Code.

Beispiel: sample59.html

<!DOCTYPE html><html lang="en"><body><script>

	// String, number, and Boolean objects.
	console.log(typeof new String('foo')); // Logs 'object'.
	console.log(typeof new Number(1)); // Logs 'object'.
	console.log(typeof new Boolean(true)); // Logs 'object'.

	// String, number, and Boolean literals/primitives.
	console.log(typeof 'foo'); // Logs 'string'.
	console.log(typeof 1); // Logs 'number'.
	console.log(typeof true); // Logs 'boolean'.

</script></body></html>
Nach dem Login kopieren

Fazit

Wenn Ihr Programm vom typeof 运算符来根据这些基本类型识别字符串、数字或布尔值,则应避免使用 StringNumberBoolean Konstruktor abhängt.

Das obige ist der detaillierte Inhalt vonVerwenden Sie einfache Zeichenfolgen, Zahlen und boolesche Werte. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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