Penilaian

王林
王林asal
2023-09-03 23:09:06848semak imbas

Penilaian

Perkara berikut meringkaskan perkara yang perlu anda pelajari daripada membaca buku ini (dan mengkaji contoh kod). Baca setiap ringkasan dan kembali ke topik dalam buku jika anda tidak faham apa yang dikatakan.

  • Objek terdiri daripada sifat bernama yang menyimpan nilai.
  • Kebanyakan perkara dalam JavaScript berkelakuan seperti objek. Nilai kompleks adalah objek, manakala nilai primitif boleh dianggap seperti objek. Inilah sebabnya anda mungkin mendengar orang mengatakan bahawa segala-galanya dalam JavaScript ialah objek.
  • Cipta objek dengan memanggil pembina menggunakan kata kunci baharu atau menggunakan ungkapan literal singkatan. new 关键字调用构造函数或使用速记文字表达式来创建对象。
  • 构造函数是对象(Function() 对象),因此,在 JavaScript 中,对象创建对象。
  • JavaScript 提供九个原生构造函数: Object()Array()String()Number()Boolean()Function() Date()RegExp()Error()String()Number()Boolean() 构造函数具有双重用途:在需要时提供 a) 原始值和 b) 对象包装器,以便原始值可以像对象一样工作。
  • nullundefined"string"10truefalse 都是原始值,没有对象性质,除非像对象一样对待。
  • 当 >Object(), Array(), String(), Number(), Boolean(), Function(), Date ()RegExp()Error() 构造函数使用 new 关键字调用,创建一个称为“复杂对象”或“引用对象”的对象。李>
  • "string"10truefalse 在其原始形式中没有对象属性,直到它们被用作对象为止;然后 JavaScript 在幕后创建临时包装对象,以便这些值可以像对象一样工作。
  • 原始值按值存储,复制时按字面意思复制。另一方面,复杂对象值通过引用存储,并且在复制时通过引用复制。
  • 当它们的值相等时,原始值与其他原始值相等,而复杂对象仅当它们引用相同的值时才相等。也就是说:当一个复数值引用同一个对象时,两个复数值就等于另一个复数值。
  • 由于复杂对象和引用的性质,JavaScript 对象具有动态属性。
  • JavaScript 是可变的,这意味着可以随时操作本机对象和用户定义的对象属性。
  • 获取/设置/更新对象属性是通过使用点符号或方括号符号来完成的。当所操作的对象属性名称采用表达式形式时(例如 Array['prototype']['join'].apply()),括号表示法很方便。
  • 引用对象属性时,将使用查找链首先查看属性所引用的对象。如果该属性不存在,则在构造函数 prototype 属性中查找该属性。如果在那里找不到,因为原型持有一个对象值,并且该值是从 Object() 构造函数创建的,因此在 Object() 构造函数 prototype 属性 (Object) 上查找该属性.prototype)。如果在那里没有找到该属性,则确定该属性为 undefined
  • prototype 查找链是在 JavaScript 中设计继承(又名原型继承)的方式。
  • 由于对象属性查找链(又名原型继承),所有对象都继承自 Object() ,因为 prototype 属性本身就是一个 Object() 对象。
  • JavaScript 函数是一等公民:函数是具有属性和值的对象。
  • this 关键字在函数内部使用时,是引用包含该函数的对象的通用方法。
  • this 的值是在运行时根据调用该函数的上下文确定的。
  • 在全局范围内使用时,this 关键字引用全局对象。
  • JavaScript 使用函数来创建唯一的作用域。
  • JavaScript提供了全局作用域,所有JavaScript代码都存在于这个作用域中。
  • 函数(特别是封装函数)创建用于解析变量查找的作用域链。
  • 作用域链是根据代码编写方式设置的,不一定是根据调用函数的上下文设置的。这允许函数访问其最初编写的作用域,即使该函数是从不同的上下文调用的。这个结果称为闭包。
  • 不使用 var 在函数内部声明的函数表达式和变量将成为全局属性。但是,函数作用域内的函数语句仍然在编写它们的作用域中定义。
  • 在全局作用域中声明的函数和变量(没有 var)将成为全局对象的属性。
  • 在全局范围内声明的函数和变量(使用 var
  • Constructors ialah objek (objek Function()), jadi dalam JavaScript, objek mencipta objek.

JavaScript menyediakan sembilan pembina asli: Object(), Array(), String(), Number( ), <code>Boolean(), Function() , Date(), RegExp() dan Ralat(). Pembina String(), Number() dan Boolean() mempunyai dua tujuan: menyediakan a) nilai primitif dan b) objek apabila diperlukan Wrapper supaya nilai primitif boleh berfungsi seperti objek.

Values ​​​​null, undefined, "string", 10, true > dan <code>false ialah nilai primitif dan tidak mempunyai sifat objek melainkan dianggap seperti objek.

When

>Object(), Array(), String(), Nombor() , Boolean(), Function(), Tarikh (), RegExp() dan Ralat( ) Pembina dipanggil menggunakan kata kunci new, mencipta objek yang dipanggil "objek kompleks" atau "objek rujukan". 李> "string", 10, true dan false tidak mempunyai sifat objek dalam bentuk mentahnya sehingga ia digunakan objek ; JavaScript kemudian mencipta objek pembalut sementara di belakang tabir supaya nilai boleh berkelakuan seperti objek. #🎜🎜# #🎜🎜# Nilai asal disimpan mengikut nilai, dan disalin secara literal apabila disalin. Nilai objek kompleks, sebaliknya, disimpan melalui rujukan, dan apabila disalin, disalin melalui rujukan. #🎜🎜# #🎜🎜#Nilai primitif adalah sama dengan nilai primitif lain apabila nilainya sama, manakala objek kompleks hanya sama jika merujuk kepada nilai yang sama. Iaitu: apabila satu nilai kompleks merujuk kepada objek yang sama, dua nilai kompleks adalah sama dengan nilai kompleks yang lain. #🎜🎜# #🎜🎜#Disebabkan sifat objek dan rujukan yang kompleks, objek JavaScript mempunyai sifat dinamik. #🎜🎜# #🎜🎜#JavaScript boleh berubah, yang bermaksud objek asli dan sifat objek yang ditentukan pengguna boleh dimanipulasi pada bila-bila masa. #🎜🎜# #🎜🎜#Mendapatkan/menetapkan/mengemas kini sifat objek dilakukan dengan menggunakan tatatanda titik atau tanda kurungan segi empat sama. Notasi kurungan mudah apabila nama sifat objek yang anda kendalikan dalam bentuk ungkapan (seperti Array['prototype']['join'].apply()). #🎜🎜# #🎜🎜#Apabila merujuk sifat objek, rantai carian akan digunakan untuk melihat objek yang dirujuk oleh harta itu dahulu. Jika harta itu tidak wujud, harta itu dicari dalam atribut prototype pembina. Jika ia tidak ditemui di sana, kerana prototaip memegang nilai objek dan nilai itu dicipta daripada pembina Object(), jadi dalam pembina Object()prototaip (Object).prototaip). Jika harta itu tidak ditemui di sana, harta itu ditentukan untuk menjadi undefined. #🎜🎜# #🎜🎜#prototaip Rantaian carian ialah cara warisan (aka warisan prototaip) direka dalam JavaScript. #🎜🎜# #🎜🎜# Disebabkan oleh rantai carian sifat objek (aka warisan prototaip), semua objek mewarisi daripada Object() kerana sifat prototype itu sendiri ialah Object( ) objek. #🎜🎜# #🎜🎜#Fungsi JavaScript ialah warga kelas pertama: fungsi ialah objek dengan sifat dan nilai. #🎜🎜# #🎜🎜#Kata kunci ini, apabila digunakan di dalam fungsi, ialah cara umum untuk merujuk objek yang mengandungi fungsi. #🎜🎜# #🎜🎜#Nilai ini ditentukan pada masa jalan berdasarkan konteks di mana fungsi dipanggil. #🎜🎜# #🎜🎜#Apabila digunakan dalam skop global, kata kunci ini merujuk kepada objek global. #🎜🎜# #🎜🎜#JavaScript menggunakan fungsi untuk mencipta skop unik. #🎜🎜# #🎜🎜#JavaScript menyediakan skop global dan semua kod JavaScript wujud dalam skop ini. #🎜🎜# #🎜🎜# Fungsi (terutamanya fungsi pembalut) mencipta rantai skop untuk menghuraikan carian berubah-ubah. #🎜🎜# #🎜🎜#Rantai skop ditetapkan berdasarkan cara kod ditulis, tidak semestinya berdasarkan konteks di mana fungsi dipanggil. Ini membenarkan fungsi untuk mengakses skop di mana ia ditulis pada asalnya, walaupun jika fungsi itu dipanggil dari konteks yang berbeza. Keputusan ini dipanggil penutupan. #🎜🎜# #🎜🎜#Ekspresi fungsi dan pembolehubah yang diisytiharkan di dalam fungsi tanpa menggunakan var akan menjadi sifat global. Walau bagaimanapun, penyataan fungsi dalam skop fungsi masih ditakrifkan dalam skop di mana ia ditulis. #🎜🎜# #🎜🎜#Fungsi dan pembolehubah yang diisytiharkan dalam skop global (tanpa var) akan menjadi sifat objek global. #🎜🎜# #🎜🎜#Fungsi dan pembolehubah yang diisytiharkan dalam skop global (menggunakan var) menjadi pembolehubah global. #🎜🎜# #🎜🎜# #🎜🎜# #🎜🎜#KESIMPULAN#🎜🎜# #🎜🎜#Terima kasih kerana membaca! #🎜🎜#

Atas ialah kandungan terperinci Penilaian. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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