Rumah  >  Artikel  >  hujung hadapan web  >  Ringkasan mata pengetahuan umum kemahiran js jquery_javascript

Ringkasan mata pengetahuan umum kemahiran js jquery_javascript

WBOY
WBOYasal
2016-05-16 16:11:311187semak imbas

1. Titik pengetahuan biasa dalam kod sumber jquery

 1.string, kaedah pintasan untuk penukaran jenis nombor

Salin kod Kod adalah seperti berikut:

// @param s ialah rentetan, n ialah nombor
fungsi fn(obj){
//Tukar kepada jenis Rentetan
var s = obj "";
//Tukar kepada jenis nombor
var n = obj;
}

Kongsi contoh temu bual:

//Tambah akan menukar yang berikut secara automatik menjadi rentetan
"64" 4="644"
//Penolakan akan menukarnya secara automatik kepada nombor
"64"-4=60

 2.penukaran jenis bool

!!obj, hantar ke jenis bool

Salin kod Kod adalah seperti berikut:

alert(!!0) //Hasilnya palsu
alert(!!"33dd") //Hasilnya benar

!obj, ambil jenis bool yang bertentangan

Salin kod Kod adalah seperti berikut:

alert(!0) //Hasilnya adalah benar
alert(!"222333") //Hasilnya palsu

 3. Perbezaan antara === dan ==

=== ialah kesamaan yang ketat dan tidak akan melakukan penukaran jenis, manakala == bukan kesamaan yang ketat dan akan melakukan penukaran jenis. Sesetengah buku js mengesyorkan bahawa pembangun tidak pernah menggunakan == atau !=.

Tetapi dalam kod sumber jquery, terdapat situasi di mana "==" atau "!=" digunakan - apabila menilai undefined dan null.

Salin kod Kod adalah seperti berikut:

//Penghakiman di sini mengecualikan obj menjadi batal dan obj tidak ditentukan
if(obj != null){
}

 4. Semak sama ada obj ialah objek tetingkap

Salin kod Kod adalah seperti berikut:

//null == window.null adalah benar
function isWindow(obj){
Kembalikan obj != null && obj == window.obj;
}

 5.|| dan && petua penggunaan

Salin kod Kod adalah seperti berikut:

//Contoh var aa=5; nama = aa || {} ; this.name = name ||. {} //Jika nilai nama wujud, nilainya ialah nama, jika tidak ia ialah {}
//Contoh var aa=5; nama = aa && {}; makluman(nama) maka nama ialah {}, kerana aa ialah 5, ia adalah benar jika ia bukan 0
this.name = bool && [] //Jika bool benar, nilainya ialah [], jika tidak bool

Contoh klasik:

Salin kod Kod adalah seperti berikut:
( window.foo || ( window.foo = "bar" ) ); alert(window.foo); //bar timbul
// Mengapa bar hasil akhir sebenarnya, ia boleh dilihat sebagai bar tidak ditentukan Hasilnya mestilah bar


 6 Perbezaan antara setTimeout(fn,0) dan setTimeout(fn)

SetTimeout(fn,0) dan setTimeout(fn) kedua-duanya adalah pelaksanaan tertunda, tetapi setTimeout(fn) mempunyai kelewatan yang lebih lama daripada setTimeout(fn,0), contohnya

Salin kod Kod adalah seperti berikut:

         fungsi fn(){
            var data = new Date();
untuk(var i=0;i<=1000;i ){
Jika(i==1000){
console.log("fn=" data.getTime());
                }
            }
}
         fungsi fn1(){
            var data = new Date();
untuk(var i=0;i<=1000;i ){
Jika(i==1000){
console.log("fn1=" data.getTime());
                }
            }
}
​​ setTimeout(fn,0),
​​ setTimeout(fn1);

Keputusan:

7. Tentukan sama ada ia adalah nilai berangka

Salin kod Kod adalah seperti berikut:

fungsi ialahNumeric(obj){
kembalikan !isNaN(parseFloat(obj)) && isFinite(obj);
}

8. Tentukan sama ada ia objek kosong

Salin kod Kod adalah seperti berikut:

fungsi ialahEmptyObject(){
nama var;
//Melintasi jika objek tidak kosong dan kembalikan
untuk (nama dalam obj) {
         kembali palsu;
}
Kembalikan benar;
}

 9. Jenis objek pengesanan

Kesan jenis objek obj dan jenis pulangan Gunakan Object.prototype.toString() untuk menentukan jenis Walau bagaimanapun, terdapat masalah keserasian dengan versi IE yang lebih rendah, jadi {}.toString digunakan untuk memantau. pulangan ialah [Array objek], [Objek Objek], [Fungsi objek]

Salin kod Kod adalah seperti berikut:

//Taip penghakiman
fungsi ialahType(type){
Kembalikan fungsi(o){
           kembalikan Object.prototype.toString.call(o) === '[objek ' type ']';
}
}
var isString = isType(“String”);
var isObject = isType("Objek");
var isArray = isType("Array");
isString("Saya Barret Lee.");
isArray([1,2,3]);
isObject({});

 10. Helah ajaib trim untuk membuang ruang dalam jquery

Salin kod Kod adalah seperti berikut:

//Bersamaan dengan if (String.prototype.trim && “uFEFFxA0″.trim() !== “”) Penyemak imbas lanjutan sudah menyokong kaedah trim String asli, tetapi pFan juga tidak boleh menghuraikan kosong lebar penuh untuk mengelakkannya. Jadi penghakiman tambahan ditambah: "uFEFFxA0".trim() !== ""
vart core_version = "1.0",core_trim = core_version.trim; trim fungsi(){
Core_trim && !core_trim.call("uFEFFxA0") ?
fungsi (teks) {
                                      kembalikan teks == batal ?
"" :
Core_trim.Call (teks); // Di sini, mengikut pemahaman saya, ia sepatutnya "" ".trim.call (teks). Ia agak tidak difahami untuk menukarnya kepada" 1.1.0 ".trim.ct ( teks)
>                                                                                                                                       
                                                       // Penyemak imbas lanjutan sudah menyokong kaedah pemangkasan String asli Jika penyemak imbas tidak menyokongnya, gunakan
fungsi (teks) {
Var Whitespace = "[\ x20 \ t \ r \ n \ n \ f]",
                       rtrim = RegExp baharu("^" ruang kosong " |((?:^|[^\\])(?:\\.)*)" ruang kosong " $", "g");
                                      kembalikan teks == batal ?
"" :
(teks "").ganti(rtrim, "");
                    },
                            // fungsi nodeName adalah untuk mendapatkan nama nod nod dom atau untuk menentukan sama ada namanya sepadan dengan parameter masuk
nodeName: function(elem,name){
//Di bawah IE, nodeName nod DOM adalah dalam huruf besar, seperti DIV
                                  kembalikan elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
                }
}


 

11 Kesan sama ada tatasusunan atau seperti tatasusunan mengandungi nilai masuk dalam jquery

Salin kod Kod adalah seperti berikut:

/**
Semak sama ada nilai yang diluluskan wujud dalam tatasusunan, jika wujud, kembalikan kedudukan nilai, jika tidak, kembalikan -1.
*elem menentukan nilai yang hendak diambil.
*arr array
*i Parameter integer pilihan. Menentukan kedudukan dalam tatasusunan untuk mula mencari. Nilai undang-undangnya ialah 0 hingga arr.length - 1. Jika parameter ini ditinggalkan, carian akan bermula dari elemen pertama tatasusunan.
,*/
fungsi dalamArray(elem, arr, i){
var len;
Jika (arr) {
//Jika penyemak imbas menyokong Array, ia mempunyai kaedah indexOf
Jika ([].indexOf) {
                kembali [].indexOf.call(arr, elem, i);
}
        len = arr.length;
//Apabila i ialah nombor negatif, mulakan indeks dari kedudukan len i di hujung tatasusunan
//Fahami ini terbahagi kepada dua bahagian i = i ? (i < 0 ? Math.max(0, len i) : i) : 0;, i=i is true, execute (i < 0 ? Math. maks (0, len i) : i), bagaimanapun laksanakan i=0
i = i ? i < 0 ? untuk (; i < len; i ) {
// Pemeriksaan dua kali menghalang tatasusunan seperti ini ar = [];ar[1]=1;ar[0] = undefined; 0 dalam ar =false;a[0]===undefined;                                                                                                                                                                                                                                                                                                Jika (i dalam arr && arr[i] === elem) {
                   kembalikan i;
            }
}
}
Kembali -1;
}



2. Perkara pengetahuan umum tentang rantaian prototaip dalam JavaScript

 1.hasOwnProperty() kaedah

Gunakan kaedah hasOwnProperty() untuk mengesan sama ada sesuatu sifat wujud dalam contoh atau dalam prototaip. Kaedah ini mewarisi daripada Objek dan hanya akan mengembalikan benar jika sifat yang diberikan wujud dalam contoh objek.

Salin kod Kod adalah seperti berikut: Orang Berfungsi(){
This.age=25;
This.job="web";
}
Person.prototype={
          nama: 'pingfan',
          sayName:function(){
makluman(nama.ini);
                }
}
var person1=Orang baharu();
//Daripada pembina, mengesan atribut dan kembalikan benar
alert(person1.hasOwnProperty("umur"));
//Daripada atribut prototaip, kembalikan false
alert(person1.hasOwnProperty("nama"));
Person1.name='ping';
//Dari atribut contoh, kembalikan benar
alert(person1.hasOwnProperty("nama"));



2. Pastikan hanya satu contoh melalui instanceOf

Salin kod Kod adalah seperti berikut: fungsi shiCha(pilihan){
//Instance sekali sahaja
Jika( !(contoh shiCha ini)){
          kembalikan shiCha(opt) baharu;
                                                                         }
var shicha = shiCha();

 3.Array.prototype.slice.call(arguments) dalam javascript 

Kami biasanya melihat Array.prototype.slice.call(arguments,1) atau Array.prototype.slice.call(arguments), dan sebenarnya, kami hanya menggunakan slice() dalam Array.prototype to tukar argumen Tukarkannya kepada tatasusunan, dan lebih mudah untuk bekerja dengan tatasusunan ini Parameter kedua ialah nilai indeks, bermula dari nilai indeks, dan mengubahnya menjadi tatasusunan, contohnya Array.prototype.call("22223. ",2) dan Array.prototype.call([ 1,2,3,4],2), bermula dari rentetan kedua.

Salin kod Kod adalah seperti berikut:

fungsi sliArray(array){
//Output adalah dari indeks 1 hingga indeks 3
                 kembalikan Array.prototype.slice.call(array,1,3);
}
alert(sliArray([1,2,3,4,5,6])) //Hasilnya ialah 2,3

 4. Gunakan objek kosong F untuk mencapai pewarisan objek, yang paling berkesan

Salin kod Kod adalah seperti berikut:

//Gunakan objek kosong sebagai media untuk kesan pewarisan terbaik
fungsi mewarisi(C,P){
         var F=function(){};
          F.protototaip = P.prototaip;
C.prototaip = baharu F();
C.prototype.constructor = C;
}

3. Set kaedah yang biasa digunakan dalam javascript
1. Kaedah operasi tatasusunan biasa

Penyahduaan tatasusunan:

Salin kod Kod adalah seperti berikut:

//Prototaip deduplikasi tatasusunan
Array.prototype.unqie = function(){
var arr = ini, len=this.length, obj={}, newArr=[]; Sementara (len--){
Jika(obj[ arr[len] ] !== arr[len]){
                                                                                                                                                                                                                                              obj[arr[len]] = arr[len];                                                                                                                                                                                                                                                                }
kembalikan newArr.reverse(); }



Dapatkan nilai maksimum dalam tatasusunan:

Salin kod

Kod adalah seperti berikut: Array.prototype.arrMax=function(){             var arr=this, len=this.length,max=arr[0];
untuk(var i=1;i Jika(maks                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       }
        pulangan maks;
}
//Dapatkan nilai maksimum dalam tatasusunan melalui isihan
​Array.prototype.arrMax=function(){
  var arr=ini;
arr.sort(fungsi(a,b){
   kembali a-b;
  })
Kembalikan arr[arr.length-1];
}
//Gunakan Math.max untuk mendapatkan nilai maksimum tatasusunan
Array.prototype.arrMax =function(){
var array = ini;
Kembalikan Math.max.apply(null, array);
}
makluman([1,2,3,4,5,6,9,8,7,9].arrMax());

Dapatkan nilai minimum dalam tatasusunan:

Salin kod Kod adalah seperti berikut:

//Nilai terkecil dalam tatasusunan
Array.prototype.arrMin=function(){
            var arr=ini, len=this.length,min=arr[0];
untuk(var i=1;i Jika(min>arr[i]){
Min=arr[i];
                                                                                                                                                                          }
        pulangan min;
}
//Dapatkan nilai terkecil dalam tatasusunan melalui isihan
Array.prototype.arrSortMin=function(){
  var arr=ini;
arr.sort(fungsi(a,b){
   kembali a-b;
  })
Kembalikan arr[0];
}
//Gunakan Math.max untuk mendapatkan nilai maksimum tatasusunan
Array.prototype.arrSortMin =function(){
var array = ini;
Kembalikan Math.min.apply(null, array);
}
makluman([1,2,3,4,5,6,9,8,7,9].arrSortMin());

Salin tatasusunan:

Salin kod Kod adalah seperti berikut:
Array.prototype.copy =
fungsi() {
Kembalikan [].concat(ini);
};

Untuk mengalih keluar hanya elemen tertentu daripada tatasusunan, anda hanya boleh mengalih keluar satu Jika anda ingin mengalih keluar lebih daripada satu, gunakan pemprosesan unik dahulu:

Salin kod Kod adalah seperti berikut:
Array.prototype.remove = fungsi(nilai){
untuk(var i=0,len=this.length;i {
Jika(ini[i]==nilai){
This.splice(i, 1);
             rehat;
}
}
 
Kembalikan ini;
}

2. Kaedah ditetapkan untuk dokumen operasi.loaction (kaedah berkaitan yang diringkaskan oleh rakan taman dipinjam di sini)

Salin kod Kod adalah seperti berikut:

pFan.url = { //#URL
//Parameter: nama pembolehubah, jika url kosong, jadual akan diambil daripada url halaman semasa
GetQuery: fungsi (nama, url) {
        var u = arguments[1] || ​ ​ , reg = RegExp baharu("(^|&)" nama "=([^&]*)(&|$)")
          , r = u.substr(u.indexOf("?") 1).match(reg)
;
          pulangkan r != null r[2] : "";
}
, getHash: function (nama, url) { //# Dapatkan nilai hash
        var u = argumen[1] ||. location.hash;
          var reg = RegExp baharu("(^|&)" nama "=([^&]*)(&|$)");
         var r = u.substr(u.indexOf("#") 1).match(reg);
Jika (r != null) {
                pulangkan r[2];
}
         kembalikan "";
}
, parse: function (url) { //# Parse URL
         var a = document.createElement('a');
 url = url ||. document.location.href;
         a.href = url;
         kembali {
                sumber: url
​ ​ , protokol: a.protocol.replace(':', '')
, , hos: a.hostname
, , port: a.port
​​​ , pertanyaan: a.cari
, , fail: (a.pathname.match(/([^/?#] )$/i) || [, ''])[1]
​ ​ , cincang: a.hash.replace('#', '')
, , laluan: a.pathname.replace(/^([^/])/, '/$1')
          , saudara: (a.href.match(/tps?://[^/] (. )/) || [, ''])[1]
​​​​ , segmen: a.pathname.replace(/^//, '').split('/')
        };
}
};

 3. Ungkapan biasa yang biasa digunakan

Salin kod Kod adalah seperti berikut:

pFan.regExp = { //# Padanan rentetan
//Adakah ia nombor? Integer, nombor titik terapung
isNum: function (num) { //# Adakah ia array
         pulangkan !isNaN(num);
}
, isEmail: function (mail) {//# Adakah ia alamat e-mel
kembalikan /^([a-z0-9] [_-.]?)*[a-z0-9] @([a-z0-9] [_-.]?)*[a-z0-9] .[a-z]{2,5}$/i.test(mel);
}
, isIdCard: function (kad) { //# Adakah ia kad ID
          return /^(d{14}|d{17})(d|[xX])$/.test(kad);
}
, isMobile: function (mobile) { //# Adakah ia telefon bimbit
          return /^0*1d{10}$/.test(mobile);
}
, isQQ: function (qq) { //# Adakah QQ
           kembali /^[1-9]d{4,10}$/.test(qq);
}
, isTel: function (tel) { //# Adakah ia nombor telefon
           return /^d{3,4}-d{7,8}(-d{1,6})?$/.text(tel);
}
, isUrl: function (url) { //# Adakah ia URL
          return /https?://[a-z0-9.-]{1,255}.[0-9a-z-]{1,255}/i.test(url);
}
, isColor: function (color) { //# Adakah ia warna heksadesimal
          return /#([da-f]{3}){1,2}$/i.test(color);
}
//@id: kad pengenalan,
// @sekarang: masa semasa seperti: New Date('2013/12/12'), '2013/12/12'
// @umur: Umur yang dibenarkan
, isAdult: function (id, allowAge, now) { //# Sama ada umur dewasa
        var umur = 0 // Tahun, bulan dan hari pengguna
, , nowDate = 0 //Tahun, bulan dan hari semasa
;
​​​​​ allowAge = parseFloat(allowAge) || sekarang = jenis sekarang == 'rentetan' ? new Date(now) : (now || new Date());

jika (!this.isIdCard(id)) {

              pulangan palsu;
}
//Kad ID 15 digit
Jika (15 == id.panjang) {
Umur = '19' id.slice(6, 6);
         } lain {
Umur = id.slice(6, 14);
}
//Taipkan Integer penukaran
Umur = ~~umur;
nowDate = ~~(Tydic.date.format('YYYYMMDD', now));
//Bandingkan umur
Jika (nowTarikh - umur < allowUmur * 1e4) {
              pulangan palsu;
}
        kembali benar;
}
//Nombor titik terapung
, isFloat: function (num) { //# Adakah ia nombor titik terapung
           kembali /^(([1-9]d*)|(d .d )|0)$/.test(num);
}
//Integer positif
, isInt: function (num) { //# Adakah ia integer positif
          return /^[1-9]d*$/.test(num);
}
//Sama ada mereka semua aksara Cina
, isChinese: function (str) { //# Adakah semua aksara Cina
          return /^([u4E00-u9FA5]|[uFE30-uFFA0]) $/gi.test(str);
}
};

 4. Kaedah ditetapkan untuk nama kelas pengendalian

Salin kod Kod adalah seperti berikut:

PFan.conClass = {
HasClass:function(){
            return ele.className.match(new RegExp('(\s|^)' cls '(\s|$)')); },
AddClass:function(){
Jika (!hasClass(ele,cls)) ele.className = " " cls; },
​ removeClass:function(){
Jika (hasClass(ele,cls)) {
                var reg = new RegExp('(
\s|^)' cls '(\s|$)'
);                  ele.className=ele.className.replace(reg,' ');                                                                                                                        } }


 5. Kaedah manipulasi rentetan

Salin kod

Kod adalah seperti berikut:

pFan.string = { //# string
codeHtml: function (kandungan) { //# Escape HTML characters
          kembalikan ini.ganti(kandungan, {
             '&': "&"
        , '"': """
        , "'": '''
, , '<': "<"
, , '>': ">"
        , ' ': " "
        , 't': " "
        , '(': "("
, , ')': ")"
, , '*': "*"
        , ' ': "+"
        , ',': ","
, , '-': "-"
, , '.': "."
, , '/': "/"
        , '?': "?"
, , '\': "\"
, , 'n': "
"
        });
}
//Ulang rentetan
, ulang: fungsi (perkataan, panjang, akhir) { //# Ulang rentetan
          hujung = tamat ||. //Tambah pada akhir
         panjang = ~~panjang;
            kembalikan Tatasusunan baharu(panjang * 1 1). sertai(perkataan) '' tamat;
}
//Tambah awalan
, addPre: function (pra, perkataan, saiz) { //# Lengkap. Contohnya, tambah 0
sebelum nombor Pra = pra ||. '0';
saiz = parseInt(saiz) || 0;
           perkataan = Rentetan(perkataan || '');
      var length = Math.max(0, size - word.length);
          kembalikan ini. ulang (pra, panjang, perkataan);
}
//Alih keluar ruang pada kedua-dua belah
, trim: function (text) { //# Alih keluar ruang pada kedua-dua belah
           kembali (teks || '').ganti(/^s |s$/, '');
}
//Alih keluar ruang kiri
,ltrim:function(){
           return s.replace( /^(s*|*)/, ""); }
//Alih keluar ruang di sebelah kanan
,rtrim:function(){
           return s.replace( /(s*|*)$/, ""); }
//Kembali ke kandungan skrip
,evalscript:function(s) {
If(s.indexOf('           var p = /]*?>([^x00]*?)/ig;
var arr = [];
​​​​while(arr = p.exec(s)) {
var p1 = /]*?src="([^>]*?)"[^>]*?(reload="1")?(?:charset="([ w-] ?)")?>/i;
            var arr1 = [];
             arr1 = p1.exec(arr[0]);
                jika(arr1) {
                   lampiran (arr1[1], '', arr1[2], arr1[3]);
              } lain {
p1 = /([^x00] ?)/i;
                 arr1 = p1.exec(arr[0]);
                 lampiran('', arr1[2], arr1[1].indexOf('reload=') != -1);
            }
}
        kembali s;
}
//Kosongkan kandungan skrip
,stripscript:function(){
           return s.replace(/.*?/ig, '');
}
//Penggantian rentetan
, gantikan: fungsi (str, semula) { //# Penggantian rentetan
          str = str || untuk (kunci var dalam semula) {
               ganti(kunci, [kunci] semula);
        };
         fungsi ganti(a, b) {
            var arr = str.split(a);
             str = arr.join(b);
        };
         kembali str;
}
, xss: function (str, type) { //# XSS escape
//Penapis kosong
Jika (!str) {
               return str === 0 ? }
suis (jenis) {
               huruf besar "html": //Tapis XSS dalam rentetan html
Kembalikan str.replace(/[&'"<>/\-x00-x09x0b-x0cx1fx80-xff]/g, fungsi (r) {
                         kembalikan "" r.charCodeAt(0) ";"
}).replace(/ /g, " ").replace(/rn/g, "
").replace(/n/g, "
").replace(/ r/g, "
");
                 rehat;
​​​​​​​ huruf "htmlEp": //Tapis XSS dalam atribut nod DOM
                      return str.replace(/[&'"<>/\-x00-x1fx80-xff]/g, fungsi (r) {
                         kembalikan "" r.charCodeAt(0) ";"
                });
                 rehat;
              huruf "url": //Tapis url
Return escape(str).replace(/ /g, "+");
                 rehat;
            huruf "miniUrl":
                     return str.replace(/%/g, "%");
                 rehat;
            huruf "skrip":
                    return str.replace(/[\"]/g, fungsi (r) {
                       kembalikan "\" r;
}).ganti(/%/g, "
\x25").ganti(/n/g
, "
\n").ganti(/r/g, "\r").ganti(/x01/g, "\x01");                  rehat;kes "reg":
                      return str.replace(/[\^$* ?{}.()[]]/g, fungsi (a) {
                       kembalikan "\" a;
                });
                 rehat;
                 lalai:
                   return escape(str).replace(/[&'"<>/\-x00-x09x0b-x0cx1fx80-xff]/g, fungsi (r) {
                         kembalikan "" r.charCodeAt(0) ";"
}).replace(/ /g, " ").replace(/rn/g, "
").replace(/n/g, "
").replace(/ r/g, "
");
                 rehat;
}
}
// kata buruk, tapis perkataan sensitif
//@teks: teks yang akan ditapis, taip: rentetan
//@words: Perkataan sensitif, jenis, tatasusunan, seperti: ['adik awak', 'Saya kalah', 'sial']
// Jika anda menggunakan padanan biasa, panjang teks ialah 1 juta, panjang perkataan ialah 1 juta, dan ia mengambil masa 4 saat!
, badWord: fungsi (teks, perkataan) { //# Penapisan perkataan sensitif
         teks = Rentetan(teks || '');
perkataan = perkataan || [];
          var reg = RegExp baharu(words.join('|'), 'g')
, , _diri = ini;
           kembalikan text.replace(reg, function ($0) {
            var length = String($0 || '').panjang;
               return _self.repeat('*', length);
        });
}
};

 6. Set kaedah penyulitan

Salin kod Kod adalah seperti berikut:

pFan.encrypt = { //# 加密
    md5: fungsi (perkataan) {  //# md5 哈希算法
        /*
         * Crypto-JS 3.1.2
         * http://code.google.com/p/crypto-js
         */
        var CryptoJS = fungsi (s, p) {
            var m = {}, l = m.lib = {}, n = fungsi () { }, r = l.Base = { lanjutkan: fungsi (b) { n.prototaip = ini; var h = baru n; b && h.mixIn(b); h.hasOwnProperty("init") || (h.init = function () { h.$super.init.apply(this, arguments) }); h.init.prototaip = h; h.$super = ini; return h }, cipta: function () { var b = this.extend(); b.init.apply(b, hujah); kembalikan b }, init: fungsi () { }, mixIn: fungsi (b) { untuk (var h dalam b) b.hasOwnProperty(h) && (this[h] = b[h]); b.hasOwnProperty("toString") && (this.toString = b.toString) }, klon: function () { return this.init.prototype.extend(this) } }, q = l.WordArray = r.extend( { init: fungsi (b, h) { b = ini.perkataan = b ||.sigBytes = h != p ? ||.t).stringify(ini) }, concat: function (b) { var h = this.words, a = b.words, j = this.sigBytes; (j % 4) untuk (var g = 0; g < b; g ) h[j g >>>> 24 - 8 * (g % 4) & 255) << 24 - 8 * ((j g) % 4); = 4) h[j g >>> 2] = a[g >>> other h.push.apply(h, a); : fungsi () { var b = this.words, h = this.sigBytes;>> s.ceil(h / 4) }, klon: function () { var b = r.clone.call(this);b.words = this.words.slice(0); ) { untuk (var h = [], a = 0; a < b; a = 4) h.push(4294967296 * s.random() | 0); kembalikan q.init(h, b) } } baharu, v = m.enc = {}, t = v.Hex = { stringify: function (b) { var a = b.words; b = b.sigBytes; untuk (var g = [], j = 0; j < b; j ) { var k = a[j >>> 2] >>> 24 - 8 * (j % 4) & 255; g.push((k >>> 4).toString(16)); g.push((k & 15).toString(16)) } return g.join("") }, huraikan: fungsi (b) { untuk (var a = b.panjang, g = [], j = 0 ;j < 3] |= parseInt(b.substr(j, 2), 16) << 24 - 4 * (j % 8); kembalikan q.init(g, a / 2) baharu } }, a = v.Latin1 = { stringify: function (b) { var a = b.words; b = b.sigBytes; untuk (var g = [], j = 0; j < b; j ) g.push(String.fromCharCode(a[j >>> 2] >>> 24 - 8 * (j % 4) & 255)); kembalikan g.join("") }, huraikan: fungsi (b) { untuk (var a = b.panjang, g = [], j = 0; j < a; j ) g[j >>> ; 2] |= (b.charCodeAt(j) & 255) << 24 - 8 * (j % 4); kembalikan q.init(g, a) baharu } }, u = v.Utf8 = { stringify: function (b) { try { return decodeURIComponent(escape(a.stringify(b))) } catch (g) { throw Error ("Data UTF-8 cacat"); } }, parse: function (b) { return a.parse(unescape(encodeURIComponent(b))) } },
                g = l.BufferedBlockAlgorithm = r.extend({ reset: function () { this._data = new q.init; this._nDataBytes = 0 }, _append: function (b) { "string" == typeof b && (b = u.parse(b)); this._data.concat(b); this._nDataBytes = b.sigBytes }, _process: function (b) { var a = this._data, g = a.words, j = a .sigBytes, k = this.blockSize, m = j / (4 * k), m = b ? s.ceil(m) : s.max((m | 0) - this._minBufferSize, 0); * k; j = s.min(4 * b, j); jika (b) { untuk (var l = 0; l < b; l = k) ini._doProcessBlock(g, l); splice(0, b); a.sigBytes -= j } kembalikan q.init(l, j) } baru, klon: fungsi () { var b = r.clone.call(b._data = this. _data.clone(); return b }, _minBufferSize: 0 }); l.Hasher = g.extend({ cfg: r.extend(), init: function (b) { this.cfg = this.cfg.extend(b); this.reset() }, reset: function () { g.reset.call(this); this._doReset() }, kemas kini: function (b) { this._append(b); return this }, finalize: function (b) { b && this ._append(b); return this._doFinalize() }, blockSize: 16, _createHelper: function (b) { return function (a, g) { return (new b.init(g)).finalize(a) } } , _createHmacHelper: function (b) { return function (a, g) { return (k.HMAC.init(b, g) baharu).finalize(a) } } }); var k = m.algo = {}; kembalikan m
        }(Matematik);
        (fungsi (s) {
            fungsi p(a, k, b, h, l, j, m) { a = a (k & b | ~k & h) l m; kembali (a << j | a >>> 32 - j) k } fungsi m(a, k, b, h, l, j, m) { a = a (k & h | b & ~h) l m; kembali (a << j | a >>> 32 - j) k } fungsi l(a, k, b, h, l, j, m) { a = a (k ^ b ^ h) l m; kembalikan (a << j | a >>> 32 - j) k } fungsi n(a, k, b, h, l, j, m) { a = a (b ^ (k | ~ h)) l m; kembalikan (a << j | a >>> 32 - j) k } untuk (var r = CryptoJS, q = r.lib, v = q.WordArray, t = q.Hasher, q = r .algo, a = [], u = 0; 0; q = q.MD5 = t.lanjutkan({
                _doReset: function () { this._hash = new v.init([1732584193, 4023233417, 2562383102, 271733878]) }, _doProcessBlock: function (g, k) {
                    untuk (var b = 0; 16 > b; b ) { var h = k b, w = g[h]; g[h] = (w << 8 | w >>> 24) & 16711935 | (w << 24 | w >>> 8) & 4278255360 } var b = this._hash.words, h = g[k 0], w = g[k 1], j = g[k 2], q = g[k 3], r = g[k 4], s = g[k 5], t = g[k 6], u = g[k 7], v = g[k 8] , x = g[k 9], y = g[k 10], z = g[k 11], A = g[k 12], B = g[k 13], C = g[k 14], D = g[k 15], c = b[0], d = b[1], e = b[2], f = b[3], c = p(c, d, e, f, h, 7 , a[0]), f = p(f, c, d, e, w, 12, a[1]), e = p(e, f, c, d, j, 17, a[2]) , d = p(d, e, f, c, q, 22, a[3]), c = p(c, d, e, f, r, 7, a[4]), f = p(f , c, d, e, s, 12, a[5]), e = p(e, f, c, d, t, 17, a[6]), d = p(d, e, f, c , u, 22, a[7]), c = p(c, d, e, f, v, 7, a[8]), f = p(f, c, d, e, x, 12, a [9]), e = p(e, f, c, d, y, 17, a[10]), d = p(d, e, f, c, z, 22, a[11]), c = p(c, d, e, f, A, 7, a[12]), f = p(f, c, d, e, B, 12, a[13]), e = p(e, f , c, d, C, 17, a[14]), d = p(d, e, f, c, D, 22, a[15]), c = m(c, d, e, f, w , 5, a[16]), f = m(f, c, d, e, t, 9, a[17]), e = m(e, f, c, d, z, 14, a[18 ]), d = m(d, e, f, c, h, 20, a[19]), c = m(c, d, e, f, s, 5, a[20]), f = m (f, c, d, e, y, 9, a[21]), e = m(e, f, c, d, D, 14, a[22]), d = m(d, e, f , c, r, 20, a[23]), c = m(c, d, e, f, x, 5, a[24]), f = m(f, c, d, e, C, 9 , a[25]), e = m(e, f, c, d, q, 14, a[26]), d = m(d, e, f, c, v, 20, a[27]) , c = m(c, d, e, f, B, 5, a[28]), f = m(f, c, d, e, j, 9, a[29]), e = m(e , f, c, d, u, 14, a[30]), d = m(d, e, f, c, A, 20, a[31]), c = l(c, d, e, f , s, 4, a[32]), f = l(f, c, d, e, v, 11, a[33]), e = l(e, f, c, d, z, 16, a [34]), d = l(d, e, f, c, C, 23, a[35]), c = l(c, d, e, f, w, 4, a[36]), f = l(f, c, d, e, r, 11, a[37]), e = l(e, f, c, d, u, 16, a[38]), d = l(d, e , f, c, y, 23, a[39]), c = l(c, d, e, f, B, 4, a[40]), f = l(f, c, d, e, h , 11, a[41]), e = l(e, f, c, d, q, 16, a[42]), d = l(d, e, f, c, t, 23, a[43 ]), c = l(c, d, e, f, x, 4, a[44]), f = l(f, c, d, e, A, 11, a[45]), e = l (e, f, c, d, D, 16, a[46]), d = l(d, e, f, c, j, 23, a[47]), c = n(c, d, e , f, h, 6, a[48]), f = n(f, c, d, e, u, 10, a[49]), e = n(e, f, c, d,
                                C, 15, a[50]), d = n(d, e, f, c, s, 21, a[51]), c = n(c, d, e, f, A, 6, a[ 52]), f = n(f, c, d, e, q, 10, a[53]), e = n(e, f, c, d, y, 15, a[54]), d = n(d, e, f, c, w, 21, a[55]), c = n(c, d, e, f, v, 6, a[56]), f = n(f, c, d, e, D, 10, a[57]), e = n(e, f, c, d, t, 15, a[58]), d = n(d, e, f, c, B, 21, a[59]), c = n(c, d, e, f, r, 6, a[60]), f = n(f, c, d, e, z, 10, a[61] ), e = n(e, f, c, d, j, 15, a[62]), d = n(d, e, f, c, x, 21, a[63]); b[0] = b[0] c | 0; b[1] = b[1] d | 0; b[2] = b[2] e | 0; b[3] = b[3] f | 0
                }, _doFinalize: function () { var a = this._data, k = a.words, b = 8 * this._nDataBytes, h = 8 * a.sigBytes; k[h >>> 5] |= 128 << 24 - j % 32; var l = s.floor(b / 4294967296); k[(h 64 >>> 9 << 4) 15] = (l << 8 | l >>> 24) & 16711935 | (l << 24 | l >>> 8) & 4278255360; k[(h 64 >>> 9 << 4) 14] = (b << 8 | b >>> 24) & 16711935 | (b << 24 | b >>> 8) & 4278255360; a.sigBytes = 4 * (k.panjang 1); this._process(); a = ini._hash; k = a.perkataan; untuk (b = 0; 4 > b; b ) h = k[b], k[b] = (h << 8 | h >>> 24) & 16711935 | (h << 24 | h >>> 8) & 4278255360; kembalikan a }, klon: function () { var a = t.clone.call(this); a._hash = ini._hash.clone(); kembalikan }
            }); r.MD5 = t._createHelper(q); r.HmacMD5 = t._createHmacHelper(q)
        })(Matematik);
        kembalikan CryptoJS.MD5(words).toString();
    }
    // sha1
    , sha1: fungsi (perkataan) { //# sha1  哈希算法
        var CryptoJS = fungsi (e, m) { var p = {}, j = p.lib = {}, l = fungsi () { }, f = j.Base = { lanjutkan: fungsi (a) { l.prototaip = ini; var c = baru l; a && c.mixIn(a); c.hasOwnProperty("init") || (c.init = function () { c.$super.init.apply(this, arguments) }); c.init.prototaip = c; c.$super = ini; kembalikan c }, cipta: function () { var a = this.extend(); a.init.apply(a, arguments); kembalikan a }, init: function () { }, mixIn: function (a) { for (var c in a) a.hasOwnProperty(c) && (this[c] = a[c]); a.hasOwnProperty("toString") && (this.toString = a.toString) }, klon: function () { return this.init.prototype.extend(this) } }, n = j.WordArray = f.extend( { init: fungsi (a, c) { a = this.words = a || []; this.sigBytes = c != m ? ||. h).stringify(ini) }, concat: function (a) { var c = this.words, q = a.words, d = this.sigBytes; (d % 4) untuk (var b = 0; b < a; b ) c[d b >>> 2] |= (q[b >>> 2] >>> 24 - 8 * (b % 4) & 255) <<< 24 - 8 * ((d b) % 4); = 4) c[d b >>>> : fungsi () { var a = this.words, c = this.sigBytes; a[c >>>> e.ceil(c / 4) }, klon: function () { var a = f.clone.call(this); a.words = this.words.slice(0); ) { untuk (var c = [], b = 0; b < a; b = 4) c.push(4294967296 * e.random() | 0); kembalikan n.init(c, a) } } baharu, b = p.enc = {}, h = b.Hex = { stringify: function (a) { var c = a.words; a = a.sigBytes; untuk (var b = [], d = 0; d < a; d ) { var f = c[d >>> 2] >>> 24 - 8 * (d % 4) & 255; b.push((f >>> 4).toString(16)); b.push((f & 15).toString(16)) } return b.join("") }, parse: function (a) { for (var c = a.length, b = [], d = 0 ; d < d = 2) b[d >>> 3] |= parseInt(a.substr(d, 2), 16) << 24 - 4 * (d % 8); kembalikan n.init(b, c / 2) baharu } }, g = b.Latin1 = { stringify: function (a) { var c = a.words; a = a.sigBytes; untuk (var b = [], d = 0; d < a; d ) b.push(String.fromCharCode(c[d >>> 2] >>> 24 - 8 * (d % 4) & 255)); return b.join("") }, parse: function (a) { for (var c = a.length, b = [], d = 0; d < c; d ) b[d >>> ; 2] |= (a.charCodeAt(d) & 255) << 24 - 8 * (d % 4); kembalikan n.init(b, c) baru } }, r = b.Utf8 = { stringify: function (a) { try { return decodeURIComponent(escape(g.stringify(a))) } catch (c) { throw Error ("Data UTF-8 cacat"); } }, parse: function (a) { return g.parse(unescape(encodeURIComponent(a))) } }, k = j.BufferedBlockAlgorithm = f.extend({ reset: function () { this._data = new n. init;ini._nDataBytes = 0 }, _tambah: fungsi (a) { "rentetan" == jenis a && (a = r.parse(a)); sigBytes }, _process: fungsi (a) { var c = this._data, b = c.words, d = c.sigBytes, f = this.blockSize, h = d / (4 * f), h = a ? .ceil(h) : e.maks((h | 0) - this._minBufferSize, 0); g = 0; g < g = f) ini._doProcessBlock(b, g); }, klon: function () { var a = f.clone.call(this); a._data = this._data.clone(); j.Hasher = k.extend({ cfg: f.extend(), init: function (a) { this.cfg = this.cfg.extend(a); this.reset() }, reset: function () { k.reset.call(this); this._doReset() }, kemas kini: function (a) { this._append(a); return this }, finalize: function (a) { a && this ._append(a); return this._doFinalize() }, blockSize: 16, _createHelper: function (a) { return function (c, b) { return (new a.init(b)).finalize(c) } } , _createHmacHelper: function (a) { return function (b, f) { return (new s.HMAC.init(a, f)).finalize(b) } } }); var s = p.algo = {}; kembali p }(Math);
        (function () { var e = CryptoJS, m = e.lib, p = m.WordArray, j = m.Hasher, l = [], m = e.algo.SHA1 = j.extend({ _doReset: function ( ) { this._hash = new p.init([1732584193, 4023233417, 2562383102, 271733878, 3285377520]) }, _doProcessBlock: function (f, n) { for (var b = this._hash.words, h = b[0 ], g = b[1], e = b[3], j = b[4], a = 0 > a ) { if (16 > a) l [a] = f[n a] |. 0; else { var c = l[a - 3] ^ l[a - 8] ^ l[a - 16]; << 1 |. c >>> 31 } c = (h < 5 | h >> 27) j l[a]; & e |. ~g & k) 1518500249) : 40 > a ? c ((g ^ e ^ k) 1859775393) : 60 > a ? ) : c ((g ^ e ^ k) - 899497514; [0] = b[0] h |. 0; b[1] = b[1] g | ; b[4] = b[4] j |. _doFinalize: function () { var f = this._data, e = f.words, b = 8 * this._nDataBytes, h = 8 * f.sigBytes; e[h >>> 5] |= 128 << 24 - Std. % 32; e[(h 64 >>> 9 << 4) 14] = Math.floor(b / 4294967296); e[(h 64 >>> 9 << 4) 15] = b; f.sigBytes = 4 * e.length; this._process(); return this._hash }, clone: ​​function () { var e = j.clone.call(this); e._hash = this._hash.clone(); return e } }); e.SHA1 = j._createHelper(m); e.HmacSHA1 = j._createHmacHelper(m) })();
        return CryptoJS.SHA1(words).toString();
    }
    // time33 哈希
    , time33: function (words) { //# time33 哈希算法
        Wörter = Wörter || '';
        //哈希time33算法
        for (var i = 0, len = Words.Length, Hash = 5381; i < len; i) {
            hash = (hash << 5) Words.charAt(i).charCodeAt();
        };
        Rückgabe-Hash & 0x7fffffff;
    }
}

  7.日期方法集

复制代码 代码如下:

pFan.date = {
    //返回时间戳
    getTimeStamp:function(){
        var timestamp=new Date().getTime();
        return timestamp.toString();
    },
    //时间戳转为日期格式
    //@nS为时间戳
    getLocalTime: function(nS) { 
        return new Date(parseInt(nS) * 1000).toLocaleString().substr(0,17);
    },
    //@time , 时间 , 如 new Date('2013/11/10 0:12:12')
    //@pre , 星期的 前缀,如:周 ,星期
    //@ nums ,如:一二三四五六日
    getWeek: function (time, pre, nums) { //# 获取星期几
        time = typeof time == 'string' ? this.parse(time) : (time || new Date());
        vor = vor || '星期'; //周
        Zahlen = Zahlen || '日一二三四五六';
        return pre nums[time.getDay()];
    },
    //@formatType: JJJJ, JJ, MM
    //@ Zeit: neues Datum('2013/11/12')
    //@weeks : 日一二三四五六
    Format: Funktion (FormatTyp, Zeit, Wochen) { //格式化输出时间
        var pre = '0',
        formatType = für
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