![Dasar-dasar JavaScript - Tipe data](../images/webdev101-js-datatypes.png)
> Catatan sketsa oleh [Tomomi Imura](https://twitter.com/girlie_mac)
## Kuis Pra-Kuliah
[Kuis pra-Kuliah](.github/pre-lecture-quiz.id.md)
Pelajaran ini mencakup dasar-dasar JavaScript, bahasa yang menyediakan interaktivitas di web.
@ -20,7 +22,8 @@ Membuat dan **mendeklarasikan** variabel memiliki sintaks berikut **[kata kunci]
- **Kata kunci (Keywords)**. Kata kunci bisa `let` atau `var`.
> Catatan, Mereka kata kunci `let` diperkenalkan di ES6 dan memberi variabel Anda apa yang disebut _block scope_. Anda disarankan untuk menggunakan `let` di atas `var`. Kami akan membahas cakupan blok lebih mendalam di bagian mendatang.
> Catatan, Mereka kata kunci `let` diperkenalkan di ES6 dan memberi variabel Anda apa yang disebut _block scope_. Anda disarankan untuk menggunakan `let` di atas `var`. Kita akan membahas cakupan blok lebih mendalam di bagian mendatang.
- **Nama variabel**, ini adalah nama yang Anda pilih sendiri.
### Tugas - bekerja dengan variabel
@ -39,9 +42,9 @@ Membuat dan **mendeklarasikan** variabel memiliki sintaks berikut **[kata kunci]
variabelSaya = 123;
```
> Catatan: penggunaan `=` dalam pelajaran ini berarti kita menggunakan "operator penugasan (assignment operator)", yang digunakan untuk menetapkan nilai ke variabel. Itu *tidak menunjukkan kesetaraan*.
> Catatan: penggunaan `=` dalam pelajaran ini berarti kita menggunakan "operator penugasan (assignment operator)", yang digunakan untuk menetapkan nilai ke variabel. Itu _tidak menunjukkan kesetaraan_.
`variabelSaya` sekarang telah *diinisialisasi (initialized)* dengan nilai 123.
`variabelSaya` sekarang telah _diinisialisasi (initialized)_ dengan nilai 123.
1. **Refaktor**. Ganti kode Anda dengan pernyataan berikut.
@ -73,6 +76,7 @@ Konstanta mirip dengan variabel, dengan dua pengecualian:
- **Harus punya nilai**. Konstanta harus diinisialisasi, atau kesalahan akan terjadi saat menjalankan kode.
- **Referensi tidak dapat diubah**. Referensi konstanta tidak dapat diubah setelah diinisialisasi, atau kesalahan akan terjadi saat menjalankan kode. Mari kita lihat dua contoh:
- **Nilai sederhana**. Berikut ini TIDAK diperbolehkan:
```javascript
@ -84,7 +88,7 @@ Konstanta mirip dengan variabel, dengan dua pengecualian:
```javascript
const obj = { a: 3 };
obj = { b: 5 } // tidak diperbolehkan
obj = { b: 5 }; // tidak diperbolehkan
```
- **Nilai objek tidak dilindungi**. Berikut diperbolehkan:
@ -117,7 +121,7 @@ Variabel dapat menyimpan semua jenis angka, termasuk desimal atau angka negatif.
Ada beberapa jenis operator untuk digunakan saat menjalankan fungsi aritmatika, dan beberapa di antaranya tercantum di sini:
✅ Mengapa `1 + 1 = 2` di JavaScript, tetapi`'1' + '1' = 11?`Pikirkanlah. Bagaimana dengan `'1' + 1`?
✅ Mengapa `1 + 1 = 2` di JavaScript, tetapi`'1' + '1' = 11?`Pikirkanlah. Bagaimana dengan `'1' + 1`?
**Template literals** adalah cara lain untuk memformat string, kecuali sebagai pengganti tanda kutip, digunakan backtick. Apa pun yang bukan teks biasa harus ditempatkan di dalam placeholder `${ }`. Ini termasuk variabel apa pun yang mungkin berupa string.
@ -161,7 +164,7 @@ let myString1 = "Hello";
let myString2 = "World";
`${myString1} ${myString2}!` //Hello World!
`${myString1}, ${myString2}!` //Hello World!
`${myString1}, ${myString2}!`; //Hello World!
```
Anda dapat mencapai tujuan pemformatan Anda dengan salah satu metode, tetapi template literal akan menghormati spasi dan jeda baris apa pun.
@ -184,6 +187,7 @@ Boolean hanya dapat berupa dua nilai: `true` atau `false`. Boolean dapat membant
JavaScript terkenal karena cara yang mengejutkan dalam menangani tipe data pada kesempatan tertentu. Lakukan sedikit riset tentang 'kejutaan' ini. Misalnya: sensitivitas kasus bisa menggigit! Coba ini di konsol Anda: `let usia = 1; let Usia = 2; usia == Usia` (meghasilkan `false` - kenapa?). Kejutan lain apa yang bisa kamu temukan?