Rumah >hujung hadapan web >Soal Jawab bahagian hadapan >Apakah jenis data yang boleh dikembalikan oleh jenis JavaScript?

Apakah jenis data yang boleh dikembalikan oleh jenis JavaScript?

青灯夜游
青灯夜游asal
2021-12-08 16:58:3512947semak imbas

Dalam JavaScript, jenis data yang jenis pengendali boleh kembalikan ialah: "undefined", "objek", "boolean", "nombor", "rentetan", "simbol", "fungsi", dll.

Apakah jenis data yang boleh dikembalikan oleh jenis JavaScript?

Persekitaran pengendalian tutorial ini: sistem Windows 7, versi JavaScript 1.8.5, komputer Dell G3.

Gunakan operator typeof untuk mengembalikan jenis data pembolehubah.

Mari kita lihat nilai jenis yang sepadan dengan setiap jenis data:

数据类型 结果
Undefined “undefined”
Null “object”
布尔值 “boolean”
数值 “number”
字符串 “string”
Symbol (ECMAScript 6 新增) “symbol”
宿主对象(JS环境提供的,比如浏览器) Implementation-dependent
函数对象 “function”
任何其他对象 “object”

Lihat contoh khusus:

// Numbers
typeof 37 === 'number';
typeof 3.14 === 'number';
typeof Math.LN2 === 'number';
typeof Infinity === 'number';
typeof NaN === 'number'; // 尽管NaN是"Not-A-Number"的缩写,意思是"不是一个数字"
typeof Number(1) === 'number'; // 不要这样使用!

// Strings
typeof "" === 'string';
typeof "bla" === 'string';
typeof (typeof 1) === 'string'; // typeof返回的肯定是一个字符串
typeof String("abc") === 'string'; // 不要这样使用!

// Booleans
typeof true === 'boolean';
typeof false === 'boolean';
typeof Boolean(true) === 'boolean'; // 不要这样使用!

// Symbols
typeof Symbol() === 'symbol';
typeof Symbol('foo') === 'symbol';
typeof Symbol.iterator === 'symbol';

// Undefined
typeof undefined === 'undefined';
typeof blabla === 'undefined'; // 一个未定义的变量,或者一个定义了却未赋初值的变量

// Objects
typeof {a:1} === 'object';

// 使用Array.isArray或者Object.prototype.toString.call方法可以从基本的对象中区分出数组类型
typeof [1, 2, 4] === 'object';

typeof new Date() === 'object';

// 下面的容易令人迷惑,不要这样使用!
typeof new Boolean(true) === 'object';
typeof new Number(1) ==== 'object';
typeof new String("abc") === 'object';

// 函数
typeof function(){} === 'function';
typeof Math.sin === 'function';

Kita akan menemui masalah , iaitu Typeof sebenarnya tidak tepat untuk menentukan jenis data. Sebagai contoh, jenis nilai pulangan tatasusunan, ungkapan biasa, tarikh dan objek adalah semua objek, yang akan menyebabkan beberapa ralat.

Jadi berdasarkan jenis menilai jenis, kita juga perlu menggunakan kaedah Object.prototype.toString untuk menilai lagi jenis data.

Mari kita lihat perbezaan antara nilai pulangan kaedah toString dan kaedah jenis dalam kes jenis data yang sama:

数据 toString typeof
“foo” String string
new String(“foo”) String object
new Number(1.2) Number object
true Boolean boolean
new Boolean(true) Boolean object
new Date() Date object
new Error() Error object
new Array(1, 2, 3) Array object
/abc/g RegExp object
new RegExp(“meow”) RegExp object

Anda boleh melihat bahawa kaedah toString boleh digunakan untuk membezakan Array dan Ralat , RegExp, Tarikh dan jenis lain dengan betul.

Jadi kami biasanya menggunakan kaedah ini untuk mengesahkan jenis data.

[Cadangan berkaitan: tutorial pembelajaran javascript]

Atas ialah kandungan terperinci Apakah jenis data yang boleh dikembalikan oleh jenis JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn