Rumah  >  Artikel  >  hujung hadapan web  >  Jenis data nota kajian JavaScript

Jenis data nota kajian JavaScript

PHPz
PHPzasal
2016-05-16 16:20:04952semak imbas

Jenis data JavaScript sangat mudah, termasuk hanya undefined, null, rentetan, Boolean, nombor dan objek Hari ini kami akan menerangkan jenis data ini satu demi satu untuk memudahkan pemahaman dan ingatan semua orang.

1 Klasifikasi

Jenis data asas: undefined, null, rentetan, Boolean, nombor

Kompleks. Jenis data: objek

Atribut objek ditakrifkan dalam bentuk pasangan nama dan nilai yang tidak tersusun (nama: nilai)

2. Penjelasan terperinci

1. undefined: Jenis undefined hanya mempunyai satu nilai: undefined Apabila pembolehubah diisytiharkan menggunakan var tetapi tidak dimulakan, nilai pembolehubah ini tidak ditentukan.

Satu pembolehubah yang mengandungi. nilai yang tidak ditentukan adalah sama dengan Pembolehubah tidak ditentukan adalah berbeza Contoh berikut boleh menggambarkan:

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

2: Jenis nol hanya mempunyai satu nilai: nol sudut pandangan, nilai nol Mewakili penunjuk objek nol.

Jika pembolehubah yang ditakrifkan akan digunakan untuk memegang objek pada masa hadapan, adalah lebih baik untuk memulakan pembolehubah kepada null dan bukannya kepada nilai lain . Dengan cara ini, selagi nilai nol dikesan secara langsung, anda boleh mengetahui sama ada pembolehubah yang sepadan telah menyimpan rujukan kepada objek, contohnya:

 if(car != null)
    {
        //对car对象执行某些操作
    }
Malah, nilai yang tidak ditentukan diperoleh daripada nilai nol, jadi ECMA -262 menentukan bahawa ujian untuk kesamaan mereka harus kembali benar.

alert(undefined == null); //true
Walaupun null dan undefined mempunyai hubungan ini, penggunaannya berbeza sama sekali. Dalam apa jua keadaan tidak perlu untuk menetapkan secara eksplisit nilai pembolehubah kepada tidak ditentukan, tetapi peraturan yang sama tidak digunakan untuk null. Dalam erti kata lain, selagi pembolehubah yang bertujuan untuk memegang objek sebenarnya tidak memegang objek, anda harus secara eksplisit membiarkan pembolehubah itu memegang nilai nol. Melakukannya bukan sahaja mencerminkan konvensyen null sebagai penunjuk objek null, tetapi juga membantu untuk membezakan lagi null dan undefined.


3. Boolean:

Jenis Boolean mempunyai dua nilai: benar dan salah ini bukan perkara yang sama dengan angka nilai, jadi benar Ia tidak semestinya sama dengan 1, dan palsu tidak semestinya sama dengan 0.

Perlu diambil perhatian bahawa nilai literal jenis Boolean adalah sensitif huruf besar-besaran, iaitu, Benar dan Salah (dan bentuk huruf campuran lain) bukan nilai Boolean, hanya pengecam.

Walaupun terdapat hanya dua nilai literal jenis Boolean, semua jenis nilai dalam JavaScript mempunyai nilai yang setara dengan dua nilai Boolean ini. Untuk menukar nilai kepada nilai Boolean yang sepadan, anda boleh memanggil fungsi penukaran jenis Boolean(), sebagai contoh:

var message = 'Hello World';
    var messageAsBoolean = Boolean(message);
Dalam contoh ini, mesej rentetan ditukar kepada nilai Boolean, yang disimpan dalam pembolehubah messageAsBoolean. Fungsi Boolean() boleh dipanggil pada nilai mana-mana jenis data dan akan sentiasa mengembalikan nilai Boolean. Sama ada nilai yang dikembalikan adalah benar atau palsu, ia bergantung pada jenis data nilai yang hendak ditukar dan nilai sebenarnya. Jadual berikut memberikan peraturan penukaran untuk pelbagai jenis data dan objeknya.


Peraturan penukaran ini sangat penting untuk memahami penyataan kawalan aliran (seperti pernyataan if) dan secara automatik melaksanakan penukaran Boolean yang sepadan, contohnya:

var message = 'Hello World';
if(message)//相当于if(Boolean(message)==true) {
        alert("Value is true");//Value is true
}
Disebabkan kewujudan ini secara automatik melaksanakan penukaran Boolean, jadi adalah penting untuk mengetahui dengan tepat pembolehubah yang digunakan dalam pernyataan kawalan aliran.

4. Nombor: integer dan titik terapung

4.1 Integer: Apabila melakukan pengiraan, semua nombor perlapanan dan perenambelasan akan ditukar kepada perpuluhan

4.2 Titik terapung: Ketepatan tertinggi nilai titik terapung ialah 17 digit, jadi ketepatannya jauh lebih rendah daripada integer dalam pengiraan aritmetik Contohnya: hasil 0.1 0.2 bukan 0.3, tetapi 0.3000000000000004. Contohnya:

a=0.2;
b=0.1;
if(a+b==0.3){
alert("hello");
}
else{
alert("hi");
}
Hasilnya akan muncul "hai", jadi jangan uji nilai titik terapung tertentu.

4.3 NaN: Bukan Nombor Nilai ini digunakan untuk menunjukkan bahawa operan yang sepatutnya mengembalikan nilai berangka tidak mengembalikan nilai berangka (supaya ralat tidak akan dilemparkan).

NaN sendiri mempunyai dua ciri yang luar biasa. Pertama, sebarang operasi yang melibatkan NaN (seperti NaN/10) akan mengembalikan NaN, yang boleh menyebabkan masalah dalam pengiraan berbilang langkah. Kedua, NaN tidak sama dengan sebarang nilai, termasuk NaN itu sendiri. Contohnya:

alert(NaN == NaN);    //false
Terdapat fungsi isNaN() dalam JavaScript Fungsi ini menerima parameter, yang boleh daripada sebarang jenis dan fungsi itu akan membantu kami menentukan sama ada parameter itu "bukan angka. nilai". Selepas isNaN() menerima nilai, ia akan cuba menukar nilai itu kepada nilai berangka. Sesetengah nilai yang bukan angka ditukar terus kepada nilai angka, seperti rentetan "10" atau nilai Boolean. Sebarang nilai yang tidak boleh ditukar kepada nilai angka akan menyebabkan fungsi ini kembali benar. Contohnya,

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)
mempunyai tiga fungsi yang boleh menukar nilai bukan angka kepada nilai angka: Number(), parseInt() dan parseFloat(). Fungsi pertama, fungsi penukaran Number(), boleh digunakan untuk sebarang jenis data, manakala dua fungsi lain digunakan secara khusus untuk menukar rentetan kepada nombor. Ketiga-tiga fungsi ini akan mengembalikan hasil yang berbeza untuk input yang sama.

Peraturan penukaran fungsi Number() adalah seperti berikut:

● Jika nilai Boolean, benar dan palsu akan digantikan dengan 1 dan 0 masing-masing

● Jika ia adalah nilai berangka, Hanya masukkan dan kembalikan

● Jika ia adalah nilai nol, kembalikan 0

● Jika ia tidak ditentukan, kembalikan NaN

● Jika ia adalah rentetan, ikut peraturan berikut:

   ○ 如果字符串中只包含数字,则将其转换为十进制数值,即”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

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

5、String

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

var str1 = "Hello";
var str2 = 'Hello';

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

alert(str1.length);        //输出5

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

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

数值、布尔值、对象和字符串值都有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"

通过这个例子可以看出,通过指定基数,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)

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

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

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
Artikel sebelumnya:contoh nod mudah alih jqueryArtikel seterusnya:contoh nod mudah alih jquery