Rumah > hujung hadapan web > tutorial js > Penjelasan terperinci tentang blok pernyataan {} dalam pengetahuan JavaScript_Basic

Penjelasan terperinci tentang blok pernyataan {} dalam pengetahuan JavaScript_Basic

WBOY
Lepaskan: 2016-05-16 15:13:15
asal
1438 orang telah melayarinya

Hari ini saya belajar menghuraikan rentetan json dan menggunakan kaedah eval() Mengapa saya perlu menambah kurungan semasa menghuraikan rentetan? Bingung. Ternyata blok pernyataan {} dalam JavaScript adalah samar-samar, dan ralat akan berlaku jika kurungan tidak ditambahkan Memahami kekaburan ini sangat membantu pemahaman kami tentang kod JavaScript.

1. Dua maksud {} blok pernyataan

mewakili blok pernyataan

a. Anda boleh menggunakan {} untuk menyertakan kod dalam javascript untuk memudahkan pengurusan kod dalam editor. Oleh kerana JavaScript tidak mempunyai skop peringkat blok, pendekatan ini tidak berbahaya.

{
//some code...
}
Salin selepas log masuk


b. Dalam JavaScript, pernyataan bersyarat, pernyataan gelung dan fungsi semuanya memerlukan {} blok pernyataan untuk menyepadukan kod

Objek literal

var box = {
  name:'kuoaho',
  age:21 
}
Salin selepas log masuk

//Pada masa ini [kod] digunakan sebagai ungkapan dan boleh diberikan kepada pembolehubah
//Malah, literal objek ialah ungkapan yang boleh menjana nilai objek

2. Apakah yang berlaku jika objek literal tidak digunakan sebagai ungkapan tugasan?

contoh:

  {name:'kuoao'}    //没有报错,但是也没有创建对象
  {name:'kuohao',age}  //报错
Salin selepas log masuk

Seperti yang dapat dilihat dari di atas, literal objek hanya boleh ditetapkan sebagai ungkapan Tidak ada yang salah dengan cara penulisan pertama, tetapi JavaScript menghuraikannya sebagai pernyataan label.

analisis:

  {name:'kuoao'}

    //{}一个语句块
   // name:'kuohao',一个label语句,用于标记for循环

Salin selepas log masuk

3. Tapi masalah datang lagi...

{
name:'kuohao',
age:21
}
Salin selepas log masuk

//Mengapa ini menyebabkan ralat? Bukankah ini cara literal objek ditulis?
Kerana kekaburan {} dalam JavaScript, {} bukan sahaja dianggap sebagai objek literal tetapi juga blok kod.

analysis:
  {
  name:'kuohao',
  age:21
  }
Salin selepas log masuk

Blok kod, dua pernyataan label, jika tiada koma, tiada masalah sama sekali, jadi kuncinya ialah koma Kedua-dua pernyataan itu harus dipisahkan dengan koma bertitik, jadi JavaScript akan menentukan bahawa ini adalah sintaks ralat

4. Tulisan yang betul

({
  name:'kuohao',
  age:21
  })

  //正确的写法

Salin selepas log masuk

() akan menukar pernyataan kepada ungkapan, yang dipanggil ungkapan pernyataan Bukankah objek literal ungkapan? Mengapa anda perlu () untuk menukar?

Selepas menambah kurungan, kekaburan ini boleh dihapuskan, kerana kod dalam kurungan akan ditukar menjadi penilaian ekspresi dan dikembalikan, jadi blok pernyataan menjadi objek literal, dan ia juga boleh disimpulkan bahawa, literal Objek mesti wujud sebagai ungkapan

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan