Apakah ada perbedaan kinerja serius antara menggunakan undefined atau null sebagai nilai dummy di JS?


Jawaban 1:

Tergantung pada dataset, tetapi Anda selalu dapat menggunakan JavaScript memeriksa null dan tidak terdefinisi:

// void 0 mengembalikan 'tidak terdefinisi', bukan kata kunci tanpa pagu harga, tetapi nilai sebenarnya 'tidak terdefinisi'
var a;
var b = null;
console.log (a == void 0, b == void 0);
// mencetak 'benar benar'

Ada sedikit atau tidak ada perbedaan kinerja di antara keduanya, karena 'nol' akan menentukan nilai 'tidak terdefinisi'. Alasan mengapa kami menggunakan "void 0" adalah karena singkat dan idiomatik, dan orang-orang dapat memahami apa yang dilakukannya ketika mereka melihatnya.

Jawaban hebat tentang Stack Overflow ini harus menjawab pertanyaan apa pun tentang topik tersebut.


Jawaban 2:

Tidak. Mungkin ada perbedaan antara menggunakan primitif dan global seperti ini tetapi biasanya tidak serius (kecuali saya merasa serius tentang hal itu). Jika saya serius tentang kinerja, saya profil kinerja kode saya langsung untuk mencari tahu persis bagaimana tampilannya. Ini berarti saya tidak melanjutkan Quora dan mengajukan pertanyaan seperti ini, saya malah membuat profil kode saya. Kadang-kadang (atau terlalu sering) saya juga pergi jsperf untuk menggali rincian spesifik, tetapi banyak sampel di sana mengacaukan terlalu banyak faktor menjadi nilai praktis.

Mesin JavaScript memiliki optimisasi internal yang kami pelajari dari waktu ke waktu — dan kemudian diperbarui dan diubah, jadi saya perlu menghapus kebiasaan aneh yang saya kerjakan dengan susah payah untuk digunakan.

Nilai null dan undefined bersifat global dan yang lainnya tidak (mis. Null vs false) tetapi perbedaan dalam hal kinerja jauh lebih sedikit daripada di masa lalu ketika browser jauh lebih lambat. Sulit untuk menjawab pertanyaan kinerja spesifik lagi sebagai hasil dari campuran optimasi browser internal (yang berubah selama runtime) bersama dengan detail praktis seperti pencarian lingkup, dll. Nuansa halus untuk meningkatkan optimasi ini adalah jenis variabel yang dilewati— jadi menggunakan false dan kemudian sejumlah atau objek berpotensi mengalahkan peningkatan kinerja internal ini (pengetikan yang konsisten membantu semuanya).

Melakukan lebih sedikit pekerjaan, tetap di lingkup lokal membantu dengan kecepatan, menggunakan lebih sedikit variabel membantu dengan memori dan alat pengembang selalu merupakan cara terbaik untuk menjawab pertanyaan spesifik seperti ini.

Memulai Dengan Menganalisis Kinerja Runtime | Alat untuk Pengembang Web | Google Developers

Sebuah pertanyaan serius adalah: apakah itu bekerja untuk pelanggan atau tidak? Apakah saya mengerjakan sesuatu yang bermanfaat bagi orang-orang?


Jawaban 3:

Tidak. Mungkin ada perbedaan antara menggunakan primitif dan global seperti ini tetapi biasanya tidak serius (kecuali saya merasa serius tentang hal itu). Jika saya serius tentang kinerja, saya profil kinerja kode saya langsung untuk mencari tahu persis bagaimana tampilannya. Ini berarti saya tidak melanjutkan Quora dan mengajukan pertanyaan seperti ini, saya malah membuat profil kode saya. Kadang-kadang (atau terlalu sering) saya juga pergi jsperf untuk menggali rincian spesifik, tetapi banyak sampel di sana mengacaukan terlalu banyak faktor menjadi nilai praktis.

Mesin JavaScript memiliki optimisasi internal yang kami pelajari dari waktu ke waktu — dan kemudian diperbarui dan diubah, jadi saya perlu menghapus kebiasaan aneh yang saya kerjakan dengan susah payah untuk digunakan.

Nilai null dan undefined bersifat global dan yang lainnya tidak (mis. Null vs false) tetapi perbedaan dalam hal kinerja jauh lebih sedikit daripada di masa lalu ketika browser jauh lebih lambat. Sulit untuk menjawab pertanyaan kinerja spesifik lagi sebagai hasil dari campuran optimasi browser internal (yang berubah selama runtime) bersama dengan detail praktis seperti pencarian lingkup, dll. Nuansa halus untuk meningkatkan optimasi ini adalah jenis variabel yang dilewati— jadi menggunakan false dan kemudian sejumlah atau objek berpotensi mengalahkan peningkatan kinerja internal ini (pengetikan yang konsisten membantu semuanya).

Melakukan lebih sedikit pekerjaan, tetap di lingkup lokal membantu dengan kecepatan, menggunakan lebih sedikit variabel membantu dengan memori dan alat pengembang selalu merupakan cara terbaik untuk menjawab pertanyaan spesifik seperti ini.

Memulai Dengan Menganalisis Kinerja Runtime | Alat untuk Pengembang Web | Google Developers

Sebuah pertanyaan serius adalah: apakah itu bekerja untuk pelanggan atau tidak? Apakah saya mengerjakan sesuatu yang bermanfaat bagi orang-orang?


Jawaban 4:

Tidak. Mungkin ada perbedaan antara menggunakan primitif dan global seperti ini tetapi biasanya tidak serius (kecuali saya merasa serius tentang hal itu). Jika saya serius tentang kinerja, saya profil kinerja kode saya langsung untuk mencari tahu persis bagaimana tampilannya. Ini berarti saya tidak melanjutkan Quora dan mengajukan pertanyaan seperti ini, saya malah membuat profil kode saya. Kadang-kadang (atau terlalu sering) saya juga pergi jsperf untuk menggali rincian spesifik, tetapi banyak sampel di sana mengacaukan terlalu banyak faktor menjadi nilai praktis.

Mesin JavaScript memiliki optimisasi internal yang kami pelajari dari waktu ke waktu — dan kemudian diperbarui dan diubah, jadi saya perlu menghapus kebiasaan aneh yang saya kerjakan dengan susah payah untuk digunakan.

Nilai null dan undefined bersifat global dan yang lainnya tidak (mis. Null vs false) tetapi perbedaan dalam hal kinerja jauh lebih sedikit daripada di masa lalu ketika browser jauh lebih lambat. Sulit untuk menjawab pertanyaan kinerja spesifik lagi sebagai hasil dari campuran optimasi browser internal (yang berubah selama runtime) bersama dengan detail praktis seperti pencarian lingkup, dll. Nuansa halus untuk meningkatkan optimasi ini adalah jenis variabel yang dilewati— jadi menggunakan false dan kemudian sejumlah atau objek berpotensi mengalahkan peningkatan kinerja internal ini (pengetikan yang konsisten membantu semuanya).

Melakukan lebih sedikit pekerjaan, tetap di lingkup lokal membantu dengan kecepatan, menggunakan lebih sedikit variabel membantu dengan memori dan alat pengembang selalu merupakan cara terbaik untuk menjawab pertanyaan spesifik seperti ini.

Memulai Dengan Menganalisis Kinerja Runtime | Alat untuk Pengembang Web | Google Developers

Sebuah pertanyaan serius adalah: apakah itu bekerja untuk pelanggan atau tidak? Apakah saya mengerjakan sesuatu yang bermanfaat bagi orang-orang?


Jawaban 5:

Tidak. Mungkin ada perbedaan antara menggunakan primitif dan global seperti ini tetapi biasanya tidak serius (kecuali saya merasa serius tentang hal itu). Jika saya serius tentang kinerja, saya profil kinerja kode saya langsung untuk mencari tahu persis bagaimana tampilannya. Ini berarti saya tidak melanjutkan Quora dan mengajukan pertanyaan seperti ini, saya malah membuat profil kode saya. Kadang-kadang (atau terlalu sering) saya juga pergi jsperf untuk menggali rincian spesifik, tetapi banyak sampel di sana mengacaukan terlalu banyak faktor menjadi nilai praktis.

Mesin JavaScript memiliki optimisasi internal yang kami pelajari dari waktu ke waktu — dan kemudian diperbarui dan diubah, jadi saya perlu menghapus kebiasaan aneh yang saya kerjakan dengan susah payah untuk digunakan.

Nilai null dan undefined bersifat global dan yang lainnya tidak (mis. Null vs false) tetapi perbedaan dalam hal kinerja jauh lebih sedikit daripada di masa lalu ketika browser jauh lebih lambat. Sulit untuk menjawab pertanyaan kinerja spesifik lagi sebagai hasil dari campuran optimasi browser internal (yang berubah selama runtime) bersama dengan detail praktis seperti pencarian lingkup, dll. Nuansa halus untuk meningkatkan optimasi ini adalah jenis variabel yang dilewati— jadi menggunakan false dan kemudian sejumlah atau objek berpotensi mengalahkan peningkatan kinerja internal ini (pengetikan yang konsisten membantu semuanya).

Melakukan lebih sedikit pekerjaan, tetap di lingkup lokal membantu dengan kecepatan, menggunakan lebih sedikit variabel membantu dengan memori dan alat pengembang selalu merupakan cara terbaik untuk menjawab pertanyaan spesifik seperti ini.

Memulai Dengan Menganalisis Kinerja Runtime | Alat untuk Pengembang Web | Google Developers

Sebuah pertanyaan serius adalah: apakah itu bekerja untuk pelanggan atau tidak? Apakah saya mengerjakan sesuatu yang bermanfaat bagi orang-orang?