Assignment Kesalahan Tatabahasa Pada

 

1.0 PENGENALAN

Artikel yang dipilih untuk tugasan analisis kesalahan bahasa ini bertajuk ‘Hak Untuk Didengar’ dan diperoleh dari ‘Current Law Journal’ atau CLJ. Artikelini akan dianalisis dari aspek tatabahasa dan data-data berupa kesalahan bahasa yang terdapat di dalam teks akan dikumpulkan. Seterusnya, kesalahan-kesalahan yang ada akan diidentifikasikan dan diklasifikasikan mengikutketegori kebahasaan seperti kesalahan ejaan, imbuhan, pembentukan kata, dansebagainya. Cadangan-cadangan berupa contoh struktur ayat yang betul akanturut disertakan.

2.0 ANALISIS KESALAHAN BAHASA

Definisi kesalahan bahasa ialah kesalahan yang kerap kali dilakukan dalammembuat sesuatu ayat. Kesalahan dari segi tatabahasa ini merangkumikesalahan pembentukan kata, penggabungan kata, penyusunan ayat, ejaan, dankesalahan-kesalahan kebahasaan lain seperti penggunaan kata kerja, katanama, dan yang seumpamanya. Subtopik di bawah akan memberi contoh-contoh kesalahan bahasa yang dapat dikenalpasti dari artikel ‘Hak Untuk Didengar’.

2.1 PENGGUNAAN EJAAN

Ejaan adalah salah satu daripada komponen penting dalam pembentukan ayat bahasa Melayu. Perkataan-perkataan bahasa Melayuyang kadangkala dipinjam dari bahasa asing menyebabkan wujudnyakekeliruan dalam pembentukan ejaan. Selain itu, kesalahan ejaan jugamungkin berlaku akibat pecuaian penulis sehingga mengakibatkanmaksud sesuatu ayat itu terpesong atau tiada makna sama sekali.

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:

Deklarasi

Ada tiga macam deklarasi pada JavaScript.

Mendeklarasikan sebuah variabel, opsional menginisialisasi sebuah nilai.
Mendeklarasikan lingkup-blok, variabel lokal, opsional menginisialisasi sebuah nilai.
Mendeklarasikan sebuah lingkup-blok, baca-saja dinamakan konstanta.

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 , , $credit, dan .

Mendeklarasikan variabel

Anda bisa mendeklarasikan sebuah variabel dalam tiga cara:

  • Dengan kata kunci var.Misalnya ,. Sintaks ini dapat digunakan untuk mendeklarasikan variabel lokal dan global.
  • Cukup menugaskan sebuah nilai. Misalnya . 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 . Sintaks ini dapat digunakan untuk mendeklarasikan variabel lokal lingkup-blok. Lihat Lingkup variabeldi bawah ini.

Mengevaluasi variabel

Variabel yang dideklarasikan dengan menggunakan pernyataan  atautanpa penetapan nilai yang ditentukan memiliki nilai undefined.

Upaya untuk mengakses variabel yang tidak dideklarasikan akan menuju kepada pelemparan eksepsi ReferenceError:

Anda dapat menggunakan untuk menentukan apakah sebuah variabel memiliki nilai. Dalam kode berikut, variabel tidak diberi nilai, dan pernyataan  dievaluasi .

Nilai  berperilaku sebagai bila digunakan dalam konteks boolean. Misalnya, kode berikut menjalankan fungsi karena elemen  undefined:

Nilai  mengkonversi ke bila digunakan dalam konteks numerik.

Ketika Anda mengevaluasi sebuah variabel null, nilai null berperilaku seperti 0 dalam konteks numerik dan sebagai false dalam konteks boolean. Sebagai contoh:

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 , karena ruang lingkupnya adalah fungsi (atau konteks global) yang dideklarasikan, bukan bloknya, yang dalam hal ini adalah sebuah pernyataan .

Perilaku ini berubah, saat menggunakan deklarasi yang diperkenalkan di ECMAScript 2015.

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 . Jadi, bahkan jika Anda mendeklarasikan dan menginisialisasi setelah Anda menggunakan atau merujuk ke variabel ini, itu akan tetap memberikan undefined.

Contoh di atas akan dinterprestasikan sama dengan:

Karena hoisting, semua pernyataan dalam suatu fungsi harus ditempatkan sedekat mungkin ke atas fungsi. Praktik terbaik ini meningkatkan kejelasan kode.

Dalam ECMAScript 2015, variabel  tidak akan hoist ke bagian atas blok. Bagaimanapun, referensi variabel di blok sebelum deklarasi variabel menghasilkan sebuah . Variabel ini berada dalam "zona mati temporal" dari awal blok sampai deklarasi diproses.

Hoisting fungsi

Untuk fungsi, hanya deklarasi fungsi yang diangkat ke atas dan bukan ekspresi fungsi.

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 

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 dinyatakan dalam dokumen, Anda dapat merujuk variabel ini dari iframe as .

Konstanta

Anda bisa membuat variabel baca-saja, dinamai dengan kata kunci . 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.

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 . Jika kata kunci  dihilangkan, pengenal dianggap mewakili variabel.

Anda tidak dapat mendeklarasikan konstanta dengan nama yang sama dengan fungsi atau variabel dalam lingkup yang sama. Sebagai contoh:

Namun, properti objek yang ditugaskan pada konstanta tidak terlindungi, jadi pernyataan berikut dijalankan tanpa masalah.

Struktur dan tipe data

Tipe data

Standar ECMAScript terbaru mendefinisikan tujuh tipe data:

  • Enam tipe data yang primitif :
    • Boolean.Dan .
    • null.Kata kunci khusus yang menunjukkan nilai null. Karena JavaScript adalah huruf-sensitif/case-sensitive,  ini tidak sama dengan , , atau varian lainnya.
    • undefined. Properti tingkat atas yang nilainya tidak terdefinisi.
    • Number. Atau .
    • String. "howdy"
    • Symbol(baru dalam ECMAScript 2015). Tipe data yang halnya unik dan tidak dapat diubah.
  • Dan Object

Meskipun tipe data ini jumlahnya relatif kecil, namun memungkinkan Anda untuk melakukan fungsi-fungsi yang berguna dengan aplikasi Anda.  dan 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:

Dan nanti, Anda bisa menetapkan variabel yang sama dengan nilai string, misalnya:

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:

Dalam pernyataan yang melibatkan operator lain, JavaScript tidak mengubah nilai numerik menjadi string. Sebagai contoh:

Mengubah string menjadi angka

Dalam kasus yang sebuah nilai mewakili bilangan ada dalam memori sebagai string, ada metode untuk konversi.

Hanya akan memberikan bilangan bulat, jadi penggunaannya berkurang untuk desimal. Selain itu, praktik terbaik untuk 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):

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 dengan tiga elemen dan panjang tiga:

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 dan Koleksi diIndek untuk rincian tentang objek .

Ekstra koma dalam literal array

Anda tidak perlu menentukan semua elemen dalam literal array. Jika Anda memasukkan dua koma berturut-turut, array dibuat untuk elemen yang tidak ditentukan. Contoh berikut membuat array :

Array ini memiliki dua elemen dengan nilai dan satu elemen kosong ( adalah "Lion",  adalah , dan  merupakan "Angel").

Jika Anda menyertakan koma di akhir daftar elemen, koma diabaikan. Pada contoh berikut, panjang array adalah tiga. Tidak ada . Semua koma lainnya dalam daftar menunjukkan elemen baru.

Catatan: Koma diakhir dapat membuat kesalahan pada versi browser lama dan merupakan praktik terbaik untuk menghapusnya.

Dalam contoh berikut, panjang array adalah empat, dan dan  hilang.

Dalam contoh berikut, panjang array adalah empat, dan dan hilang. Hanya koma terakhir yang diabaikan.

Memahami perilaku ekstra  koma penting untuk memahami JavaScript sebagai bahasa, namun saat menulis kode Anda sendiri: secara eksplisit menyatakan elemen yang hilang sebagai akan meningkatkan kejelasan dan perawatan kode anda.

Literal boolean

Tipe Boolean memiliki dua nilai literal: dan .

Jangan membingungkan nilai Boolean primitif dan dengan nilai true dan false objek Boolean. Objek Boolean adalah pembungkus di sekitar tipe data Boolean primitif. Lihat  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:

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:

Sebagai contoh:

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 mendefinisikan sebuah properti , dan menetapkan sebuah string baru, " ";  Elemen kedua, properti ,  segera diberi hasil pemanggilan function elemen ketiga, properti  menggunakan variabel yang ada ( ).

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.

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 ("").

Peningkatan Literal Objek

Di ES2015, literal objek diperluas untuk mendukung pengaturan prototipe pada konstruksi, singkatan untuk   , 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.

Tolong dicatat:

Literal RegExp

Sebuah literal regex adalah pola yang dilampirkan diantara garis miring. Berikut ini adalah contoh literal regex.

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:

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 dengan literal string:

Akan mencetak jumlah simbol dalam string termasuk spasi.

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.

Dalam template string JavaScript dapat berjalan di beberapa baris, namun string yang dikutip ganda dan tunggal tidak dapat dilakukan.Membangun prefix permintaan HTTP digunakan untuk menafsirkan penggantian dan konstruksi

Anda harus menggunakan literal string kecuali Anda secara khusus perlu menggunakan objek String. Lihat untuk rincian tentang objek 

Menggunakan karakter khusus dalam string

Selain karakter biasa, Anda juga bisa menyertakan karakter khusus dalam string, seperti yang ditunjukkan pada contoh berikut.

Tabel berikut mencantumkan karakter khusus yang dapat Anda gunakan dalam string JavaScript.

KarakterBerarti
Null Byte
backspase
form feed
Baris baru
Cariage return
Tab
Tab vertikal
Apostrof atau kutipan tunggal
Kutipan ganda
Karakter backslash
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.
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.
Karakter Unicode ditentukan oleh empat digit heksadesimal XXXX . Misalnya, \u00A9 adalah urutan Unicode untuk simbol hak cipta. Lihat rangkaian pelolosan Unicode.
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:

Hasil dari ini adalah:

Untuk menyertakan garis miring terbalik di dalam string, Anda harus melepaskan diri dari karakter garis miring terbalik. Misalnya, untuk menetapkan path file  ke string, gunakan yang berikut ini:

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.

Meskipun JavaScript tidak memiliki sintaks "heredoc", Anda bisa mendekat dengan menambahkan pelolosan baris istirahat dan baris istirahat pada akhir setiap baris:

ECMAScript 2015 memperkenalkan tipe literal baru, yaitu  template literal . Hal ini memungkinkan banyak fitur baru termasuk string beberapa baris!

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.

0 Replies to “Assignment Kesalahan Tatabahasa Pada”

Lascia un Commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *