Tata Bahasa dan Tipe
Pada bagian ini membahas tata bahasa dasar Javascript, deklarasi variabel, tipe data dan literal.
Dasar
Sebagian besar sintak JavaScript terinspirasi dari Java, namun juga dipengaruhi oleh Awk, Perl dan Python.
JavaScript bersifat case-sensitive dan menggunakan set karakter Unicode.
Dalam JavaScript, instruksi disebut pernyataan dan dipisahkan oleh titik koma (;). Spasi, tab dan karakter baris baru disebut whitespace.Teks sumber skrip JavaScript dipindai dari kiri ke kanan dan diubah menjadi urutan elemen masukan yang merupakan token, karakter kontrol, terminator baris, komentar atau whitespace. ECMAScript juga mendefinisikan kata kunci dan literal tertentu dan memiliki aturan untuk penyisipan titik koma secara otomatis (ASI) untuk mengakhiri pernyataan. Namun, dianjurkan untuk selalu menambahkan titik koma untuk mengakhiri pernyataan anda; Itu akan terhindar dari efek samping. Untuk informasi lebih lanjut, lihat referensi rinci tentang tata bahasa eksikal JavaScript.
Komentar
Sintak komentar pada JavaScript sama dengan C++ dan dalam banyak bahasa pemrograman lainnya:
// komentar satu baris
/* Ini lebih panjang
komentar beberapa baris
*/
/* Anda tidak bisa menggunakannya, /* komentar bersarang */ Sintak bermasalah */
Deklarasi
Ada tiga macam deklarasi pada JavaScript.
Variabel
Anda menggunakan variabel sebagai nama simbolik dalam aplikasi Anda. Nama variabel, disebut Pengidentifikasi, sesuai dengan peraturan tertentu.
Pengindetifikasi pada JavaScript harus dimulai dengan huruf, garis bawah (_), atau tanda dolar ($); Karakter selanjutnya bisa berupa digit (0-9). karena JavaScript sensitif huruf (case-sensitive), Huruf termasuk karakter "A" sampai "Z" (huruf besar) dan huruf "a" sampai "z" (huruf kecil) .
Anda dapat menggunakan sebagian besar huruf ISO 8859-1 atau Unicode seperti å dan ü dalam pengidentifikasi (untuk lebih jelasnya lihat postingan blog ini). Anda juga dapat menggunakan urutan rangkaian pelolosan/escape Unicode sebagai karakter dalam pengidentifikasi.
Beberapa contoh nama legal adalah Number_hits
, temp99
, $credit, dan _name
.
Mendeklarasikan variabel
Anda bisa mendeklarasikan sebuah variabel dalam tiga cara:
- Dengan kata kunci var. Misalnya
var x = 42
,. Sintaks ini dapat digunakan untuk mendeklarasikan variabel lokal dan global. - Cukup menugaskan sebuah nilai. Misalnya
x = 42
. Ini selalu mendeklarasikan variabel global, jika dinyatakan di luar fungsi apa pun. Ini menghasilkan peringatan JavaScript yang ketat/strict. Anda sebaiknya tidak menggunakan varian ini. - Dengan kata kunci let. Misalnya
let y = 13
. Sintaks ini dapat digunakan untuk mendeklarasikan variabel lokal lingkup-blok. Lihat Lingkup variabel di bawah ini.
Mengevaluasi variabel
Variabel yang dideklarasikan dengan menggunakan pernyataan var
atau let
tanpa penetapan nilai yang ditentukan memiliki nilai undefined.
Upaya untuk mengakses variabel yang tidak dideklarasikan akan menuju kepada pelemparan eksepsi ReferenceError:
var a;
console.log('Nilai dari a adalah ' + a); // Nilai dari a adalah undefined
console.log('Nilai dari b adalah ' + b); // Nilai dari b adalah undefined
var b;
console.log('Nilai dari c adalah ' + c); // Tidak tertangkap ReferenceError: c tidak di definisikan
let x;
console.log('Nilai dari x adalah ' + x); // Nilai dari x adalah undefined
console.log('Nilai dari y adalah ' + y); // Tidak tertangkap ReferenceError: y tidak di definisikan
let y;
Anda dapat menggunakan undefined
untuk menentukan apakah sebuah variabel memiliki nilai. Dalam kode berikut, variabel input
tidak diberi nilai, dan pernyataan if
dievaluasi true
.
var input;
if (input === undefined) {
lakukanIni();
} else {
lakukanItu();
}
Nilai undefined
berperilaku sebagai false
bila digunakan dalam konteks boolean. Misalnya, kode berikut menjalankan fungsi fungsiSaya
karena elemen myArray
undefined:
var myArray = [];
if (!myArray[0]) fungsiSaya();
Nilai undefined
mengkonversi ke NaN
bila digunakan dalam konteks numerik.
var a;
a + 2; // Dievaluasi ke NaN
Ketika Anda mengevaluasi sebuah variabel null, nilai null berperilaku seperti 0 dalam konteks numerik dan sebagai false dalam konteks boolean. Sebagai contoh:
var n = null;
console.log(n * 32); // Akan log 0 ke konsol
Lingkup variabel
Bila Anda mendeklarasikan variabel di luar fungsi apa pun, ini disebut variabel global , karena tersedia pada kode lain dalam dokumen tersebut. Ketika Anda mendeklarasikan sebuah variabel dalam suatu fungsi, itu disebut variabel lokal , karena hanya tersedia di dalam fungsi itu.
JavaScript sebelum ECMAScript 2015 tidak memiliki lingkup pernyataan blok ; Sebaliknya, variabel yang dinyatakan dalam blok bersifat lokal terhadap fungsi (atau lingkup global) yang berada di blok. Misalnya kode berikut akan log 5
, karena ruang lingkupnya x
adalah fungsi (atau konteks global) yang x
dideklarasikan, bukan bloknya, yang dalam hal ini adalah sebuah pernyataan if
.
if (true) {
var x = 5;
}
console.log(x); // x is 5
Perilaku ini berubah, saat menggunakan deklarasi let
yang diperkenalkan di ECMAScript 2015.
if (true) {
let y = 5;
}
console.log(y); // ReferenceError: y tidak di definisikan
Hoisting variabel
Hal lain yang tidak biasa tentang variabel dalam JavaScript adalah Anda bisa merujuk ke variabel yang dideklarasikan nanti, tanpa mendapatkan eksepsi. Konsep ini dikenal sebagai hoisting; Variabel dalam JavaScript dalam arti "dikibarkan" atau diangkat ke atas fungsi atau pernyataan. Bagaimanapun, variabel yang dikibarkan akan memberikan nilai undefined
. Jadi, bahkan jika Anda mendeklarasikan dan menginisialisasi setelah Anda menggunakan atau merujuk ke variabel ini, itu akan tetap memberikan undefined.
/**
* Contoh 1
*/
console.log(x === undefined); // true
var x = 3;
/**
* Contoh 2
*/
// Akan memberikan nilai undefined
var myvar = 'my value';
(function() {
console.log(myvar); // undefined
var myvar = 'local value';
})();
Contoh di atas akan dinterprestasikan sama dengan:
/**
* Contoh 1
*/
var x;
console.log(x === undefined); // true
x = 3;
/**
* Example 2
*/
var myvar = 'my value';
(function() {
var myvar;
console.log(myvar); // undefined
myvar = 'nilai lokal';
})();
Karena hoisting, semua pernyataan var
dalam suatu fungsi harus ditempatkan sedekat mungkin ke atas fungsi. Praktik terbaik ini meningkatkan kejelasan kode.
Dalam ECMAScript 2015, variabel let (const)
tidak akan hoist ke bagian atas blok. Bagaimanapun, referensi variabel di blok sebelum deklarasi variabel menghasilkan sebuah ReferenceError
. Variabel ini berada dalam "zona mati temporal" dari awal blok sampai deklarasi diproses.
console.log(x); // ReferenceError
let x = 3;
Hoisting fungsi
Untuk fungsi, hanya deklarasi fungsi yang diangkat ke atas dan bukan ekspresi fungsi.
/* Deklarasi fungsi */
foo(); // "bar"
function foo() {
console.log('bar');
}
/* Ekspresi fungsi */
baz(); // TypeError: baz adalah bukan fungsi
var baz = function() {
console.log('bar2');
};
Variabel global
Variabel global sebenarnya adalah properti dari objek global . Di halaman web objek global itu window, sehingga Anda bisa mengatur dan mengakses variabel global dengan menggunakan sintaks window.variable
Akibatnya, Anda dapat mengakses variabel global yang dideklarasikan dalam satu window atau frame dari window atau frame lain dengan menentukan nama window atau frame. Misalnya, jika variabel yang disebut phoneNumber
dinyatakan dalam dokumen, Anda dapat merujuk variabel ini dari iframe as parent.phoneNumber
.
Konstanta
Anda bisa membuat variabel baca-saja, dinamai dengan kata kunci const
. Sintaksis dari pengenal konstanta sama dengan pengenal variabel: ia harus dimulai dengan huruf, garis bawah atau tanda dolar ($) dan dapat berisi karakter abjad, numerik, atau garis bawah.
const PI = 3.14;
Konstanta tidak dapat mengubah nilai melalui penugasan atau dinyatakan ulang saat naskah dijalankan. Ini harus diinisialisasi ke sebuah nilai.
Aturan lingkup untuk konstanta sama dengan variabel lingkup-blok let
. Jika kata kunci const
dihilangkan, pengenal dianggap mewakili variabel.
Anda tidak dapat mendeklarasikan konstanta dengan nama yang sama dengan fungsi atau variabel dalam lingkup yang sama. Sebagai contoh:
// INI AKAN MENYEBABKAN ERROR
function f() {};
const f = 5;
// INI AKAN MENYEBABKAN ERROR JUGA
function f() {
const g = 5;
var g;
//pernyataan
}
Namun, properti objek yang ditugaskan pada konstanta tidak terlindungi, jadi pernyataan berikut dijalankan tanpa masalah.
const MY_OBJECT = {'key': 'value'};
MY_OBJECT.key = 'otherValue';
Struktur dan tipe data
Tipe data
Standar ECMAScript terbaru mendefinisikan tujuh tipe data:
- Enam tipe data yang primitif :
- Boolean.
true
Danfalse
. - null. Kata kunci khusus yang menunjukkan nilai null. Karena JavaScript adalah huruf-sensitif/case-sensitive,
null
ini tidak sama denganNull
,NULL
, atau varian lainnya. - undefined. Properti tingkat atas yang nilainya tidak terdefinisi.
- Number.
42
Atau3.14159
. - String. "howdy"
- Symbol (baru dalam ECMAScript 2015). Tipe data yang halnya unik dan tidak dapat diubah.
- Boolean.
- Dan Object
Meskipun tipe data ini jumlahnya relatif kecil, namun memungkinkan Anda untuk melakukan fungsi-fungsi yang berguna dengan aplikasi Anda. Objects
dan functions
merupakan unsur fundamental lainnya dalam bahasa ini. Anda bisa memikirkan objek sebagai wadah bernama untuk nilai, dan fungsi sebagai prosedur yang dapat dilakukan aplikasi Anda.
Konversi tipe data
JavaScript adalah bahasa yang diketik secara dinamis. Itu berarti Anda tidak perlu menentukan tipe data variabel saat Anda menyatakannya, dan tipe data akan dikonversi secara otomatis sesuai kebutuhan selama eksekusi skrip. Jadi, misalnya, Anda bisa mendefinisikan variabel sebagai berikut:
var jawaban = 42;
Dan nanti, Anda bisa menetapkan variabel yang sama dengan nilai string, misalnya:
jawaban = 'Thanks for all the fish...';
Karena JavaScript diketik secara dinamis, penugasan ini tidak menyebabkan pesan kesalahan.
Dalam ekspresi yang melibatkan nilai numerik dan string dengan operator +, JavaScript mengubah nilai numerik menjadi string. Misalnya, perhatikan pernyataan berikut:
x = 'Jawabannya adalah ' + 42 // "Jawabannya adalah 42"
y = 42 + ' Adalah jawabannya' // "42 Adalah jawabannya"
Dalam pernyataan yang melibatkan operator lain, JavaScript tidak mengubah nilai numerik menjadi string. Sebagai contoh:
'37' - 7 // 30
'37' + 7 // "377"
Mengubah string menjadi angka
Dalam kasus yang sebuah nilai mewakili bilangan ada dalam memori sebagai string, ada metode untuk konversi.
parseInt
Hanya akan memberikan bilangan bulat, jadi penggunaannya berkurang untuk desimal. Selain itu, praktik terbaik untuk parseInt
selalu menyertakan parameter radix. Parameter radix digunakan untuk menentukan sistem numerik yang akan digunakan.
Metode alternatif untuk mengambil nomor dari string adalah dengan operator +
(unary plus):
'1.1' + '1.1' = '1.11.1'
(+'1.1') + (+'1.1') = 2.2
// Catatan: kurung siku buka tutup ditambahkan untuk kejelasan, tidak diminta.
Literal
Anda menggunakan literal untuk mewakili nilai dalam JavaScript. Ini adalah nilai tetap, bukan variabel, yang Anda berikan secara literal dalam skrip Anda. Bagian ini menjelaskan jenis literal berikut:
Literal array
Sebuah literal array adalah daftar dari nol atau lebih ekspresi, yang masing-masing mewakili elemen array, dilampirkan dalam tanda kurung siku ([]
). Bila Anda membuat array menggunakan literal array, ini diinisialisasi dengan nilai yang ditentukan sebagai elemennya, dan panjangnya diatur ke jumlah argumen yang ditentukan.
Contoh berikut membuat array coffees
dengan tiga elemen dan panjang tiga:
var coffees = ['French Roast', 'Colombian', 'Kona'];
Catatan: Sebuah literal array adalah tipe dari object initializer. Lihat Menggunakan Penginisialisasi Objek.
Jika sebuah array dibuat menggunakan literal dalam skrip tingkat-atas, JavaScript menginterpretasikan array setiap kali mengevaluasi ekspresi yang berisi literal array. Selain itu, literal yang digunakan dalam suatu fungsi dibuat setiap kali fungsi dipanggil.
Array literal juga objek Array. Lihat Array
dan Koleksi diIndek untuk rincian tentang objek Array
.
Ekstra koma dalam literal array
Anda tidak perlu menentukan semua elemen dalam literal array. Jika Anda memasukkan dua koma berturut-turut, array dibuat undefined
untuk elemen yang tidak ditentukan. Contoh berikut membuat array fish
:
var fish = ['Lion', , 'Angel'];
Array ini memiliki dua elemen dengan nilai dan satu elemen kosong (fish[0]
adalah "Lion", fish[1]
adalah undefined
, dan fish[2]
merupakan "Angel").
Jika Anda menyertakan koma di akhir daftar elemen, koma diabaikan. Pada contoh berikut, panjang array adalah tiga. Tidak ada myList[3]
. Semua koma lainnya dalam daftar menunjukkan elemen baru.
Catatan: Koma diakhir dapat membuat kesalahan pada versi browser lama dan merupakan praktik terbaik untuk menghapusnya.
var myList = ['home', , 'school', ];
Dalam contoh berikut, panjang array adalah empat, dan myList[0]
dan myList[2]
hilang.
var myList = [ ,'home', , 'school'];
Dalam contoh berikut, panjang array adalah empat, dan myList[1]
dan myList[3]
hilang. Hanya koma terakhir yang diabaikan.
var myList = ['home', , 'school', , ];
Memahami perilaku ekstra koma penting untuk memahami JavaScript sebagai bahasa, namun saat menulis kode Anda sendiri: secara eksplisit menyatakan elemen yang hilang sebagai undefined
akan meningkatkan kejelasan dan perawatan kode anda.
Literal boolean
Tipe Boolean memiliki dua nilai literal: true
dan false
.
Jangan membingungkan nilai Boolean primitif true
dan false
dengan nilai true dan false objek Boolean. Objek Boolean adalah pembungkus di sekitar tipe data Boolean primitif. Lihat Boolean
untuk informasi lebih lanjut.
Integer
Integer dapat dinyatakan dalam desimal (basis 10), heksadesimal (basis 16), oktal (basis 8) dan biner (basis 2).
- Literal integer desimal terdiri dari urutan digit tanpa 0 (nol) didepan.
- Memulakan 0 (nol) pada literal integer, atau Memulakan 0o (atau 0O) mengindikasikan itu adalah oktal. Integer Oktal hanya bisa memasukkan angka 0-7.
- Memulakan 0x (atau 0X) menunjukkan heksadesimal. Integer heksadesimal dapat mencakup angka (0-9) dan huruf a-f dan A-F.
-
Memulakan 0b (atau 0B) menunjukkan biner. Integer biner dapat mencakup angka hanya 0 dan 1.
Beberapa contoh literal bilangan bulat adalah:
0, 117 and -345 (desimal, basis 10)
015, 0001 and -0o77 (oktal, basis 8)
0x1123, 0x00111 and -0xF1A7 (heksadesimal, "hex" or basis 16)
0b11, 0b0011 and -0b11 (biner, basis 2)
Untuk informasi lebih lanjut, lihat literatur numerik dalam referensi tata bahasa leksikal .
Literal floating-point
Sebuah literal floating-point dapat memiliki bagian berikut:
- Sebuah integer desimal yang dapat ditandatangani (didahului dengan "+" atau "-"),
- Titik desimal ("."),
- Fraksi (bilangan desimal lain),
- Eksponen
Bagian eksponennya adalah "e" atau "E" diikuti oleh bilangan bulat, yang dapat ditandatangani (didahului dengan "+" atau "-"). Literal floating-point harus memiliki setidaknya satu digit dan titik desimal atau "e" (atau "E").
Lebih ringkas lagi, sintaksnya adalah:
[(+|-)][angka][.angka][(E|e)[(+|-)]angka]
Sebagai contoh:
3.1415926
-.123456789
-3.1E+12
.1e-23
Literal objek
Literal objek adalah daftar dari nol atau lebih pasangan nama properti dan nilai objek yang terkait, yang dilampirkan dalam kurung kurawal ({}
). Anda seharusnya tidak menggunakan literal objek di awal sebuah pernyataan. Ini akan menyebabkan kesalahan atau tidak berperilaku seperti yang Anda harapkan, karena { akan ditafsirkan sebagai awal dari sebuah blok.
Berikut ini adalah contoh dari literal objek. Elemen pertama dari objek car
mendefinisikan sebuah properti myCar
, dan menetapkan sebuah string baru, " Saturn
"; Elemen kedua, properti getCar
, segera diberi hasil pemanggilan function (carTypes("Honda"));
elemen ketiga, properti special
menggunakan variabel yang ada ( sales
).
var sales = 'Toyota';
function carTypes(name) {
if (name === 'Honda') {
return name;
} else {
return "Maaf, kami tidak menjual " + name + ".";
}
}
var car = { myCar: 'Saturn', getCar: carTypes('Honda'), special: sales };
console.log(car.myCar); // Saturn
console.log(car.getCar); // Honda
console.log(car.special); // Toyota
Selain itu, Anda dapat menggunakan literal numerik atau string untuk nama properti atau menyarangkan objek di dalam objek yang lain. Contoh berikut menggunakan opsi ini.
var car = { manyCars: {a: 'Saab', 'b': 'Jeep'}, 7: 'Mazda' };
console.log(car.manyCars.b); // Jeep
console.log(car[7]); // Mazda
Nama properti objek bisa berupa string apapun, termasuk string kosong. Jika nama properti akan menjadi pengidentifikasi JavaScript yang tidak valid atau angka, maka harus dilampirkan dalam tanda petik. Nama properti yang pengidentifikasi tidak valid juga tidak dapat diakses sebagai properti dot (.
), namun dapat diakses dan ditetapkan dengan notasi seperti array ("[]
").
var namaPropertiTidakBiasa = {
'': 'An empty string',
'!': 'Bang!'
}
console.log(namaPropertiTidakBiasa.''); // SyntaxError: Unexpected string
console.log(namaPropertiTidakBiasa['']); // An empty string
console.log(namaPropertiTidakBiasa.!); // SyntaxError: Unexpected token !
console.log(namaPropertiTidakBiasa['!']); // Bang!
Peningkatan Literal Objek
Di ES2015, literal objek diperluas untuk mendukung pengaturan prototipe pada konstruksi, singkatan untuk foo: penugasan
foo
, definisikan metode, pembuatan panggilan super, dan komputasi nama properti dengan ekspresi. Bersamaan dengan itu, ini juga membawa literatur dan deklarasi kelas lebih dekat bersama, dan membiarkan desain berbasis objek mendapatkan keuntungan dari beberapa kemudahan yang sama.
var obj = {
// __proto__
__proto__: theProtoObj,
// Shorthand for ‘handler: penangan’
handler,
// Metode
toString() {
// Pangilan super
return 'd ' + super.toString();
},
// Dikalkulasi (dinamis) nama properti
[ 'prop_' + (() => 42)() ]: 42
};
Tolong dicatat:
var foo = {a: 'alpha', 2: 'two'};
console.log(foo.a); // alpha
console.log(foo[2]); // two
//console.log(foo.2); // Error: missing ) after argument list
//console.log(foo[a]); // Error: a is not defined
console.log(foo['a']); // alpha
console.log(foo['2']); // two
Literal RegExp
Sebuah literal regex adalah pola yang dilampirkan diantara garis miring. Berikut ini adalah contoh literal regex.
var re = /ab+c/;
Literal string
Literal string adalah nol atau lebih karakter yang dilampirkan dengan tanda kutip ganda ("
) atau tunggal ('
). String harus dibatasi dengan tanda kutip dari jenis yang sama; Yaitu kedua tanda kutip tunggal atau kedua tanda petik ganda. Berikut ini adalah contoh literal string:
'foo'
"bar"
'1234'
'baris satu \n baris lainnya'
"Kucing jhon"
Anda dapat memanggil salah satu metode objek String pada nilai literal string-JavaScript secara otomatis mengubah literal string menjadi objek String sementara, memanggil metode tersebut, lalu membuang objek String sementara. Anda juga bisa menggunakan properti String.length
dengan literal string:
console.log("Kucing jhon".length) //
Akan mencetak jumlah simbol dalam string termasuk spasi.// Dalam hal ini, 11.
Di ES2015, template literal juga tersedia. Template string memberikan sintaksis gula untuk pembuatan string. Ini mirip dengan fitur interpolasi string di Perl, Python dan lainnya. Secara opsional, tag dapat ditambahkan untuk memungkinkan konstruksi string disesuaikan, menghindari serangan injeksi atau membangun struktur data tingkat tinggi dari konten string.
// Literal dasar kreasi string `Dalam JavaScript '\n' adalah sebuah line-feed.` // String beberapa baris `
Dalam template string JavaScript dapat berjalan di beberapa baris, namun string yang dikutip ganda dan tunggal tidak dapat dilakukan.` // Interpoasi string var name = 'Bob', time = 'today'; `Hello ${name}, how are you ${time}?` //
Membangun prefix permintaan HTTP digunakan untuk menafsirkan penggantian dan konstruksiPOST`http://foo.org/bar?a=${a}&b=${b} Content-Type: application/json X-Credentials: ${credentials} { "foo": ${foo}, "bar": ${bar}}`(myOnReadyStateChangeHandler);
Anda harus menggunakan literal string kecuali Anda secara khusus perlu menggunakan objek String. Lihat String
untuk rincian tentang objek String.
Menggunakan karakter khusus dalam string
Selain karakter biasa, Anda juga bisa menyertakan karakter khusus dalam string, seperti yang ditunjukkan pada contoh berikut.
'one line \n another line'
Tabel berikut mencantumkan karakter khusus yang dapat Anda gunakan dalam string JavaScript.
Karakter | Berarti |
---|---|
\0 |
Null Byte |
\b |
backspase |
\f |
form feed |
\n |
Baris baru |
\r |
Cariage return |
\t |
Tab |
\v |
Tab vertikal |
\' |
Apostrof atau kutipan tunggal |
\" |
Kutipan ganda |
\\ |
Karakter backslash |
\XXX |
Karakter dengan pengkodean Latin-1 ditentukan oleh hingga tiga digit oktal XXX antara 0 dan 377. Misalnya, \251 adalah urutan oktal untuk simbol hak cipta. |
\xXX |
Karakter dengan pengkodean Latin-1 yang ditentukan oleh dua digit heksadesimal XX antara 00 dan FF. Misalnya, \xA9 adalah urutan heksadesimal untuk simbol hak cipta. |
\uXXXX |
Karakter Unicode ditentukan oleh empat digit heksadesimal XXXX . Misalnya, \u00A9 adalah urutan Unicode untuk simbol hak cipta. Lihat rangkaian pelolosan Unicode. |
\u{XXXXX} |
Kode Unicode lolos. Misalnya, \u {2F804} sama dengan Unicode sederhana yang lolos \uD87E \uDC04. |
Karakter pelolosan
Untuk karakter yang tidak tercantum dalam tabel, tanda garis miring terbalik sebelumnya diabaikan, namun penggunaan ini tidak berlaku lagi dan harus dihindari.
Anda dapat memasukkan tanda petik di dalam string sebelum mendahului dengan garis miring terbalik. Ini dikenal sebagai pelolosan dari tanda petik. Sebagai contoh:
var quote = "He read \"The Cremation of Sam McGee\" by R.W. Service.";
console.log(quote);
Hasil dari ini adalah:
He read "The Cremation of Sam McGee" by R.W. Service.
Untuk menyertakan garis miring terbalik di dalam string, Anda harus melepaskan diri dari karakter garis miring terbalik. Misalnya, untuk menetapkan path file c:\temp
ke string, gunakan yang berikut ini:
var home = 'c:\\temp';
Anda juga bisa meloloskan dari baris istirahat sebelumnya mendahului mereka dengan garis miring terbalik. Garis miring terbalik dan baris istirahat keduanya terlepas dari nilai string.
var str = 'this string \
is broken \
across multiple \
lines.'
console.log(str); // this string is broken across multiplelines.
Meskipun JavaScript tidak memiliki sintaks "heredoc", Anda bisa mendekat dengan menambahkan pelolosan baris istirahat dan baris istirahat pada akhir setiap baris:
var poem =
'Roses are red,\n\
Violets are blue.\n\
Sugar is sweet,\n\
and so is foo.'
ECMAScript 2015 memperkenalkan tipe literal baru, yaitu template literal . Hal ini memungkinkan banyak fitur baru termasuk string beberapa baris!
var poem =
`Roses are red,
Violets are blue.
Sugar is sweet,
and so is foo.`
Informasi lebih lanjut
Bab ini berfokus pada sintaks dasar untuk deklarasi dan tipe. Untuk mempelajari lebih lanjut tentang konstruksi bahasa JavaScript, lihat juga bab-bab berikut dalam panduan ini:
Pada bab berikutnya, kita akan melihat konstruksi aliran kontrol dan penanganan kesalahan.