Nilai primitif dan kompleks dalam petua JavaScript_javascript

WBOY
Lepaskan: 2016-05-16 15:21:24
asal
1019 orang telah melayarinya

Perkataan sebelumnya

Jenis data JavaScript boleh dibahagikan kepada dua jenis: jenis primitif dan jenis rujukan. Jenis primitif juga dipanggil jenis asas atau jenis mudah Jenis data asas JavaScript termasuk jenis Undefined, Null, Boolean, Number dan String juga dipanggil jenis kompleks, iaitu Object dalam Javascript. Sejajar dengan itu, nilai mereka juga dipanggil nilai primitif dan nilai kompleks masing-masing

Ciri-ciri

Nilai primitif

Ringkasnya: nilai primitif ialah nilai tetap dan mudah, iaitu segmen data ringkas yang disimpan dalam timbunan, iaitu, nilainya disimpan terus di lokasi akses berubah.

Nilai primitif ialah bentuk paling rendah atau paling ringkas yang mewakili data atau maklumat yang tersedia dalam Javascript. Nilai jenis primitif dipanggil nilai primitif kerana ia tidak boleh dikurangkan. Maksudnya, nombor ialah nombor, aksara ialah aksara, nilai Boolean adalah benar atau salah, dan null dan undefined adalah null dan undefined. Nilai itu sendiri adalah mudah dan tidak boleh mewakili nilai yang terdiri daripada nilai lain

Apakah jenis jenis primitif?

Jenis primitif mempunyai lima jenis berikut: Undefined, Null, Boolean, Number, String

Kita boleh menggunakan typeof untuk menentukan sama ada sesuatu jenis berada dalam skop jenis tertentu.

jenis pengendali

Menggunakan operator jenis pada pembolehubah atau nilai akan mengembalikan salah satu daripada nilai berikut:

Nota:

1. Nilai pulangan ialah jenis rentetan.

2. Berbanding dengan jenis asal, masih terdapat perbezaan nol Ini agak istimewa

Nilai kompleks

Nilai kompleks boleh terdiri daripada pelbagai jenis objek JavaScript. Saiz objek kompleks dalam ingatan tidak diketahui kerana objek kompleks boleh mengandungi sebarang nilai dan bukannya nilai tertentu yang diketahui


Kaedah penyimpanan

Storan tindanan

Memandangkan nilai asal menduduki ruang tetap dan merupakan segmen data ringkas, untuk meningkatkan kelajuan pertanyaan berubah-ubah, ia disimpan dalam tindanan


Storan timbunan

Memandangkan saiz nilai kompleks akan berubah, ia tidak boleh disimpan pada timbunan, jika tidak, ia akan mengurangkan kelajuan pertanyaan berubah, jadi ia disimpan dalam timbunan (timbunan Nilai yang disimpan dalam pembolehubah ialah penunjuk). menunjuk ke objek storan Lokasi memori


Kaedah akses

Akses mengikut nilai

Nilai primitif disimpan dan dimanipulasi sebagai nilai tidak boleh dikurangkan, merujuknya untuk memindahkan nilainya


var myString = 'foo';
var myStringCopy = myString;
var myString = null;
console.log(myString,myStringCopy);//null,'foo' 
Salin selepas log masuk

Lawatan petikan

Nilai kompleks disimpan dan dimanipulasi dengan rujukan, bukan nilai sebenar. Apabila anda mencipta pembolehubah yang mengandungi objek kompleks, nilainya ialah alamat rujukan dalam ingatan. Apabila merujuk objek kompleks, gunakan namanya (iaitu pembolehubah atau harta objek) untuk mendapatkan nilai objek melalui alamat rujukan dalam ingatan


var myObject = {};
var copyOfMyObject = myObject;//没有复制值,而是复制了引用
myObject.foo = 'bar';//操作myObject中的值
//现在如果输出myObject和copyOfMyObject,则都会输出foo属性,因为它们引用的是同一个对象
console.log(myObject,copyOfMyObject);//Object{foo="bar"} 
Salin selepas log masuk

Perbandingan

Nilai primitif menggunakan perbandingan nilai, manakala nilai kompleks menggunakan perbandingan rujukan. Nilai kompleks hanya sama jika ia merujuk kepada objek yang sama (iaitu mempunyai alamat yang sama). Malah dua pembolehubah yang mengandungi objek yang sama tidak sama antara satu sama lain kerana ia tidak menunjuk ke objek yang sama

var price1 = 10;
var price2 = 10;
var price3 = new Number('10');
var price4 = price3;
console.log(price1 == price2);//true
console.log(price1 == price3);//false
price4 = 10;
console.log(price4 == price3);//true
console.log(price4 === price3);//false 
var objectFoo = {same:'same'};
var objectBar = {same:'same'};
console.log(objectFoo == objectBar);//false
var objectA = {foo: 'bar'};
var objectB = objectA;
console.log(objectA == objectB);//true 
Salin selepas log masuk

Atribut dinamik

Untuk nilai kompleks, anda boleh menambah sifat dan kaedah padanya, dan anda juga boleh menukar dan memadam sifat dan kaedahnya; tetapi nilai mudah tidak boleh menambah sifat dan kaedah


Nilai kompleks menyokong sifat objek dinamik kerana kita boleh mentakrifkan objek, kemudian mencipta rujukan, kemudian mengemas kini objek, dan semua pembolehubah yang menunjuk ke objek akan dikemas kini. Pembolehubah baharu menunjuk ke objek kompleks sedia ada, dan objek itu tidak disalin. Inilah sebabnya mengapa nilai kompleks kadang-kadang dipanggil nilai rujukan. Nilai kompleks boleh mempunyai seberapa banyak rujukan yang diperlukan, dan ia sentiasa menunjuk ke objek yang sama walaupun objek berubah


var str = 'test';
str.property = true;
console.log(str.property);//undefined  
var objA = {property: 'value'};
var pointer1 = objA;
var pointer2 = pointer1;
objA.property = null;
console.log(objA.property,pointer1.property,pointer2.property);//null null null 
Salin selepas log masuk

Type d'emballage

Lorsqu'une valeur primitive est utilisée comme objet créé par le constructeur, Javascript la convertira en objet afin que les propriétés et méthodes de l'objet puissent être utilisées, puis supprimera les propriétés de l'objet et la restituera à la valeur primitive.

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!