Jenis data JavaScript dibahagikan kepada jenis primitif dan jenis rujukan. Jenis primitif termasuk rentetan, nombor, boolean, null, undefined, dan simbol. Nilai -nilai itu tidak berubah dan salinan salinan apabila ditugaskan, jadi mereka tidak mempengaruhi satu sama lain; Jenis rujukan seperti objek, tatasusunan dan fungsi menyimpan alamat memori, dan pembolehubah menunjuk objek yang sama akan mempengaruhi satu sama lain. Typeof dan Instanceof boleh digunakan untuk menentukan jenis, tetapi memberi perhatian kepada masalah sejarah Null Typeof. Memahami kedua -dua jenis perbezaan ini dapat membantu menulis kod yang lebih stabil dan boleh dipercayai.
Jenis data JavaScript dibahagikan kepada dua kategori: primitif dan rujukan. Memahami perbezaan di antara mereka adalah penting untuk menulis kod yang lebih stabil dan boleh diramal.

Jenis primitif adalah nilai yang tidak berubah
Terdapat enam jenis data primitif dalam JavaScript: string
, number
, boolean
, null
, undefined
, dan symbol
(baru dalam ES6). Jenis nilai ini tidak berubah, yang bermaksud bahawa anda tidak boleh mengubah nilai asal itu sendiri, anda hanya boleh menggantikannya dengan nilai baru.
Contohnya:

biarkan nama = "tom"; name.toUpperCase (); // mengembalikan "tom", tetapi nama itu sendiri masih "tom"
Ini bermakna operasi jenis asal tidak akan mengubah nilai asal, tetapi akan mengembalikan nilai baru. Apabila anda memberikan jenis primitif kepada pemboleh ubah lain, anda sebenarnya menyalin salinan nilai ini:
biarkan a = 10; biarkan b = a; b = 20; Console.log (A); // masih 10
Oleh itu, tugasan dan operasi jenis asal adalah bebas dan tidak menjejaskan satu sama lain.

Jenis rujukan menunjuk ke alamat memori
Jenis rujukan terutamanya termasuk objek (objek), tatasusunan (array) dan fungsi (fungsi). Mereka menyimpan "rujukan" ke lokasi dalam ingatan, bukan data sebenar itu sendiri.
Lihat contoh:
biarkan obj1 = {name: "Alice"}; biarkan obj2 = obj1; obj2.name = "bob"; console.log (obj1.name); // output bob
Di sini obj2
tidak menyalin kandungan obj1
, tetapi menunjuk ke alamat memori yang sama. Oleh itu, mengubahsuai atribut obj2
juga akan menjejaskan obj1
.
Keadaan yang sama juga akan berlaku apabila fungsi melewati argumen:
fungsi changename (pengguna) { user.name = "berubah"; } Let Person = {name: "Original"}; changename (orang); console.log (person.name); // output berubah
Kerana apa yang diluluskan adalah rujukan kepada objek, pengubahsuaian ke objek di dalam fungsi akan mempengaruhi luar.
Petua untuk menilai jenis
Untuk menentukan sama ada pemboleh ubah adalah jenis primitif atau jenis rujukan, anda boleh menggunakan typeof
dan instanceof
:
-
typeof
mengiktiraf jenis yang paling primitif (kecualinull
akan mengembalikan"object"
) -
instanceof
digunakan untuk menentukan pembina jenis rujukan tertentu
Contohnya:
Typeof 42; // "Nombor" Typeof "Hello"; // "String" jenis benar; // "Boolean" typeof null; // "objek" (ini adalah isu sejarah dengan JS) typeof {}; // "objek" fungsi jenis () {}; // "fungsi" (jenis rujukan khas)
Sekiranya anda ingin menilai dengan tepat null
, anda boleh menggunakan === null
untuk mengendalikannya secara berasingan.
Pada dasarnya itu sahaja. Memahami perbezaan antara jenis primitif dan jenis rujukan dapat membantu anda mengelakkan banyak masalah yang tidak dijangka, terutama ketika berurusan dengan struktur kompleks atau parameter fungsi lulus.
Atas ialah kandungan terperinci Jenis Data JavaScript: Rujukan primitif vs. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

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

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

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

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

ReadonlypropertiesinPHP8.2canonlybeassignedonceintheconstructororatdeclarationandcannotbemodifiedafterward,enforcingimmutabilityatthelanguagelevel.2.Toachievedeepimmutability,wrapmutabletypeslikearraysinArrayObjectorusecustomimmutablecollectionssucha

SetupaMaven/gradleprojectwithjax-rsdependencyiSejersey; 2.createarescresourceUsingAnnotationssuchas@pathand@get; 3.configuretheapplicationviaapplicationsubclassorweb.xml;

Maven adalah alat standard untuk pengurusan dan pembinaan projek Java. Jawapannya terletak pada hakikat bahawa ia menggunakan pom.xml untuk menyeragamkan struktur projek, pengurusan pergantungan, automasi kitaran hayat pembinaan dan sambungan pemalam; 1. Gunakan pom.xml untuk menentukan kumpulan, artifactid, versi dan kebergantungan; 2. Perintah teras utama seperti mvnclean, penyusun, ujian, pakej, memasang dan menggunakan; 3. Gunakan DependencyManagement dan Pengecualian untuk Menguruskan Versi Ketergantungan dan Konflik; 4. Mengatur aplikasi besar melalui struktur projek multi-modul dan diuruskan secara seragam oleh POM induk; 5.

Pertama, gunakan JavaScript untuk mendapatkan pilihan sistem pengguna dan tetapan tema yang disimpan di dalam negara, dan memulakan tema halaman; 1. Struktur HTML mengandungi butang untuk mencetuskan Topik Switching; 2. CSS menggunakan: Root untuk menentukan pembolehubah tema yang cerah, kelas mod-mode mentakrifkan pembolehubah tema gelap, dan menggunakan pembolehubah ini melalui VAR (); 3. JavaScript mengesan lebih suka skema-skema dan membaca LocalStorage untuk menentukan tema awal; 4. Tukar kelas mod gelap pada elemen HTML apabila mengklik butang, dan menjimatkan keadaan semasa ke LocalStorage; 5. Semua perubahan warna disertakan dengan animasi peralihan 0.3 saat untuk meningkatkan pengguna

Ya, menu drop-down CSS biasa boleh dilaksanakan melalui HTML dan CSS tulen tanpa JavaScript. 1. Gunakan UL dan Li bersarang untuk membina struktur menu; 2. Gunakan: Hover pseudo-Class untuk mengawal paparan dan menyembunyikan kandungan tarik-turun; 3. Tetapkan Kedudukan: Relatif untuk Ibu Bapa Li, dan submenu diletakkan menggunakan kedudukan: mutlak; 4. Submenu mungkir untuk memaparkan: Tiada, yang menjadi paparan: blok apabila melayang; 5. Multi-level pull-down boleh dicapai melalui bersarang, digabungkan dengan peralihan, dan menambah animasi pudar, dan disesuaikan dengan terminal mudah alih dengan pertanyaan media. Penyelesaian keseluruhannya mudah dan tidak memerlukan sokongan JavaScript, yang sesuai untuk besar

Untuk menjana nilai hash menggunakan Java, ia boleh dilaksanakan melalui kelas MessageDigest. 1. Dapatkan contoh algoritma yang ditentukan, seperti MD5 atau SHA-256; 2. Panggil kaedah .Update () untuk lulus dalam data untuk disulitkan; 3. Panggil kaedah .digest () untuk mendapatkan pelbagai hash byte; 4. Tukar array byte ke dalam rentetan heksadesimal untuk membaca; Untuk input seperti fail besar, baca dalam ketulan dan panggilan .Update () beberapa kali; Adalah disyorkan untuk menggunakan SHA-256 dan bukannya MD5 atau SHA-1 untuk memastikan keselamatan.

Gunakan DateTime.StrpTime () untuk menukar rentetan tarikh ke dalam objek DateTime. 1. Penggunaan Asas: Parse "2023-10-05" sebagai objek DateTime melalui "%y-%m-%d"; 2. Menyokong pelbagai format seperti "%m/%d/%y" untuk menghuraikan tarikh Amerika, "%d/%m/%y" untuk menghuraikan tarikh British, "%b%d,%y%i:%m%p" untuk menghuraikan masa dengan am/pm; 3. Gunakan dateUtil.parser.parse () untuk secara automatik menyimpulkan format yang tidak diketahui; 4. Gunakan .D

Fail Tetapan.JSON terletak di laluan peringkat pengguna atau ruang kerja dan digunakan untuk menyesuaikan tetapan vscode. 1. Laluan peringkat pengguna: Windows adalah C: \ Users \\ AppData \ Roaming \ code \ user \ settings.json, macOS adalah /users//library/applicationsupport/code/user/settings.json, linux adalah/ 2. Laluan Tahap Ruang Kerja: .VSCODE/Tetapan dalam Direktori Root Projek
