Halo, Habr! Saya hadir untuk Anda terjemahan artikel "Setara dengan Python dan JavaScript. Bagian 1" .
Terlepas dari kenyataan bahwa Python dan Javascript sangat berbeda, ada banyak kesamaan yang harus diperhatikan oleh pengembang tumpukan penuh. Dalam seri 4 artikel ini, kita akan melihat apa yang umum dalam kedua bahasa, dan mempertimbangkan sejumlah masalah yang diketahui serta cara untuk menyelesaikannya.
Ini bukan referensi, tidak akan ada informasi dasar tentang jenis variabel, jika dan loop.
Tetapi kita akan melihat struktur data yang lebih kompleks dan operasi dengan mereka menggunakan Python dan Javascript.
Saya juga akan menggambarkan ini dengan contoh-contoh praktis.
Seri ini akan menarik bagi para backders menggunakan Django, Flask, atau kerangka kerja Python lainnya yang ingin mempelajari lebih lanjut tentang Javascript modern. Di sisi lain, artikel-artikel ini akan berguna bagi para pelari terdepan yang ingin lebih memahami cara kerja backend, atau bahkan menulis situs mereka di Django.
Artikel lain dalam seri ini:
- Bagian dua : JSON, pelanggan tetap, kesalahan pengecualian
- Bagian Tiga : Python dan JS modern: pola string (f-string), daftar membongkar, fungsi lambda, daftar iterasi, generator, set.
- Bagian keempat adalah argumen fungsi, membuat dan bekerja dengan kelas, pewarisan, pengambil setter, dan properti kelas.
Ketik gips
Mari kita mulai dengan melemparkan string ke keseluruhan. Dalam Python, semuanya sederhana dan mudah:
number = int(text)
Tetapi di JS Anda harus menjelaskan sistem apa yang akan Anda tuju - desimal, oktal, heksadesimal atau biner:
number = parseInt(text, 10);
Untuk menggunakan sistem desimal biasa, kita memberikan 10 sebagai argumen kedua ke fungsi parseInt (). 8 untuk oktal, 16 untuk hex atau 2 untuk biner. Jika parameter kedua dihilangkan, angka dimulai dari nol dan Anda menggunakan browser yang sudah ketinggalan zaman, baris dengan teks akan ditafsirkan sebagai sistem oktal:
parseInt('012') == 10
Tugas Bersyarat
Meskipun Python dan JS menggunakan sintaks yang berbeda untuk ini, operasi ini populer di kedua bahasa. Ini populer karena dalam satu ekspresi dimungkinkan untuk menetapkan nilai yang berbeda untuk kasus True dan False.
Mulai dengan Python 2.7, tugas bersyarat terlihat seperti ini:
value = 'YES' if positive == True else 'NO'
Dalam JavaScript, tugas bersyarat dilakukan menggunakan operator ternary ?
, serta dalam C, C ++, C #, Java, Ruby, PHP, Perl, Swift, dan ActionScript:
value = positive === true? 'YES': 'NO';
Akses properti objek dengan nama properti
Cara biasa untuk mengakses properti objek dalam Python dan JS adalah sama:
obj.color = 'YELLOW'
Tetapi bagaimana jika nama properti terlampir dalam variabel string? Misalnya, nama properti dapat diperoleh dari daftar properti atau nama properti terdiri dari dua variabel string: "title" + land_code
.
Dalam Python, fungsi getattr()
dan setattr()
ada untuk ini:
attribute = 'color' value = getattr(obj, attribute, 'GREEN') setattr(obj, attribute, value)
Di JS, Anda bisa memperlakukan objek seperti kamus dan meneruskan nama properti dalam tanda kurung:
attribute = 'color'; value = obj[attribute] || 'GREEN'; obj[attribute] = value;
Untuk mendapatkan nilai default jika properti dengan nama yang sama tidak ada, fungsi getattr()
di Python memiliki parameter ketiga untuk ini. Di JS, jika properti yang diminta tidak ada, fungsi akan kembali undefined
. Ini dapat dibandingkan dengan operator OR
dengan nilai default - ini adalah praktik standar di JS - metode ini dapat ditemukan di banyak kerangka kerja dan perpustakaan.
Akses Kamus Utama
Mirip dengan di atas. Kuncinya ditunjukkan secara standar dalam tanda kurung siku dalam kedua bahasa:
dictionary = {} dictionary['color'] = 'YELLOW'
Untuk akses kunci, Python menggunakan sintaksis standar dengan tanda kurung siku, namun, jika kunci tersebut tidak ada, ini akan membuang pengecualian dengan kesalahan KeyError
.
Lebih fleksibel adalah metode get()
, yang akan mengembalikan None
jika tidak ada kunci. Anda juga dapat memberikan nilai yang akan dikembalikan jika kunci tidak ada:
key = 'color' value = dictionary.get(key, 'GREEN')
Di JS, Anda bisa melakukan trik yang sama seperti dengan properti objek - OR
dengan nilai default:
key = 'color'; value = dictionary[key] || 'GREEN';
Irisan: Daftar dan Strings
Python memiliki operator [:]
mendapatkan bagian dari daftar, tupel, atau struktur serupa. Contoh dengan objek tipe Django QuerySets
:
items = [1, 2, 3, 4, 5] first_two = items[:2]
JS memiliki metode slice()
dengan efek yang sama:
items = [1, 2, 3, 4, 5]; first_two = items.slice(0, 2);
Tetapi jangan bingung dengan metode splice()
yang mengubah array asli!
Dalam Python, operator [:]
juga berlaku untuk string:
text = 'ABCDE' first_two = text[:2]
Di JS, string juga memiliki metode slice()
:
text = 'ABCDE'; first_two = text.slice(0, 2);
Daftar Operasi
Dalam pemrograman, Anda sering harus mengumpulkan dan menganalisis urutan elemen. Dalam Python, daftar biasanya digunakan untuk ini, dan dalam Javascript, array. Mereka memiliki sintaks dan operasi yang serupa, tetapi metode yang berbeda untuk menambah dan menghapus elemen.
Kami menghubungkan dua daftar, menambahkan satu elemen ke ujung, menambahkan satu elemen ke awal, mendapatkan dan menghapus elemen di awal, mendapatkan dan menghapus elemen dari ujung dan menghapus elemen spesifik dengan indeks.
Python:
items1 = ['A'] items2 = ['B'] items = items1 + items2
Sama di Javascript:
items1 = ['A']; items2 = ['B']; items = items1.concat(items2);
Bergabunglah dengan set string
Gabungkan sekumpulan elemen string ke dalam satu baris menggunakan spasi, koma, atau baris baru sebagai karakter penghubung.
Dalam Python, metode string join()
digunakan untuk ini, yang menggunakan daftar atau tuple sebagai argumen. Untuk yang belum tahu (dalam sintaksis Python), mungkin aneh untuk memulai ekspresi dengan pemisah, tetapi setelah penggunaan biasa Anda akan terbiasa dengan bentuk notasi ini:
items = ['A', 'B', 'C'] text = ', '.join(items)
Di JS, array memiliki metode join()
dengan pemisah sebagai argumen:
items = ['A', 'B', 'C']; text = items.join(', ');
Untuk meringkas
- Daftar dan tupel dalam Python sesuai dengan array di Javascript.
- Kamus dalam Python berhubungan dengan objek dalam Javascript.
- String dalam Python mirip dengan string dalam Javascript.
- Dalam Javascript, masukkan string ke nomor dengan hati-hati, mengingat sistem angka.
- Ekspresi bersyarat baris tunggal ada dalam bahasa mereka.
- Kombinasi urutan string (
' '.join
) dengan Python membuat orang yang belum tahu dalam sintaksisnya ' '.join
, tetapi Anda dengan cepat terbiasa dengannya.
Dalam seri berikutnya, kita melihat membuat dan mem-parsing JSON, ekspresi reguler, dan penanganan kesalahan dan pengecualian!