Beberapa tingkah laku aneh petua JavaScript arrays_javascript
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!"]
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!"]
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 />}
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); //[]
Jika anda hanya melepasi nombor titik terapung, ralat akan dilaporkan:
var a = new Array(1.1); //Uncaught RangeError: Invalid array length(…)
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"]
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
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
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
Agak serupa dengan contoh di bawah:
var a = [1, 2, 3, 4]; a[99] = undefined; console.log(a.length); //100
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
Perkara di atas telah berkongsi dengan anda beberapa kelakuan aneh tatasusunan JavaScript Harap maafkan saya jika artikel itu tidak ditulis dengan baik, terima kasih!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

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.

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) ".

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.

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 4 cara untuk memadam elemen daripada tatasusunan js, iaitu: 1. Gunakan splice;

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.

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})".

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.
