Rumah hujung hadapan web tutorial js Beberapa tingkah laku aneh petua JavaScript arrays_javascript

Beberapa tingkah laku aneh petua JavaScript arrays_javascript

May 16, 2016 pm 03:18 PM
tatasusunan js

Kepentingan tatasusunan dalam bahasa pengaturcaraan terbukti dengan sendirinya. Tatasusunan dalam JavaScript juga merupakan salah satu objek yang paling biasa digunakan . Tidak seperti tatasusunan dalam bahasa peringkat tinggi yang ditaip kuat seperti Java, yang hanya boleh menyimpan unsur jenis yang sama atau subjenisnya, JavaScript boleh menyimpan pelbagai jenis elemen dalam tatasusunan yang sama, dan panjangnya juga boleh dilaraskan secara dinamik, apabila data bertambah atau Kurangkan perubahan automatik kepada panjang tatasusunan.

Hari ini, saya menyemak tatasusunan JavaScript, dan kemudian meringkaskan beberapa tingkah laku peliknya, saya akan berkongsi dengan anda di sini.

Pelik 1: Fungsi pembina Array() boleh dipanggil tanpa menggunakan kata kunci baharu:

Pembina Array() menggunakan parameter yang dihantar kepadanya sebagai elemen tatasusunan untuk mencipta tatasusunan Secara amnya, kami memanggilnya seperti berikut:

var a = new Array(1, 2, "bom!");
a.length; //3
console.log(a); //[1, 2, "bom!"] 
Salin selepas log masuk

Walau bagaimanapun, adalah mungkin juga untuk meninggalkan yang baharu, seperti berikut:

var a = Array(1, 2, "bom!");
a.length; //3
console.log(a); //[1, 2, "bom!"] 
Salin selepas log masuk

Walaupun saya tidak tahu apakah mekanisme pelaksanaan dalamannya, saya rasa fungsi pembinanya boleh ditakrifkan seperti berikut:

function Array(args) {
//如果,this不是Array的实例的话,
//说明不是通过new调用的,则在这里再重新调用
if( !this instanceof Array) {
return new Array(args);
}//后面是正常调用时的实现代码<br />//...<br />} 
Salin selepas log masuk

Pelik 2: Apabila hanya satu parameter dihantar kepada pembina, tingkah laku tidak dapat diramalkan

Jika hanya satu parameter diluluskan, dan parameter ini ialah integer, tatasusunan akan diperoleh dan panjangnya adalah sama dengan parameter ini

var a = new Array(12);
console.log(a.length); //12
console.log(a); //[] 
Salin selepas log masuk

Jika anda hanya melepasi nombor titik terapung, ralat akan dilaporkan:

var a = new Array(1.1); //Uncaught RangeError: Invalid array length(…) 
Salin selepas log masuk

Melalui rentetan akan berfungsi dengan baik, dengan rentetan sebagai elemen pertama tatasusunan:

var a = new Array("1.1");
console.log(a.length); //
console.log(a); //["1.1"] 
Salin selepas log masuk

Tetapi untuk mengelakkan kekaburan, saya cadangkan yang terbaik adalah untuk mencipta tatasusunan secara langsung dalam bentuk literal:

var a = []; //空数组
var a = [1, 1, "bom"]; //三个元素
var a = [12]; //一个元素,并且元素是12 
Salin selepas log masuk

Pelik 3: Atribut panjang tatasusunan boleh diubah suai (boleh ditulis)

Seperti berikut, kami terus menukar panjang daripada 2 kepada 100, dan pengubahsuaian itu berjaya! ! !

var a = [1, 2, 3, 4];
console.log(a.length); //4
a.length = 100; 
console.log(a.length); //100 
Salin selepas log masuk

Walaupun panjang bersamaan dengan 100, unsur a[4]-a[99] tidak wujud dan jika anda meminta nilainya, sebagai contoh, lakukannya dalam gelung dari 0 hingga a.panjang, maka akan menjadi tidak ditentukan .

Tonton seterusnya:

var a = [1, 2, 3, 4];
a.length = 100;
console.log(a[10]); //undefined
console.log(99 in a); //false 
Salin selepas log masuk

Agak serupa dengan contoh di bawah:

var a = [1, 2, 3, 4];
a[99] = undefined;
console.log(a.length); //100 
Salin selepas log masuk

Perbezaannya ialah a[99] di sini wujud kerana kami menciptanya, walaupun ia mempunyai nilai yang tidak ditentukan. Tetapi semua elemen daripada a[4] hingga a[98] tidak wujud, seperti berikut:

var a = [1, 2, 3, 4];
a[99] = undefined;
console.log(99 in a); //true;
console.log(98 in a); //false
console.log(a.length); //100 
Salin selepas log masuk

Perkara di atas telah berkongsi dengan anda beberapa kelakuan aneh tatasusunan JavaScript Harap maafkan saya jika artikel itu tidak ditulis dengan baik, terima kasih!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk mengalih keluar elemen dari tatasusunan es6 Bagaimana untuk mengalih keluar elemen dari tatasusunan es6 Jan 11, 2023 pm 03:51 PM

Kaedah: 1. Gunakan shift() untuk memadam elemen pertama, sintaksnya ialah "array.shift()"; 2. Gunakan pop() untuk memadam elemen terakhir, sintaksnya ialah "array.pop()"; Gunakan splice() untuk memadamkan Elemen di mana-mana kedudukan, sintaksnya ialah "array.splice(position, number)" 4. Gunakan panjang untuk memadam elemen N terakhir, sintaks ialah "array.length=original array length-N"; ; 5. Tetapkan tatasusunan kosong "[ ]" untuk mengosongkan elemen 6. Gunakan padam untuk memadamkan elemen pada subskrip yang ditentukan.

Bagaimana untuk menukar rentetan kepada tatasusunan dalam javascript Bagaimana untuk menukar rentetan kepada tatasusunan dalam javascript Nov 23, 2022 pm 07:28 PM

3 kaedah penukaran: 1. Gunakan split() untuk memisahkan rentetan yang diberikan kepada tatasusunan rentetan, sintaksnya ialah "str.split (pemisah, panjang maksimum tatasusunan)" 2. Gunakan operator pengembangan "... ", boleh diulang objek rentetan, tukarkannya kepada tatasusunan aksara, sintaks "[...str]" 3. Gunakan Array.from() untuk menukar rentetan itu kepada tatasusunan, sintaks "Array.from(str) ".

Bagaimana untuk mendapatkan panjang tatasusunan dalam js Bagaimana untuk mendapatkan panjang tatasusunan dalam js Jun 20, 2023 pm 05:33 PM

Mendapatkan panjang tatasusunan dalam JS adalah sangat mudah Setiap tatasusunan mempunyai sifat panjang, yang mengembalikan panjang maksimum tatasusunan, iaitu nilainya bersamaan dengan nilai subskrip maksimum ditambah 1. Oleh kerana subskrip berangka mestilah kurang daripada 2^32-1, nilai maksimum atribut panjang adalah sama dengan 2^32-1. Kod berikut mentakrifkan tatasusunan kosong, dan kemudian memberikan nilai kepada elemen dengan indeks sama dengan 100, kemudian sifat panjang mengembalikan 101. Oleh itu, atribut panjang tidak boleh mencerminkan bilangan sebenar elemen tatasusunan.

Bolehkah tatasusunan js ditukar kepada tatasusunan php? Bolehkah tatasusunan js ditukar kepada tatasusunan php? Jun 02, 2023 am 10:06 AM

Tatasusunan js boleh ditukar kepada tatasusunan php Kaedah operasi ialah: 1. Cipta fail sampel php 2. Gunakan sintaks "JSON.stringify()" untuk menukar tatasusunan js kepada rentetan dalam format JSON; Gunakan sintaks "json_decode()" "Tukar rentetan format JSON kepada tatasusunan PHP. Parameter benar ditambahkan di sini, yang bermaksud bahawa rentetan format JSON ditukar kepada tatasusunan bersekutu PHP.

Terdapat beberapa cara untuk memadamkan elemen daripada tatasusunan js Terdapat beberapa cara untuk memadamkan elemen daripada tatasusunan js Aug 02, 2023 am 10:09 AM

Terdapat 4 cara untuk memadam elemen daripada tatasusunan js, iaitu: 1. Gunakan splice;

Pengisihan tatasusunan JS: cara menggunakan kaedah sort(). Pengisihan tatasusunan JS: cara menggunakan kaedah sort(). Dec 27, 2023 pm 03:40 PM

Kaedah Array.prototype.sort() JavaScript digunakan untuk mengisih elemen tatasusunan. Kaedah ini disusun mengikut tempatnya, iaitu, ia mengubah suai tatasusunan asal dan bukannya mengembalikan tatasusunan diisih baharu. Secara lalai, kaedah sort() mengisih rentetan mengikut nilai titik kod Unicode mereka. Ini bermakna ia digunakan terutamanya untuk mengisih rentetan dan nombor, bukannya untuk mengisih objek atau jenis data kompleks lain.

Bagaimana untuk mencari panjang dan jumlah elemen tatasusunan dalam JavaScript Bagaimana untuk mencari panjang dan jumlah elemen tatasusunan dalam JavaScript Sep 20, 2022 pm 02:11 PM

Dalam JavaScript, anda boleh menggunakan atribut panjang untuk mendapatkan panjang tatasusunan, sintaks ialah "objek.length tatasusunan" anda boleh menggunakan fungsi reduce() atau reduceRight() untuk mencari jumlah elemen, sintaksnya ialah "; arr.reduce(fungsi f(pra,curr){ return pra curr})" atau "arr.reduceRight(fungsi f(pra,curr){return pra curr})".

Bagaimana untuk menukar tatasusunan js kepada tatasusunan php Bagaimana untuk menukar tatasusunan js kepada tatasusunan php Mar 22, 2023 am 11:24 AM

Dalam pembangunan web, memandangkan JavaScript (JS) dan PHP adalah dua bahasa pengaturcaraan yang paling biasa digunakan, tatasusunan tidak dapat dielakkan dalam proses pembangunan. Sebagai tindak balas kepada situasi ini, banyak kali kita perlu menukar tatasusunan JS kepada tatasusunan PHP. Terdapat banyak cara untuk mencapai fungsi ini, yang akan diperkenalkan satu persatu di bawah.

See all articles