![Dasar-dasar JavaScript - Tipe data](../images/webdev101-js-datatypes.png)
![Dasar-dasar JavaScript - Tipe data](../images/webdev101-js-datatypes.png)
> Catatan sketsa oleh [Tomomi Imura](https://twitter.com/girlie_mac)
> Catatan sketsa oleh [Tomomi Imura](https://twitter.com/girlie_mac)
## Kuis Pra-Kuliah
## Kuis Pra-Kuliah
[Kuis pra-Kuliah](.github/pre-lecture-quiz.id.md)
[Kuis pra-Kuliah](.github/pre-lecture-quiz.id.md)
Pelajaran ini mencakup dasar-dasar JavaScript, bahasa yang menyediakan interaktivitas di web.
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`.
- **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.
- **Nama variabel**, ini adalah nama yang Anda pilih sendiri.
### Tugas - bekerja dengan variabel
### Tugas - bekerja dengan variabel
@ -39,9 +42,9 @@ Membuat dan **mendeklarasikan** variabel memiliki sintaks berikut **[kata kunci]
variabelSaya = 123;
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.
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.
- **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:
- **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:
- **Nilai sederhana**. Berikut ini TIDAK diperbolehkan:
```javascript
```javascript
@ -84,7 +88,7 @@ Konstanta mirip dengan variabel, dengan dua pengecualian:
```javascript
```javascript
const obj = { a: 3 };
const obj = { a: 3 };
obj = { b: 5 } // tidak diperbolehkan
obj = { b: 5 }; // tidak diperbolehkan
```
```
- **Nilai objek tidak dilindungi**. Berikut 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:
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`?
@ -161,7 +164,7 @@ let myString1 = "Hello";
let myString2 = "World";
let myString2 = "World";
`${myString1} ${myString2}!` //Hello 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.
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?
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?