Variabel yang didefinisikan di luar fungsi harus berupa variabel global; Variabel yang didefinisikan di dalam fungsi, jika var dinyatakan, maka variabel adalah variabel lokal. Jika VAR tidak dinyatakan, maka variabelnya adalah variabel global.
1. Variabel global dan lokal Javascript var global = "global"; test (); function test () {var local = "local"; document.writeln (global); document.writeln (lokal);} document.writeln (global); document.writeln (lokal);2. Dua jenis cookie
i) Cookie yang gigih akan disimpan di hard disk klien.
ii) Balas Cookie: Tidak akan disimpan di hard disk klien, tetapi akan ditempatkan dalam memori proses browser. Ketika browser ditutup, cookie balasan akan dihancurkan.
3. Dalam JavaScript, fungsi adalah objek
4. Dalam JavaScript, tidak ada konsep metode (fungsi) yang berlebihan
5. Objek fungsi
Ada objek fungsi dalam JavaScript, dan semua fungsi khusus adalah jenis objek fungsi. Semua parameter yang diterima oleh objek fungsi adalah tipe string, parameter terakhir adalah badan fungsi yang akan dieksekusi, dan parameter sebelumnya adalah parameter yang benar -benar perlu diterima fungsi.
6. Argumen objek implisit
Dalam JavaScript, setiap fungsi memiliki argumen objek implisit, mewakili parameter yang sebenarnya diteruskan ke fungsi. Argumen. Panjang mewakili jumlah parameter yang benar -benar lulus.
7. Fungsi name.length
Setiap objek fungsi memiliki atribut panjang, menunjukkan jumlah parameter yang diharapkan oleh fungsi untuk diterima. Ini berbeda dari argumen fungsi. Argumen. Panjang mewakili jumlah parameter yang sebenarnya diterima oleh fungsi.
8. Ada lima tipe data primitif dalam javascript
Tidak terdefinisi, nol, boolean, angka, dan string. (Catatan: Dalam JavaScript, tidak ada tipe data char)
Hanya ada satu nilai untuk tipe data yang tidak ditentukan: tidak ditentukan;
Hanya ada satu nilai untuk tipe data nol: null;
Ada dua nilai tipe data Boolean: Benar dan Salah;
9. Jenis operator
Tipeof adalah operator unary diikuti dengan nama variabel. Ini digunakan untuk mendapatkan tipe data dari variabel. Nilai pengembaliannya adalah: tidak terdefinisi, boolean, angka, string dan objek.
10. Dalam JavaScript, jika fungsi tidak menyatakan nilai pengembalian, itu akan mengembalikan hubungan antara tidak terdefinisi 11, nol dan tidak terdefinisi
Tidak terdefinisi sebenarnya berasal dari nol. Misalnya:
Hubungan antara nol dan tidak terdefinisi
Javascript
waspada (tidak terdefinisi == null); // browser mengembalikan true
11. Konversi Jenis Paksa
Ada 3 gips dalam JavaScript: Boolean (nilai), angka (nilai), string (nilai).
12. Objek Objek
Dalam JavaScript, semua objek diwarisi dari objek objek.
Objek objek
Javascript
var objek = objek baru (); untuk (var v di objek) {peringatan (v);}Dalam kode di atas, browser tidak mencetak apa pun, yang tidak berarti bahwa objek objek tidak membawa atribut apa pun. Kode berikut menguji apakah properti dalam objek objek dapat disebutkan. Jika false dikembalikan, itu berarti bahwa properti dalam objek objek tidak dapat disebutkan.
Properti dalam objek objek tidak dapat disebutkan
Javascript
alert (objek.propertyisenumerable ("prototipe"));Jika browser muncul kotak dialog yang salah, itu berarti bahwa properti dalam objek tidak dapat disebutkan.
Selanjutnya, mari kita lihat apakah properti di objek jendela dapat disebutkan.
Properti dalam objek jendela dapat dihitung
Javascript
untuk (var v di jendela) {console.log (v);}Di Chrome, kita akan melihat banyak properti yang dicetak di konsol debugging browser, menunjukkan bahwa properti dalam objek jendela dapat disebutkan.
13. Dalam JavaScript, Anda dapat secara dinamis menambahkan atribut suatu objek atau secara dinamis menghapus atribut suatu objek.
Tambahkan/Hapus Properti Objek secara Dinamis
Javascript
var objek = objek baru (); waspada (objek.username); // objek yang tidak terdefinisi.
14. Cara paling umum untuk mendefinisikan objek dalam JavaScript
Cara paling umum untuk mendefinisikan objek
Javascript
var object = {username: "zhangsan", kata sandi: 12345}; waspada (objek.username); waspada (objek.password);15. Array
Definisi array
Javascript
// metode 1 var array = array baru (); array.push (1); array.push (2); array.push (3); waspada (array.length); // metode 2 (disarankan) var array = [1,25,4]; array.sort (); waspada (array);
Hubungi metode sort () dari array, dan browser mencetak 1, 25, 4, yang bukan hasil yang kita harapkan.
Untuk metode sortir array JavaScript, pertama -tama akan mengonversi konten yang akan diurutkan menjadi string (disebut metode tostring ()) dan mengurutkannya dalam urutan string.
Metode berikut bisa mendapatkan hasil yang kami harapkan (diurutkan berdasarkan ukuran array):
Penyortiran array
Javascript
function compare (num1, num2) {var temp1 = parseInt (num1); var temp2 = parseInt (num2); if (temp1 <temp2) {return -1; } lain jika (temp1 == temp2) {return 0; } else {return 1; }} var array = [1,25,3]; array.sort (bandingkan); peringatan (array);Kami kemudian mengimplementasikannya dalam fungsi anonim:
Penyortiran fungsi anonim
Javascript
var array = [1,25,3]; array.sort (function (num1, num2) {var temp1 = parseInt (num1); var temp2 = parseInt (num2); if (temp1 <temp2) {return -1;} lain jika (temp1 == temp2) {return 0;} else {return 1;}}); peringatan (array);16. Lima Cara Menentukan Objek Dalam JavaScript (tidak ada konsep kelas dalam JavaScript, hanya objek) i) memperluas sifat dan metode berdasarkan objek yang ada
Perluas sifat dan metode berdasarkan objek yang ada
Javascript
var object = new object (); // tambahkan name atribute object.name = "zhangsan"; // Tambahkan SayName Metode Object.sayName = function (name) {this.name = name; waspada (this.name);}; object.sayname ("kyle"); // panggil metode sayname, atribut nama dimodifikasi ke Kyle, dan browser akan mencetak KyleCara paling sederhana tidak nyaman untuk digunakan dan cocok untuk sementara membutuhkan objek.
ii) Buat objek di pabrik
Metode pabrik tanpa parameter:
Javascript
// Metode Pabrik Fungsi createObject () {var objek = objek baru (); // Buat objek objek.name = "zhangsan"; // Tambahkan objek atribut nama.password = "123"; // Tambahkan atribut kata sandi objek.get = function () {// Tambahkan metode GET (this.name+","+this.pass () {// Get Method Method (this.name+","+this.pass =pass () {// }; return object; // return Object ini} var object1 = createObject (); // calendar metode createObject factory untuk membuat objek1var object2 = createObject (); // call createObject Method factory untuk membuat objek object2Object1.get (); // call Object Method Object2.get ();/Cell Object Metode Get Object1.get ();Metode pabrik dengan parameter:
Javascript
function createObject (name, password) {var objek = objek baru (); Object.name = name; objek.password = kata sandi; object.get = function () {waspada (this.name+","+this.password); }; Return Object;} var Object1 = createObject ("Zhangsan", "123"); var objek2 = createObject ("lisi", "456"); objek1.get (); objek2.get ();Kerugian dari dua metode pabrik di atas tanpa parameter dan dengan parameter:
Setiap kali suatu objek dibuat, metode get dibuat dalam memori, yang merupakan pemborosan memori dan mempengaruhi kinerja. Dan harapan kami adalah membuat dua objek berbeda yang propertinya berbeda, tetapi metodenya dibagi. Jadi selanjutnya kita perlu meningkatkan metode CreateObject Factory.
Pendekatan pabrik yang ditingkatkan:
Javascript
function get () {alert (this.name+","+this.password);} function createObject (name, password) {var objek = objek baru (); Object.name = name; objek.password = kata sandi; objek.get = get; Return Object;} var Object1 = createObject ("Zhangsan", "123"); var objek2 = createObject ("lisi", "456"); objek1.get (); objek2.get ();Tentukan metode GET di luar fungsi CreateObject, sehingga metode GET dibagikan untuk setiap objek yang dibuat. Bagikan objek fungsi dengan banyak objek, alih -alih setiap objek memiliki objek fungsi.
iii) Metode konstruktor untuk membuat objek
Konstruktor tanpa parameter:
Javascript
function person () {// Sebelum mengeksekusi baris kode pertama, mesin JS akan menghasilkan objek untuk kami this.name = "zhangsan"; this.password = "123"; this.getInfo = function () {alert (this.name+","+this.password); }; // Ada pernyataan pengembalian implisit di sini untuk mengembalikan objek yang dihasilkan sebelumnya (yang juga merupakan tempat yang berbeda dari metode pabrik)} var p1 = orang baru (); p1.getInfo ();Konstruktor dengan parameter
Javascript
orang fungsi (nama, kata sandi) {this.name = name; this.password = kata sandi; this.getInfo = function () {alert (this.name+","+this.password); };} var p1 = orang baru ("zhangsan", "123"); var p2 = orang baru ("lisi", "456"); p1.getinfo (); p2.getinfo ();iv) Prototipe (prototipe) Pembuatan Objek
Prototipe adalah properti di objek objek
prototipe
Javascript
function person () {} person.prototype.name = "zhangsan"; person.prototype.password = "123"; person.prototype.getInfo = function () {alert (this.name+","+this.password);}; var p1 = orang baru (); var p2 = orang baru (); p1.name = "kyle"; // Setelah objek dihasilkan, ubah atribut p1.getInfo (); p2.getinfo ();Ada dua masalah dengan hanya menggunakan prototipe: pertama, Anda tidak dapat menetapkan nilai awal ke atribut dalam konstruktor, dan Anda hanya dapat mengubah nilai atribut setelah objek dihasilkan.
prototipe
Javascript
function person () {} person.prototype.name = array baru (); person.prototype.password = "123"; person.prototype.getInfo = function () {alert (this.name+","+this.password);}; var p1 = orang baru (); var p2 = orang baru (); p1.name.push ("zhangsan"); p1.name.push ("lisi"); p1.password = "456"; p1.getinfo (); p2.getinfo ()Browser akan mencetak: Zhangsan, Lisi, 456 dan Zhangsan, Lisi, 123.
Jika suatu objek dibuat menggunakan metode prototipe, semua objek yang dihasilkan akan berbagi properti dalam prototipe, dan jika suatu objek mengubah properti, itu juga akan tercermin dalam objek lain. Oleh karena itu, tidak mungkin untuk hanya menggunakan metode prototipe, dan juga perlu dikombinasikan dengan metode lain. Kami akan terus memperkenalkannya selanjutnya.
Gunakan prototipe + konstruktor untuk mendefinisikan objek
Javascript
function person () {this.name = new array (); this.password = "123";} person.prototype.getInfo = function () {alert (this.name+","+this.password);}; var p1 = orang baru (); var p2 = orang baru (); p1.name.push ("zhangsan"); p2.name.push ("lisi"); p1.getinfo (); p2.getinfo ();Gunakan metode prototipe + konstruktor untuk mendefinisikan objek. Properti antara objek tidak saling mengganggu, dan setiap objek berbagi metode yang sama. Ini cara yang lebih baik.
v) Metode prototipe dinamis
Javascript
function person () {this.name = "zhangsan"; this.password = "123"; if (typeOf person.flag == "tidak terdefinisi") {alert ("Invoked"); Tuan.prototype.getInfo = function () {alert (this.name + "," + this.password); } Person.flag = true; }} var p1 = orang baru (); var p2 = orang baru (); p1.getInfo (); p2.getInfo ();Dalam metode prototipe dinamis, dalam konstruktor, semua objek berbagi metode melalui jumlah bendera, dan setiap objek memiliki atributnya sendiri. Ketika kode di atas membuat objek untuk pertama kalinya, ia pertama kali menggunakan pernyataan penilaian untuk melihat apakah atribut bendera telah ditentukan. Jika tidak ditentukan, tambahkan metode GetInfo melalui prototipe, dan kemudian atur bendera ke True. Kemudian ketika objek dibuat untuk kedua kalinya, pernyataan IF dinilai salah dan dieksekusi dilewati. Ini mencapai hasil yang diinginkan, sifat objek yang dibuat tidak saling mengganggu, dan metode objek dibagi.
17. Warisan objek dalam JavaScript (5 cara)
Metode pertama: peniruan objek
Meniru warisan objek
Javascript
// Parent Function Class Parent (UserName) {this.userName = userName; this.sayhello = function () {alert (this.username); };} // Fungsi subkelas anak (nama pengguna, kata sandi) {// Tiga baris kode berikut adalah yang paling penting this.method = parent; this.method (nama pengguna); Hapus ini. this.password = kata sandi; this.sayworld = function () {waspada (this.password); };} var p = induk baru ("zhangsan"); var c = anak baru ("lisi", "123"); p.sayhello (); c.sayhello (); c.sayworld ()Metode kedua: call ()
Metode implementasi kedua pewarisan, metode panggilan, metode panggilan adalah metode yang didefinisikan dalam objek fungsi, sehingga setiap fungsi yang kita definisikan memiliki metode ini. Parameter pertama dari metode panggilan akan diteruskan ke ini dalam fungsi, mulai dari parameter kedua, dan ditugaskan ke parameter dalam fungsi satu per satu.
Panggil mewarisi kelas induk
Javascript
fungsi tes (str) {waspada (this.name+","+str);} var objek = objek baru (); objek.name = "zhangsan"; // test.call setara dengan memanggil uji uji uji.call (objek, "html5war"); // Tetapkan objek ke objek ke ini.Selanjutnya, kami menggunakan metode panggilan untuk mengimplementasikan warisan objek
Javascript
// Parent Function Class Parent (UserName) {this.userName = userName; this.sayhello = function () {alert (this.username); };} // Subclass Function Child (nama pengguna, kata sandi) {parent.call (ini, nama pengguna); this.password = kata sandi; this.sayworld = function () {waspada (this.password); };} var p = induk baru ("zhangsan"); var c = anak baru ("lisi", "123"); p.sayhello (); c.sayhello (); c.sayworld ();Metode ketiga: apply ()
Terapkan mewarisi kelas induk
Javascript
// Parent Function Class Parent (UserName) {this.userName = userName; this.sayhello = function () {alert (this.username); };} // Subclass Function Child (nama pengguna, kata sandi) {parent.Apply (ini, array baru (nama pengguna)); this.password = kata sandi; this.sayworld = function () {waspada (this.password); };} var p = induk baru ("zhangsan"); var c = anak baru ("lisi", "123"); p.sayhello (); c.sayhello (); c.sayworld ();Metode Apply sangat mirip dengan metode panggilan. Metode Apply juga merupakan metode yang didefinisikan dalam objek fungsi, sehingga setiap fungsi yang kita definisikan memiliki metode ini.
Ada perbedaan antara metode Apply dan metode panggilan: Parent.Apply (ini, array baru (nama pengguna)); Parameter kedua yang disahkan adalah array, sedangkan metode panggilan melewati beberapa parameter data diskrit. Kedua metode ini tidak dapat dikatakan baik dan buruk, itu tergantung pada skenario penggunaan spesifik.
Metode Keempat: Metode Rantai Prototipe (tidak dapat meneruskan parameter ke konstruktor)
Warisan rantai prototipe
Javascript
function parent () {} parent.prototype.hello = "hello"; parent.prototype.sayhello = function () {waspada (this.hello);}; function child () {} child.prototype = new parent (); Child.prototype.world = "dunia"; Child.prototype.sayworld = function () {alert (this.world);}; var c = anak baru (); c.sayhello (); c.sayworld ();Kerugian hanya menggunakan metode rantai prototipe: Tidak ada cara untuk melewati parameter, Anda hanya bisa menunggu sampai objek dibuat sebelum memodifikasinya. Mari kita selesaikan masalah ini dalam kombinasi dengan cara lain.
Metode kelima: metode campuran (disarankan)
Gunakan metode hybrid untuk mengimplementasikan warisan objek
Javascript
Function Parent (Hello) {this.hello = hello;} parent.prototype.sayhello = function () {alert (this.hello);} function child (hello, world) {parent.call (ini, halo); this.world = world;} child.prototype = new parent (); child.prototype.sayworld = function () {waspada (this.world);} var c = anak baru ("halo", "dunia"); c.sayhello (); c.sayworld ();Ringkasan di atas dari poin pengetahuan JavaScript dasar (disarankan) adalah semua konten yang saya bagikan dengan Anda. Saya harap Anda dapat memberi Anda referensi dan saya harap Anda dapat mendukung wulin.com lebih lanjut.