Rumah  >  Artikel  >  hujung hadapan web  >  Apakah jenis data asas javascript?

Apakah jenis data asas javascript?

藏色散人
藏色散人asal
2021-09-01 14:29:2012559semak imbas

Javascript mempunyai 5 jenis data asas, iaitu: 1. Undefined type; 3. Boolean type;

Apakah jenis data asas javascript?

Persekitaran pengendalian artikel ini: sistem Windows 7, versi JavaScript 1.8.5, komputer DELL G3.

Apakah jenis data asas js? Terdapat 5 jenis data ringkas (juga dipanggil jenis data asas) dalam

ECMAScript: Undefined, Null, Boolean, Number dan String. Terdapat juga satu jenis data yang kompleks——Object, Object pada asasnya terdiri daripada satu set pasangan nilai nama yang tidak tertib.

Antaranya Undefined, Null, Boolean dan Number adalah semua jenis asas. Object, Array dan Function ialah jenis rujukan String agak istimewa.

Pembolehubah

ECMAScript menggunakan kata kunci var untuk mentakrifkan pembolehubah Disebabkan js ditaip dengan lemah, adalah mustahil untuk menentukan nilai yang akan disimpan oleh pembolehubah, jadi kami tidak Apakah jenis pembolehubah itu, dan jenis pembolehubah boleh diubah pada bila-bila masa.

Inilah sebabnya ECMAScript ialah jenis longgar Apa yang dipanggil jenis longgar bermaksud ia boleh digunakan untuk menyimpan sebarang jenis data.

ps:
es6 telah menambah perintah let untuk mengisytiharkan pembolehubah dan perintah const untuk mengisytiharkan pemalar baca sahaja. Penggunaan

let adalah serupa dengan var, tetapi pembolehubah yang diisytiharkan hanya sah dalam blok kod tempat perintah let terletak.

constSetelah diisytiharkan, nilai pemalar tidak boleh diubah.

Tiada perbincangan di sini tentang let dan const.

jenis operator

Memandangkan pembolehubah dalam js ditaip secara longgar, ia menyediakan cara untuk mengesan jenis data pembolehubah semasa, iaitu jenis kata kunci .
Menggunakan kata kunci typeof, nilai berikut (dipaparkan dalam bentuk rentetan) akan dikembalikan untuk lima jenis data
undefined ---------- Jika nilai tidak ditentukan                            Jika Ini nilai ialah rentetan Undefined

boolean - ---------- Jika nilai ini ialah jenis angka - - ----- Jika nilai ini ialah objek atau Boolean

string perlu diambil perhatian bahawa String dikembalikan sebagai

kerana nilai istimewa

dianggap sebagai rujukan objek kosong. Jenis numberNumberUndefined

object hanya mempunyai satu nilai, iaitu null istimewa. Apabila pembolehubah diisytiharkan menggunakan Object tetapi tidak dimulakan, nilai pembolehubah ialah

. Walau bagaimanapun, secara amnya disyorkan untuk memulakan pembolehubah sebanyak mungkin Walau bagaimanapun, nilai

tidak dinyatakan dalam versi typeof null yang lebih awal, jadi dalam sesetengah rangka kerja, agar serasi dengan penyemak imbas yang lebih lama, object. nilai akan ditambahkan pada objek null . Jenis

Null

Undefinedundefined ialah jenis data kedua yang hanya mempunyai satu nilai, nilai istimewa ini ialah var. Dari sudut pandangan logik, nilai undefined mewakili penunjuk objek nol, itulah sebabnya menggunakan operator js untuk mengesan undefined mengembalikan window. undefined

window['undefined'] = window['undefined'];  
//或者
window.undefined = window.undefined;
Jika pembolehubah yang ditentukan akan digunakan untuk memegang objek pada masa hadapan, adalah lebih baik untuk memulakan pembolehubah kepada

daripada kepada nilai lain. Dengan cara ini, anda boleh mengetahui sama ada pembolehubah yang sepadan sudah memegang rujukan kepada objek dengan mengesan secara langsung nilai

.

Contohnya: NullnullnullMalah, nilai yang tidak ditentukan diperoleh daripada nilai nol, jadi ECMA-262 menetapkan bahawa ujian kesamaan untuk mereka harus kembali benar. typeofnullobjectWalaupun 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.

Boolean

该类型只有两个字面值:true和false。这两个值与数字值不是一回事,因此true不一定等于1,而false也不一定等于0。

虽然Boolean类型的字面值只有两个,但JavaScript中所有类型的值都有与这两个Boolean值等价的值。要将一个值转换为其对应的Boolean值,可以调用类型转换函数Boolean(),例如:

    var message = 'Hello World';
    var messageAsBoolean = Boolean(message);

在这个例子中,字符串message被转换成了一个Boolean值,该值被保存在messageAsBoolean变量中。可以对任何数据类型的值调用Boolean()函数,而且总会返回一个Boolean值。至于返回的这个值是true还是false,取决于要转换值的数据类型及其实际值。下表给出了各种数据类型及其对象的转换规则。

数据类型 转换为true的值 转换为false的值
Boolean true false
String 任何非空的字符串 ""(空字符串)
Number 任何非0数值(包括无穷大) 0和NAN
Object 任何对象 null
Undefined 不适用 undefined
    var message = 'Hello World';
    if(message)
    {
        alert("Value is true");
    }

运行这个示例,就会显示一个警告框,因为字符串message被自动转换成了对应的Boolean值(true)。由于存在这种自动执行的Boolean转换,因此确切地知道在流控制语句中使用的是什么变量至关重要。

ps:使用!!操作符转换布尔值
!!一般用来将后面的表达式强制转换为布尔类型的数据(boolean),也就是只能是true或者false;

对null与undefined等其他用隐式转换的值,用!操作符时都会产生true的结果,所以用两个感叹号的作用就在于将这些值转换为“等价”的布尔值;

var foo;  
alert(!foo);//undifined情况下,一个感叹号返回的是true;  
alert(!goo);//null情况下,一个感叹号返回的也是true;  
var o={flag:true};  
var test=!!o.flag;//等效于var test=o.flag||false;  
alert(test);

这段例子,演示了在undifined和null时,用一个感叹号返回的都是true,用两个感叹号返回的就是false,所以两个感叹号的作用就在于,如果明确设置了变量的值(非null/undifined/0/”“等值),结果就会根据变量的实际值来返回,如果没有设置,结果就会返回false。

【推荐学习:javascript基础教程

Number

这种类型用来表示整数和浮点数值,还有一种特殊的数值,即NaN(非数值 Not a Number)。这个数值用于表示一个本来要返回数值的操作数未返回数值的情况(这样就不会抛出错误了)。例如,在其他编程语言中,任何数值除以0都会导致错误,从而停止代码执行。但在JavaScript中,任何数值除以0会返回NaN,因此不会影响其他代码的执行。

NaN本身有两个非同寻常的特点。首先,任何涉及NaN的操作(例如NaN/10)都会返回NaN,这个特点在多步计算中有可能导致问题。其次,NaN与任何值都不相等,包括NaN本身。例如,下面的代码会返回false。

alert(NaN == NaN);    //false

String

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

String类型的特殊性

string类型有些特殊,因为字符串具有可变的大小,所以显然它不能被直接存储在具有固定大小的变量中。由于效率的原因,我们希望JS只复制对字符串的引用,而不是字符串的内容。但是另一方面,字符串在许多方面都和基本类型的表现相似,而字符串是不可变的这一事实(即没法改变一个字符串值的内容),因此可以将字符串看成行为与基本类型相似的不可变引用类型

Boolean、Number、String 这三个是Javascript中的基本包装类型,也就是这三个其实是一个构造函数,他们是Function的实例,是引用类型,至于这里的String与以上说的String是同名,是因为其实上文说的String是指字符串,这里的String指的是String这个构造函数,上面那么写,是为了更好的理解,因为Javascript是松散类型的。我们可以看下String实例化的例子:

var name = String("jwy");
alert(typeof name);//"string"
var x=new String('12345')
typeof x //object
x='12345'
typeof x //string
var author = "Tom";
alert(typeof name);//"string"

至于author这个会有length,substring等等这些方法,其实string只是String的一个实例,类似于C#中的String,和string.

注意,typeof 变量  如果值是"string" 的话,也就是这个变量是字符串,在Javascript中,字符串是基本类型,而在C#或Java中,字符串是引用类型,但是Javascript中的String是引用类型,因为它是Javascript中定义好的基本包装类型,在C#中,String跟string其实是一样的。

本帖只是简要的copy了一些JavaScript高级程序设计(第三版)内容,外加了自己侧重的角度,看本帖的朋友还是要看书啊,这里只是做个参考。

Atas ialah kandungan terperinci Apakah jenis data asas 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