0-Hakim apakah variabel dan parameter diinisialisasi
if (x) {} // variabel diinisialisasi atau variabel tidak kosong atau variabelnya tidak nolFungsi 1-deklarasi tidak memerlukan deklarasi nilai pengembalian atau tipe parameter, dan akhir kalimat bahkan tidak memerlukan ';'
function sum (i1, i2) {return i1+i2}2 secara langsung menyatakan fungsi anonim untuk digunakan segera
var f = fungsi (i1, i2) {return i1+i2;}; alert (f (1,2)); // Peringatan fungsi anonim biasa (fungsi (i1, i2) {return i1+i2;} (3,4)); // Deklarasikan langsung, gunakan segera3-Js tidak memiliki konsep kelas, jadi beberapa metode terlihat seperti kelas
function person (name, usia) {this.name = name; // dinamis tambahkan atribut, mirip dengan dinamis A dalam C#. A = expendoObject () baru; this.age = usia; this.sayhello = function () {alert ('halo, nama saya'+name+'I Am'+usia+'tahun.')};} var p1 = orang baru ('lorry', 21); p1.sayhello (); // hubungi p1.gender = 'laki -laki' seperti kelas; // Dinamis tambahkan peringatan atribut 'gender' (p1.gender);Objek 4-array adalah array, dan Anda tidak perlu pra-kualifikasi panjang array.
var arr = array baru (); arr [0] = 0; arr [1] = 1; arr [2] = 2; untuk (var i = 0; i <= arr.length-1; i ++) {waspada (arr [i]);}5-array adalah array, juga kamus, dan juga tumpukan
var dict = array baru (); // sebagai kamus, gunakan dict ['i'] = 'wo'; dict ['love'] = 'ai'; dict ['you'] = 'ni'; alert (dict ['i']); // call alert (dict.love); // Panggilan seperti atribut panggilan (karakteristik bahasa dinamis) untuk (var k in dic) {// travel alert (k); // 'i', 'love', 'you'-> cetak kunci} untuk (var k dari) {// Peringatan Travel (k); // 'wo', 'ai', 'ni'-> cetak nilai} var arr = [1,2,3,4,5]; // metode penciptaan yang disederhanakan dari array var arr = {"lorry": 21, "cloud": 20}; // metode pembuatan gaya kamus;6-transfer semua elemen yang dapat dipanggil pada halaman saat ini
var s = null; for (var k dalam dokumen) {// Properti objek adalah S+= K+";";} alert (s);7-Penggunaan Operasi Subskrip Mirip dengan Array untuk mendapatkan karakter pada posisi string yang ditentukan
var s = 'halo, dunia!'; s [0]; // 'h's [6]; // [12]; // '!' S [13]; // Indeks yang tidak ditentukan di luar kisaran tidak akan melaporkan kesalahan, tetapi mereka akan selalu mengembalikan tidak ditentukan. Perlu dicatat bahwa string tidak dapat diubah. Jika Anda menetapkan nilai ke indeks tertentu dari string, tidak akan ada kesalahan, tetapi tidak ada efek: var s = 'test'; s [0] = 'x'; peringatan (s); // S masih 'tes'
Huruf kecil 8-kapsul
var s = 'halo'; s.touppercase (); // return 'hello' var s = 'hello'; s.tolowercase (); // kembalikan 'halo'
9-pencarian untuk lokasi di mana string yang ditentukan muncul
var s = 'halo, dunia'; s.indexof ('dunia'); // return 7s.indexof ('dunia'); // Tidak ada substring yang ditentukan ditemukan, pengembalian -110-get substring interval indeks yang ditentukan string
var s = 'halo, dunia. Substring (0, 5); // Mulai dari indeks 0 hingga 5 (tidak termasuk 5), kembalikan 'Hello's.substring (7); // Mulai dari indeks 7 ke akhir, kembalikan 'dunia'
Objek 11-Javascript adalah tipe data pengumpulan yang tidak teratur, yang terdiri dari beberapa pasangan nilai kunci.
var xiaoming = {name: 'xiaoming', kelahiran: 1990, sekolah: 'no.1 sekolah menengah', tinggi: 1.70, berat: 65, skor: null // pasangan nilai kunci terakhir tidak perlu ditambahkan ','}; xiaoming.name; // 'xiaoming'xiaoming.birth; // Akses 1990 ke atribut dilakukan melalui. operator, tetapi ini mensyaratkan bahwa nama atribut harus merupakan nama variabel yang valid. Jika nama atribut berisi karakter khusus, itu harus dilampirkan dengan []: var xiaohong = {name: 'xiaohong', 'sekolah menengah': 'no.1 sekolah menengah'}; xiaohong ['sekolah menengah']; // 'No.1 Middle School'Xiaohong [' Name ']; // 'xiaohong'xiaohong.name; // 'xiaohong'xiaohong.age; // belum diartikan12 untuk mendeteksi apakah Xiaoming memiliki atribut tertentu, gunakan operator:
'Nama' dalam xiaoming; // true'grade 'di xiaoming; // false *** Jika dalam menentukan bahwa ada properti, properti ini mungkin tidak xiaoming, itu dapat diwarisi dengan xiaoming:' tostring 'dalam xiaoming; // Benar *** Untuk menentukan apakah suatu properti dimiliki oleh Xiaoming sendiri, tidak diwariskan, Anda dapat menggunakan metode hasownproperty (): xiaoming.hasownproperty ('name'); // truexiaoming.hasownproperty ('tostring'); // PALSU13-peta
var m = peta baru ([['Michael', 95], ['Bob', 75], ['Tracy', 85]]); // Metode Inisialisasi Array 2D M.get ('Michael'); // 95 var m = peta baru (); // secara langsung menginisialisasi mapM.Set kosong ('adam', 67); // tambahkan key-valuem.set ('bob', 59); M.Has ('Adam'); // apakah kunci 'adam': truem.get ('adam'); // 67m.delete ('Adam'); // hapus kunci 'adam'm.get (' adam '); // var m m = peta baru ([[1, 'x'], [2, 'y'], [3, 'z']]); untuk (var n dari m) {// lintasan peta (n [1] + '=' + n [0]);}Metode 14-Built-in Foreach yang dapat diwariskan, yang menerima fungsi dan secara otomatis memanggil kembali setiap iterasi.
var a = ['a', 'b', 'c']; a.foreach (fungsi (elemen, indeks, array) {// elemen: titik ke nilai elemen saat ini // indeks: titik ke indeks // array saat ini: titik ke objek array itu sendiri peringatan (elemen);}); Set mirip dengan array, tetapi set tidak memiliki indeks, sehingga fungsi callback memiliki maksimum dua parameter: var s = set baru (['a', 'b', 'c']); s.foreach (function (elemen, set) {alert (elemen);}); Parameter fungsi callback peta adalah nilai, kunci dan peta itu sendiri: var m = peta baru ([[1, 'x'], [2, 'y'], [3, 'z']]); m.foreach (fungsi (nilai, kunci, peta) {peringatan (nilai);}); var a = ['a', 'b', 'c']; a.foreach (function (element) {alert (elemen);});Metode 15-penggunaan array (), lulus dalam fungsi kami sendiri, dan Anda mendapatkan array baru sebagai hasilnya:
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; arr.map (function (x) {return x*x;}). foreach (fungsi (elemen) {waspada (elemen); // [1, 4, 9, 16, 25, 36, 49, 64, 81]});16-penggunaan peta () untuk mengonversi semua angka dalam array menjadi string:
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; arr.map (string); // ['1', '2', '3', '4', '5', '6', '7', '8', '9']
17-penggunaan array berkurang () untuk melakukan perhitungan kumulatif
var arr = []; untuk (var x = 1; x <= 100; x ++) {arr.push (x); // Masukkan 1 ~ 100 ke dalam array} alert (arr.reduce (function (x, y) {return x+y; // jumlah kumulatif dari semua objek ARR, kembalikan hasil jumlah}));18-Penggunaan reduksi () Untuk membuat konversi yang luar biasa: Konversi [1, 2, 5, 8, 0] menjadi Integer 12580
var arr = [1, 2, 5, 8, 0]; alert (arr.reduce (function (x, y) {return x*10+y;}));19-Penggunaan Filter () Untuk menyaring elemen array tertentu
var arr = [0,1,2,3,4,5,6,7,8,9];alert(arr.filter(function(x){return x%2===0;}));//0,2,4,6,8 // Return true, keep deletion of the empty string in an Array var arr = ['A', '', 'B', null, undefined, 'C', ' ']; alert (arr.filter (function (s) {return s && s.trim (); // note: Tidak ada metode trim () dalam versi di bawah IE9})); // ['a', 'b', 'c']Metode 20-array's sort () mengubah semua elemen menjadi string terlebih dahulu dan kemudian mengurutkannya, jadi ...
[10, 20, 1, 2] .sort (); // [1, 10, 2, 20] Jadi, jika Anda ingin mengurutkan ukuran berdasarkan angka, Anda dapat menulis ini: var arr = []; untuk (var x = 1; x <= 10; x ++) {arr.push (x);} dokumen.write (arr+"<br/>"); document.write (arr.sort (fungsi (x, y) {y) {retrok Untuk mengabaikan pengaruh huruf, Anda harus terlebih dahulu mengonversi ke huruf besar atau huruf kecil var arr = ['Google', 'apel', 'microsoft']; alert (arr.sort (function (s1, s2) {var x1 = s1.touppercase (); var x2 = s2.touppercase (); return x1 <x2? False: false: var x2 = s2.touppercase (); return x1 <x2? False: false: false: true: false: true; // ['Apple', 'Google', 'Microsoft']Struktur program 21-penutupan
① Tetapkan fungsi sebagai nilai pengembalian ke parameter, panggil parameter untuk mendapatkan hasil perhitungan var arr = []; untuk (var n = 1; n <101; n ++) {arr.push (n);} fungsi lazy_sum (arr) {var sum = fungsi () {return arr.reduce (function (x, y) {return x+y; } return sum;} var f = lazy_sum (arr); waspada (f ()); ② Fungsi yang dikembalikan tidak segera dieksekusi, tetapi tidak dieksekusi sampai f () disebut fungsi fungsi () {var arr = []; untuk (var i = 1; i <= 3; i ++) {arr.push (function () {return i * i;}); } return arr;} var result = count (); // Ada 3 fungsivar f1 = hasil [0]; var f2 = hasil [1]; var f3 = hasil [2]; f1 (); // 16 Fungsi yang dikembalikan mengacu pada variabel I, tetapi tidak segera dieksekusi. f2 (); // 16 Ketika ketiga fungsi kembali, variabel yang saya rujuk telah menjadi 4, F3 (); // 16 Oleh karena itu, hasil akhirnya adalah 16 *** saat mengembalikan penutupan, ingat: Jangan merujuk ke variabel loop, atau variabel yang akan berubah di masa depan! ③ Apa jika Anda harus merujuk ke variabel loop? Metode ini adalah membuat fungsi lain dan menggunakan parameter fungsi untuk mengikat nilai saat ini dari variabel loop. Terlepas dari bagaimana variabel loop berubah dalam waktu berikutnya, nilai yang terikat ke parameter fungsi tetap tidak berubah: fungsi fungsi () {var arr = []; untuk (var i = 1; i <= 3; i ++) {arr.push (function (n) {return function () {return n*n;}} (i)); } return arr;} var result = count (); var f1 = hasil [0]; var f2 = hasil [1]; var f3 = hasil [2]; peringatan (f1 ()); // 1Alert (f2 ()); // 4Alert (f3 ()); // 9 ④ Dalam bahasa tanpa mekanisme kelas dan hanya fungsi, dengan bantuan penutupan, variabel pribadi dapat dienkapsulasi fungsi creat_counter (init) {var n = init || 0; return {add: function () {n+= 1; kembali n; }}} var c = creat_counter (); waspada (c.add ()); // 1alert (c.add ()); // 2alert (c.add ()); // 3 *** Dalam objek yang dikembalikan, penutupan diterapkan, yang membawa variabel lokal n, dan variabel n tidak dapat diakses dari kode eksternal sama sekali. Dengan kata lain, penutupan adalah fungsi yang membawa status, dan keadaannya dapat sepenuhnya disembunyikan dari luar. ⑤ Gunakan math.pow (x, y) untuk menghitung x^2 atau x^3 //math.pow(x, y)-> x^yfunction make_pow (y) {return function (x) {return math.pow (x, y); }} var pow2 = make_pow (2) var pow3 = make_pow (3) peringatan (pow2 (3)) // 9alert (pow3 (3)) // 27Fungsi 22-arrow (saat ini hanya didukung oleh firefox) // parameter => bodi fungsi
var f = x => x*xxxalert (f (3)) // 27
23-generator untuk menghasilkan urutan fibonacci
fungsi* fib (maks) {var t, a = 0, b = 1, n = 1; while (n <= max) {menghasilkan a; t = a+b; a = b; b = t; n ++; } return a;} untuk (var x fib (10)) {// iterate The Generator Object Document.write (x+''); // output 0, 1, 1, 2, 3} Gunakan generator untuk menghasilkan ID self-incremental (tidak diperlukan variabel global) fungsi* next_id () {untuk (var x = 1; x <100; hasil x ++);} var g = next_id (); alert (g.next (). value); // 1Alert (g.next (). value); // 2alert (g.next (). value); // 3Di atas adalah konten lengkap dari catatan belajar mandiri JavaScript (artikel yang harus dibaca) kepada Anda oleh editor. Saya harap semua orang akan mendukung wulin.com lebih banyak ~