Rumah  >  Artikel  >  hujung hadapan web  >  Ringkasan API asli praktikal dalam kemahiran JavaScript_javascript

Ringkasan API asli praktikal dalam kemahiran JavaScript_javascript

WBOY
WBOYasal
2016-05-16 15:59:001385semak imbas

Pergi terus ke topik

Menghuraikan objek rentetan

Kita semua tahu bahawa objek JavaScript boleh disirikan ke dalam JSON, dan JSON juga boleh dihuraikan menjadi objek Tetapi masalahnya ialah jika terdapat "benda" yang bukan JSON mahupun objek, ia menyusahkan untuk ditukar kepada. sama ada satu, kemudian eval Ia boleh berguna

var obj = "{a:1,b:2}";  // 看起来像对象的字符串
eval("("+ obj +")")   // {a: 1, b: 2}

Oleh kerana eval boleh melaksanakan ungkapan rentetan, dan kami ingin melaksanakan objek rentetan obj menjadi objek sebenar, maka kami perlu menggunakan eval. Tetapi untuk mengelakkan eval daripada melaksanakan obj dengan {} sebagai pernyataan, kami meletakkan sepasang () di luar obj untuk membiarkannya dihuraikan menjadi ungkapan.

& (bitwise DAN)

Untuk menentukan sama ada sesuatu nombor ialah kuasa ke-2, anda boleh DAN dengan sendirinya tolak satu

var number = 4
(number & number -1) === 0 // true

^ (bitwise XOR)

Dengan pembolehubah ketiga yang berbeza, anda boleh menukar nilai kedua-dua pembolehubah

var a = 4,b = 3
a = a ^ b //  7
b = a ^ b //  4
a = b ^ a //  3

Format Tarikh

Ingin mendapatkan masa selepas format? Kini anda tidak perlu lagi mendapatkan tahun, bulan, hari, jam, minit dan saat, anda boleh melakukannya dalam tiga langkah

var temp = new Date();
var regex = /\//g;
(temp.toLocaleDateString() + ' ' + temp.toLocaleTimeString().slice(2)).replace(regex,'-');

// "2015-5-7 9:04:10"

Ingin menukar masa yang diformatkan kepada objek masa? Gunakan terus pembina Tarikh

new Date("2015-5-7 9:04:10");

// Thu May 07 2015 09:04:10 GMT+0800 (CST)

Ingin menukar objek masa standard kepada cap waktu unix? valueOf menyelesaikannya

(new Date).valueOf();

// 1431004132641

Ramai rakan juga mengingatkan saya bahawa ini boleh mendapatkan cap masa dengan cepat

Tarikh baharu

Satu dolar tambah

Tambah satu dolar boleh menukar nombor rentetan kepada nombor matematik dengan cepat, iaitu

var number = "23" 
typeof number // string
typeof +number // number

Anda boleh menukar objek masa kepada cap masa

new Date // Tue May 12 2015 22:21:33 GMT+0800 (CST)
+new Date // 1431440459887

URI yang melarikan diri

Anda perlu menghantar url sebagai parameter dalam laluan, sekarang elakkannya

var url = encodeURIComponent('http://segmentfault.com/questions/newest')

// "http%3A%2F%2Fsegmentfault.com%2Fquestions%2Fnewest"

Larian terbalik

decodeURIComponent(url)
// "http://segmentfault.com/questions/newest"


Nombor

Jika anda ingin mengekalkan beberapa tempat perpuluhan selepas titik perpuluhan tanpa perlu melakukan pemintasan rentetan, gunakan toFixed untuk membawanya pergi

number.toFixed()   // "12346"
number.toFixed(3)  // "12345.679"
number.toFixed(6)  // "12345.678900"

Julat parameter ialah 0~20, jika tidak ditulis, lalainya ialah 0

Pengesanan jenis

Typeof ialah kaedah pengesanan jenis yang paling kerap digunakan

typeof 3    // "number"
typeof "333"  // "string"
typeof false  // "boolean"

Ia bagus untuk jenis data asas (mudah), tetapi apabila merujuk kepada jenis data rujukan, ia tidak begitu mudah

typeof new Date()  // "object"
typeof []      // "object"
typeof {}      // "object"
typeof null     // "object"   

Tiga yang pertama boleh ditanggung, tetapi null sebenarnya mengembalikan objek. Adakah anda bergurau! ! ! (ps: Sebenarnya ini adalah pepijat JavaScript yang tidak dapat diperbaiki oleh orang ramai ꒰・◡・๑꒱ )

Pada masa ini, kami akan menggunakan instanceof

toString instanceof Function
// true
(new Date) instanceof Date
// true
[] instanceof Object
// true
[] instanceof Array
// true

Malah, kami dapati bahawa [] dan Object menjadi benar Walaupun kami tahu bahawa [] juga merupakan objek, kami berharap kaedah yang lebih tepat untuk menentukan jenis, dan kini ia ada di sini
Gunakan Object.prototype.toString() untuk menilai Agar setiap objek melepasi pengesanan, kita perlu menggunakan Function.prototype.call atau Function.prototype.apply untuk memanggil

var toString = Object.prototype.toString;

toString.call(new Date)  // "[object Date]"
toString.call(new Array)  // "[object Array]"
toString.call(new Object) // "[object Object]"
toString.call(new Number) // "[object Number]"
toString.call(new String) // "[object String]"
toString.call(new Boolean) // "[object Boolean]"

Perlu diambil perhatian bahawa kaedah toString berkemungkinan besar akan ditindih, jadi apabila anda perlu menggunakannya,
Anda boleh menggunakan kaedah Object.prototype.toString() terus

Melaksanakan pewarisan

Lihat contoh rasmi

//Shape - superclass
function Shape() {
 this.x = 0;
 this.y = 0;
}

Shape.prototype.move = function(x, y) {
  this.x += x;
  this.y += y;
  console.info("Shape moved.");
};

// Rectangle - subclass
function Rectangle() {
 Shape.call(this); //call super constructor.
}

Rectangle.prototype = Object.create(Shape.prototype);

var rect = new Rectangle();

rect instanceof Rectangle //true.
rect instanceof Shape //true.

rect.move(1, 1); //Outputs, "Shape moved."

Dapatkan sifat dan kaedah yang dimulakan melalui panggilan, dan dapatkan sifat dan kaedah pada objek prototaip melalui Object.create

Lelaran

ES5 mempunyai banyak fungsi lelaran, seperti peta, penapis, beberapa, setiap, kurangkan, dll.

Susunatur

API khusus diperkenalkan secara terperinci di sini.
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Glob...
Berikut adalah beberapa perkataan:
Sertai, pop, tolak, undur, anjak, isih, sambung, nyahshift akan menukar tatasusunan asal

concat,indexOf,lastIndexOf,slice,toString tidak akan mengubah tatasusunan asal

Kaedah lelaran seperti peta, penapis, beberapa, setiap, kurangkan dan untukSetiap tidak akan mengubah tatasusunan asal

Beberapa perkara yang perlu diberi perhatian:

1 syif, pop akan mengembalikan elemen yang dipadamkan
2 splice akan mengembalikan tatasusunan yang terdiri daripada elemen yang dipadamkan atau tatasusunan kosong
3 push akan mengembalikan panjang tatasusunan baharu
4 beberapa berhenti apabila benar
5 setiap Henti apabila terdapat palsu
6 Kaedah lelaran di atas boleh menambahkan parameter thisArg pada penghujungnya, iaitu nilai ini apabila melaksanakan panggilan balik.

Di atas adalah keseluruhan kandungan artikel ini, saya harap anda semua menyukainya.

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