Rumah  >  Artikel  >  hujung hadapan web  >  Adakah concat sintaks es6?

Adakah concat sintaks es6?

青灯夜游
青灯夜游asal
2022-10-18 17:02:471497semak imbas

concat bukan sintaks es6 Ia tersedia dalam es5 Kelebihannya ialah ia mempunyai keserasian yang tinggi dan tidak memerlukan terjemahan. Kaedah concat digunakan untuk menggabungkan berbilang tatasusunan, menggunakan sintaks "objek tatasusunan asal.concat(nilai baharu)"; kaedah ini boleh menerima parameter tatasusunan dan jenis nilai lain sebagai parameter. Kaedah concat akan menambah ahli tatasusunan baharu ke penghujung ahli tatasusunan asal, dan kemudian mengembalikan tatasusunan baharu, meninggalkan tatasusunan asal tidak berubah.

Adakah concat sintaks es6?

Persekitaran pengendalian tutorial ini: sistem Windows 7, ECMAScript versi 6, komputer Dell G3.

concat bukan sintaks es6, ia tersedia dalam es5.

Kaedah tatasusunan ES5 concat()

concat kaedah digunakan untuk menggabungkan berbilang tatasusunan . Ia menambahkan ahli tatasusunan baharu ke penghujung ahli tatasusunan asal, dan kemudian mengembalikan tatasusunan baharu, meninggalkan tatasusunan asal tidak berubah.

    Sila ambil perhatian bahawa kaedah
  • tidak mengubah suai concat() semasa, tetapi mengembalikan Array baharu. Array
['hello'].concat(['world'])
// ["hello", "world"]

['hello'].concat(['world'], ['!'])
// ["hello", "world", "!"]

[].concat({a: 1}, {b: 2})
// [{ a: 1 }, { b: 2 }]

[2].concat({a: 1})
// [2, {a: 1}]
Selain tatasusunan sebagai parameter,

juga menerima jenis nilai lain sebagai parameter, yang ditambahkan pada penghujung tatasusunan sasaran. concat

[1, 2, 3].concat(4, 5, 6)
// [1, 2, 3, 4, 5, 6]
    Malah, kaedah
  • boleh menerima sebarang bilangan elemen dan concat(), dan secara automatik memisahkan Array dan menambah kesemuanya pada Array baharu. Iaitu, jika parameter untuk operasi Array ialah tatasusunan, maka elemen dalam tatasusunan ditambah, bukan tatasusunan. concat()
var arr = ['A', 'B', 'C'];
arr.concat(1, 2, [3, 4]); // ['A', 'B', 'C', 1, 2, 3, 4]
Nota:

Parameter tatasusunan hanya akan diratakan sekali, bukan dua kaliconcat

arr.concat([1, [2, 3]]); // [1, 2, 3, 1, [2, 3]]
    Jika ahli tatasusunan termasuk objek,
  • Kaedah ini mengembalikan concatsalinan cetek tatasusunan semasa. Apa yang dipanggil "salinan cetek" bermaksud tatasusunan baharu menyalin rujukan objek .
var obj = { a: 1 };
var oldArray = [obj];

var newArray = oldArray.concat();

obj.a = 2;
newArray[0].a // 2
Dalam kod di atas, tatasusunan asal mengandungi objek, dan tatasusunan baharu yang dijana oleh kaedah

mengandungi rujukan kepada objek ini. Oleh itu, selepas concat menukar objek asal, tatasusunan baharu juga akan berubah .

Pengetahuan lanjutan: cara lain untuk menggabungkan tatasusunan

Gunakan operator hamparan ES6cantum

const name1 = ['A','B','C'];
        const name2 = ['D','E','F'];
        const name = [...name1,...name2]
        console.log(name);

Adakah concat sintaks es6?

Perbandingan: operator pengembangan ES6... dan ES5-concat

concat tersedia dalam es5, Kelebihannya ialah ia mempunyai keserasian tinggi dan tidak perlu diterjemahkan

ialah sintaks baharu dalam es6, yang memudahkan kaedah penulisan Kod itu kelihatan lebih ringkas dan intuitif, tetapi sebenarnya ia hanya dikapsulkan, dan kaedah asal masih digunakan di bahagian bawah , berikut adalah hasil terjemahan babel ...

arr1 = [...arr1, ...arr2];
  ↓ 相当于
function _toConsumableArray(arr) {
 if (Array.isArray(arr)) { 
   for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; 
   } else { return Array.from(arr); }
}
arr1 = [].concat(_toConsumableArray(arr1), arr2);
[Cadangan berkaitan:

tutorial video javascript, video pengaturcaraan]

Atas ialah kandungan terperinci Adakah concat sintaks es6?. 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