Apa perbedaan kutip 1 dan kutip 2 dalam deklarasi referensi string di javascript

Sintaksis ini di kenal dengan sebutan JSX, dan sintaksis ini adalah sebuah sintaksis ekstensi untuk JavaScript. Kami sarankan menggunakannya dengan React untuk mendeskripsikan bagimana antarmuka pengguna seharusnya terlihat. JSX mungkin akan mengingatkan Anda dengan sebuah bahasa templat, bedanya adalah JSX telah dilengkapi dengan kekuatan penuh dari JavaScript.

JSX akan menghasilkan “elemen” React. Kita akan mulai mengeksplor bagaimana me-render mereka ke dalam DOM di bagian berikutnya. Di bawah ini, Anda akan menemukan dasar-dasar JSX yang Anda butuhkan untuk memulai.

Mengapa JSX?

React mengakui bahwa logika rendering akan secara inheren digabungkan dengan logika antarmuka pengguna lainnya. bagaimana events akan ditangani, bagaimana state berubah seiring dengan waktu, dan bagaimana data disiapkan untuk di tampilkan.

Alih-alih memisahkan technologies secara artifisial dengan meletakkan markup dan logika di file terpisah, React memisahkan kepentingan (separates concerns) dengan unit kopling rendah bernama “komponen” yang mengandung keduanya. Kita akan kembali ke komponen dalam bagian selanjutnya, tetapi jika Anda merasa belum nyaman menempatkan markup di JavaScript, video ini mungkin akan meyakinkan Anda.

React tidak mengharuskan Anda untuk menggunakan JSX, namun kebanyakan orang merasa terbantu dengan adanya JSX sebagai bantuan visual saat mengerjakan antarmuka pengguna di dalam kode JavaScript. Menggunakan JSX juga memungkinkan React untuk menampilkan pesan kesalahan (error) dan peringatan (warning) yang lebih bermanfaat.

Setelah Anda memahaminya, mari kita mulai!

Menyematkan Ekspresi di JSX

Dalam contoh di bawah ini, kita mendeklarasikan variabel bernama

const name = 'Budi';const element = <h1>Halo, {name}</h1>;
ReactDOM.render(
  element,
  document.getElementById('root')
);
2 dan kemudian menggunakannya di dalam JSX dengan cara membungkusnya di dalam tanda kurung kurawal (curly braces):

const name = 'Budi';const element = <h1>Halo, {name}</h1>;
ReactDOM.render(
  element,
  document.getElementById('root')
);

Anda dapat menyematkan semua yang valid di dalam tanda kurung kurawal di JSX. Sebagai contoh,

const name = 'Budi';const element = <h1>Halo, {name}</h1>;
ReactDOM.render(
  element,
  document.getElementById('root')
);
3,
const name = 'Budi';const element = <h1>Halo, {name}</h1>;
ReactDOM.render(
  element,
  document.getElementById('root')
);
4, atau
const name = 'Budi';const element = <h1>Halo, {name}</h1>;
ReactDOM.render(
  element,
  document.getElementById('root')
);
5 adalah ekspresi JavaScript yang valid.

Pada contoh di bawah ini, kami menyematkan hasil memanggil fungsi JavaScript,

const name = 'Budi';const element = <h1>Halo, {name}</h1>;
ReactDOM.render(
  element,
  document.getElementById('root')
);
5, kedalam elemen
const name = 'Budi';const element = <h1>Halo, {name}</h1>;
ReactDOM.render(
  element,
  document.getElementById('root')
);
7.

function formatName(user) {
  return user.firstName + ' ' + user.lastName;
}

const user = {
  firstName: 'Budi',
  lastName: 'Mahardika'
};

const element = (
  <h1>
    Halo, {formatName(user)}!  </h1>
);

ReactDOM.render(
  element,
  document.getElementById('root')
);

Coba di CodePen

Kami membagi JSX menjadi beberapa baris agar mudah dibaca. Meskipun tidak diwajibkan, ketika melakukan hal ini, kami juga merekomendasikan Anda membungkusnya dalam tanda kurung untuk menghindari terjadinya penyisipan titik koma otomatis.

JSX adalah Ekspresi Juga

Setelah dikompilasi, Ekspresi JSX akan menjadi panggilan fungsi JavaScript biasa dan menjadi objek JavaScript.

Hal ini berarti bahwa Anda dapat menggunakan JSX di dalam pernyataan

const name = 'Budi';const element = <h1>Halo, {name}</h1>;
ReactDOM.render(
  element,
  document.getElementById('root')
);
8 dan perulangan
const name = 'Budi';const element = <h1>Halo, {name}</h1>;
ReactDOM.render(
  element,
  document.getElementById('root')
);
9, memasukkannya ke dalam variabel, menerimanya sebagai argumen, dan mengembalikannya dari sebuah fungsi:

function getGreeting(user) {
  if (user) {
    return <h1>Halo, {formatName(user)}!</h1>;  }
  return <h1>Halo, Orang Asing.</h1>;}

Menentukan Atribut dengan JSX

Anda dapat menggunakan tanda kutip untuk menentukan string literal sebagai atribut:

const element = <div tabIndex="0"></div>;

Anda juga dapat menggunakan kurung kurawal untuk menyematkan ekspresi JavaScript di dalam atribut:

const element = <img src={user.avatarUrl}></img>;

Jangan letakan tanda kutip di sekitar kurung kurawal saat menyematkan ekspresi JavaScript di dalam atribut. Anda bisa menggunakan tanda kutip (untuk nilai string) atau kurung kurawal (untuk ekspresi), tetapi jangan menggunakan keduanya dalam atribut yang sama.

Peringatan:

Karena JSX lebih dekat ke JavaScript daripada ke HTML, React DOM menggunakan

function formatName(user) {
  return user.firstName + ' ' + user.lastName;
}

const user = {
  firstName: 'Budi',
  lastName: 'Mahardika'
};

const element = (
  <h1>
    Halo, {formatName(user)}!  </h1>
);

ReactDOM.render(
  element,
  document.getElementById('root')
);
0 sebagai konvensi penamaan alih-alih menggunakan konvensi penamaan atribut HTML.

Sebagai contoh,

function formatName(user) {
  return user.firstName + ' ' + user.lastName;
}

const user = {
  firstName: 'Budi',
  lastName: 'Mahardika'
};

const element = (
  <h1>
    Halo, {formatName(user)}!  </h1>
);

ReactDOM.render(
  element,
  document.getElementById('root')
);
1 akan menjadi
function formatName(user) {
  return user.firstName + ' ' + user.lastName;
}

const user = {
  firstName: 'Budi',
  lastName: 'Mahardika'
};

const element = (
  <h1>
    Halo, {formatName(user)}!  </h1>
);

ReactDOM.render(
  element,
  document.getElementById('root')
);
2 di JSX, dan
function formatName(user) {
  return user.firstName + ' ' + user.lastName;
}

const user = {
  firstName: 'Budi',
  lastName: 'Mahardika'
};

const element = (
  <h1>
    Halo, {formatName(user)}!  </h1>
);

ReactDOM.render(
  element,
  document.getElementById('root')
);
3 akan menjadi
function formatName(user) {
  return user.firstName + ' ' + user.lastName;
}

const user = {
  firstName: 'Budi',
  lastName: 'Mahardika'
};

const element = (
  <h1>
    Halo, {formatName(user)}!  </h1>
);

ReactDOM.render(
  element,
  document.getElementById('root')
);
4.

Menspesifikasikan Elemen Anak dengan JSX

Jika tag bersifat kosong (tidak memiliki elemen anak), Anda bisa saja menutupnya secara langsung dengan

function formatName(user) {
  return user.firstName + ' ' + user.lastName;
}

const user = {
  firstName: 'Budi',
  lastName: 'Mahardika'
};

const element = (
  <h1>
    Halo, {formatName(user)}!  </h1>
);

ReactDOM.render(
  element,
  document.getElementById('root')
);
5, seperti XML:

const element = <img src={user.avatarUrl} />;

Tag JSX dimungkinkan untuk memiliki elemen anak:

const element = (
  <div>
    <h1>Halo!</h1>
    <h2>Senang melihatmu di sini.</h2>
  </div>
);

JSX Mencegah Serangan Injeksi

Anda dapat menanamkan input pengguna di JSX dengan aman:

const title = response.potentiallyMaliciousInput;
// Ini aman:
const element = <h1>{title}</h1>;

Secara default, React DOM meng-escape nilai apapun yang ditaruh di dalam JSX sebelum me-render mereka. Oleh karena itu dapat dipastikan Anda tidak akan pernah menginjeksi apapun yang tidak ditulis di aplikasi Anda secara eksplisit. Semuanya akan diubah menjadi string sebelum di-render. Ini membantu mencegah ada nya serangan XSS (skrip-lintas-situs).

JSX Merepresentasikan Objek

Babel akan meng-compile JSX menjadi pemanggilan

function formatName(user) {
  return user.firstName + ' ' + user.lastName;
}

const user = {
  firstName: 'Budi',
  lastName: 'Mahardika'
};

const element = (
  <h1>
    Halo, {formatName(user)}!  </h1>
);

ReactDOM.render(
  element,
  document.getElementById('root')
);
6.

Dua contoh ini akan menghasilkan hal yang sama:

const element = (
  <h1 className="greeting">
    Halo, Dunia!
  </h1>
);

const name = 'Budi';const element = <h1>Halo, {name}</h1>;
ReactDOM.render(
  element,
  document.getElementById('root')
);
0

function formatName(user) {
  return user.firstName + ' ' + user.lastName;
}

const user = {
  firstName: 'Budi',
  lastName: 'Mahardika'
};

const element = (
  <h1>
    Halo, {formatName(user)}!  </h1>
);

ReactDOM.render(
  element,
  document.getElementById('root')
);
6 melakukan serangkaian pengecekan yang membantu Anda menulis kode yang bebas dari bug namun pada dasarnya akan membuat objek seperti ini:

const name = 'Budi';const element = <h1>Halo, {name}</h1>;
ReactDOM.render(
  element,
  document.getElementById('root')
);
1

Objek seperti ini disebut “elemen React”. Anda dapat menganggap mereka sebagai deskripsi dari apa yang Anda ingin lihat di layar. React membaca objek-objek ini dan menggunakan mereka untuk membangun DOM dan membuatnya tetap sesuai dengan kondisi saat ini.

Kita akan mengeksplorasi rendering pada elemen React ke DOM dalam bagian berikutnya.

Saran:

Kami merokemendasikan Anda untuk mencari skema sintaksis “Babel” untuk editor pilihan Anda sehingga baik kode ES6 dan JSX bisa di-highlight dengan benar.

Apa perbedaan penggunaan kutip satu dan kutip dua pada string?

kutip satu hanya dapat menampilkan karakter aslinya, bukan isi dari variable. kutip dua berfungsi untuk menampilkan isi dari variablenya.

Tanda kutip 1 Untuk apa?

1. Tanda petik tunggal digunakan untuk mengapit petikan yang terdapat dalam petikan lain. 2. Tanda petik tunggal digunakan untuk mengapit makna, padanan, atau penjelasan kata atau ungkapan.

Kutip dua untuk apa?

Tanda petik dua digunakan untuk mengapit judul puisi, lagu, film, artikel, drama, naskah, atau bab dalam buku yang dipakai dalam kalimat.

Tanda kutip untuk apa saja?

Tanda petik digunakan untuk mengapit petikan langsung yang berasal dari pembicaraan, naskah, atau bahan tertulis lain..
2. Tanda petik digunakan untuk mengapit judul puisi, judul lagu, judul artikel, judul naskah, judul bab buku, judul pidato/khotbah, atau tema/subtema yang terdapat di dalam kalimat..