Heim >Web-Frontend >js-Tutorial >Zusammenfassung allgemeiner Wissenspunkte zu js jquery_javascript-Fähigkeiten

Zusammenfassung allgemeiner Wissenspunkte zu js jquery_javascript-Fähigkeiten

WBOY
WBOYOriginal
2016-05-16 16:11:311253Durchsuche

1. Allgemeine Wissenspunkte im JQuery-Quellcode

 1.string, eine Abkürzungsmethode für die Konvertierung von Zahlentypen

Code kopieren Der Code lautet wie folgt:

// @param s ist ein String, n ist eine Zahl
Funktion fn(obj){
//In String-Typ konvertieren
var s = obj "";
//In Zahlentyp konvertieren
var n = obj;
}

Teilen Sie ein Interviewbeispiel:

//Add wandelt Folgendes automatisch in eine Zeichenfolge um
„64“ 4="644"
//Durch Subtraktion wird es automatisch in eine Zahl umgewandelt
„64“-4=60

 2.bool-Typkonvertierung

!!obj, wandele es in den Bool-Typ

um

Code kopieren Der Code lautet wie folgt:

alarm(!!0) //Das Ergebnis ist falsch
alarm(!!"33dd") //Das Ergebnis ist wahr

!obj, nimm den entgegengesetzten Bool-Typ

Code kopieren Der Code lautet wie folgt:

alarm(!0) //Das Ergebnis ist wahr
alarm(!"222333") //Das Ergebnis ist falsch

 3. Der Unterschied zwischen === und ==

=== ist eine strikte Gleichheit und führt keine Typkonvertierung durch, während == keine strikte Gleichheit ist und eine Typkonvertierung durchführt. Einige JS-Bücher empfehlen Entwicklern, niemals == oder != zu verwenden.

Aber im JQuery-Quellcode gibt es Situationen, in denen „==" oder „!=" verwendet wird – bei der Beurteilung von undefiniert und null.

Code kopieren Der Code lautet wie folgt:

//Das Urteil hier schließt aus, dass obj null und obj undefiniert ist
if(obj != null){
}

 4. Prüfen Sie, ob obj ein Fensterobjekt ist

Code kopieren Der Code lautet wie folgt:

//null == window.null ist wahr
Funktion isWindow(obj){
Rückgabe obj != null && obj == window.obj;
}

 5.||. und && Nutzungstipps

Code kopieren Der Code lautet wie folgt:

//Beispiel var aa=5; name = aa || {} ; dann ist name 55
this.name = name ||. {} //Wenn der Namenswert vorhanden ist, ist der Wert name, andernfalls ist er {}
//Beispiel var aa=5; name = aa && {}; dann ist name {}, da aa 5 ist, ist es wahr, wenn es nicht 0 ist this.name = bool && [] //Wenn bool wahr ist, ist der Wert [], andernfalls ist er bool

Klassisches Beispiel:

Code kopieren Der Code lautet wie folgt:
( window.foo || ( window.foo = "bar" ) );
Alert(window.foo); //Popup-Leiste
// Warum ist das Endergebnis bar? Tatsächlich kann es als undefiniert angesehen werden. bar Das Ergebnis muss bar sein

 

6. Der Unterschied zwischen setTimeout(fn,0) und setTimeout(fn)

SetTimeout(fn,0) und setTimeout(fn) sind beide verzögerte Ausführungen, aber setTimeout(fn) hat eine längere Verzögerung als setTimeout(fn,0), zum Beispiel

Code kopieren Der Code lautet wie folgt:

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

Ergebnis:

7. Bestimmen Sie, ob es sich um einen numerischen Wert handelt

Code kopieren Der Code lautet wie folgt:

Funktion isNumeric(obj){
return !isNaN(parseFloat(obj)) && isFinite(obj);
}

8. Bestimmen Sie, ob es sich um ein leeres Objekt handelt

Code kopieren Der Code lautet wie folgt:

Funktion isEmptyObject(){
Var-Name;
//Durchlauf, wenn das Objekt nicht leer ist, und Rückgabe von
für (Name in obj) {
         return false;
}
Gibt true zurück;
}

 9. Erkennungsobjekttyp

Erkennen Sie den Objekttyp und den Rückgabetyp. Verwenden Sie Object.prototype.toString(), um den Typ zu bestimmen. Es gibt jedoch ein Kompatibilitätsproblem mit niedrigeren Versionen von IE, daher wird {}.toString zur Überwachung verwendet return ist [object Array],[object Object],[object Function]

Code kopieren Der Code lautet wie folgt:

//Geben Sie Urteil ein
Funktion isType(type){
Rückgabefunktion(o){
           return Object.prototype.toString.call(o) === '[object ' type ']';
}
}
var isString = isType(“String”);
var isObject = isType("Object");
var isArray = isType("Array");
isString("Ich bin Barret Lee.");
isArray([1,2,3]);
isObject({});

 10. Der Zaubertrick des Trimmens, um Leerzeichen in jquery zu entfernen

Code kopieren Der Code lautet wie folgt:

//Entspricht if (String.prototype.trim && „uFEFFxA0″.trim() !== „“) Fortgeschrittene Browser unterstützen bereits die native String-Trim-Methode, aber pFan kann auch keine Leerzeichen in voller Breite analysieren, um dies zu vermeiden. Daher wird ein zusätzliches Urteil hinzugefügt: „uFEFFxA0“.trim() !== „“
vart core_version = "1.0",core_trim = core_version.trim; Funktion trim(){
Core_trim && !core_trim.call("uFEFFxA0") ?
Funktion (Text) {
                                     Rückgabetext == null ?
"" :
Core_trim.Call (text); // Hier sollte es nach meinem Verständnis „“ „.trim.call (text) sein. Es ist etwas unklar, es in „1.1.0“ zu konvertieren.trim.ct ( Text)
>                                                                                                                                  
                                                  // Erweiterte Browser unterstützen bereits die native String-Trim-Methode, verwenden Sie
Funktion (Text) {
Var Whitespace = "[\ x20 \ t \ r \ n \ n \ f]",
                       rtrim = new RegExp("^" whitespace " |((?:^|[^\\])(?:\\.)*)" whitespace " $", "g");
                                     Rückgabetext == null ?
"" :
(text "").replace(rtrim, "");
                    },
                            //nodeName-Funktion dient dazu, den Knotennamen des Dom-Knotens abzurufen oder zu bestimmen, ob sein Name mit den eingehenden Parametern
übereinstimmt Knotenname: Funktion(elem,name){
//Unter IE wird der Knotenname des DOM-Knotens in Großbuchstaben angegeben, z. B. DIV
                                  return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
                }
}


 

11. Erkennen Sie, ob ein Array oder ein Array-ähnlicher Wert einen eingehenden Wert in jquery enthält

Code kopieren Der Code lautet wie folgt:

/**
Überprüfen Sie, ob der übergebene Wert im Array vorhanden ist. Wenn er vorhanden ist, geben Sie die Position des Werts zurück. Wenn nicht, geben Sie -1 zurück.
*elem gibt den abzurufenden Wert an.
*arr-Array
*i Optionaler ganzzahliger Parameter. Gibt die Position im Array an, an der mit der Suche begonnen werden soll. Seine zulässigen Werte sind 0 bis arr.length - 1. Wenn dieser Parameter weggelassen wird, beginnt die Suche beim ersten Element des Arrays.
​*/
Funktion inArray(elem, arr, i){
var len;
Wenn (arr) {
//Wenn der Browser Array unterstützt, verfügt er über die indexOf-Methode
If ([].indexOf) {
                return [].indexOf.call(arr, elem, i);
}
        len = arr.length;
//Wenn i eine negative Zahl ist, beginnen Sie mit der Indizierung ab der Position von len i am Ende des Arrays
// Verstehe, dass dies in zwei Teile unterteilt ist i = i ? (i < 0 ? Math.max(0, len i) : i) : 0;, i=i ist wahr, führe (i < 0 ? Math. max (0, len i) : i), trotzdem i=0
ausführen i = i ? i < 0 ? Math.max(0, len i) : i : 0;
für (; i < len; i ) {
// Doppelte Überprüfung verhindert Arrays wie dieses ar = [];ar[1]=1;ar[0] = undefiniert; ar =false;a[0]===undefiniert;                                                                                                                                                                                   If (i in arr && arr[i] === elem) {
                   return i;
            }
}
}
Rückgabe -1;
}


2. Allgemeine Wissenspunkte zur Prototypenkette in JavaScript


 1.hasOwnProperty()-Methode

Verwenden Sie die Methode hasOwnProperty(), um zu erkennen, ob eine Eigenschaft in einer Instanz oder in einem Prototyp vorhanden ist. Diese Methode erbt von Object und gibt nur dann true zurück, wenn die angegebene Eigenschaft in der Objektinstanz vorhanden ist.

Funktion Person(){
This.age=25;
This.job="web";
}
Person.prototype={
          name:'pingfan',
          sayName:function(){
alarm(this.name);
                }
}
var person1=new Person();
//Vom Konstruktor aus Attribute erkennen und true zurückgeben
Alert(person1.hasOwnProperty("age"));
//Gib vom Prototyp-Attribut false zurück
alarm(person1.hasOwnProperty("name"));
Person1.name='ping';
//Aus Instanzattributen true zurückgeben
alarm(person1.hasOwnProperty("name"));


2. Stellen Sie sicher, dass nur eine Instanz durch Instanz von

vorhanden ist

Funktion shiCha(opt){
//Instanz nur einmal
If( !(diese Instanz von shiCha)){
          neues ShiCha zurückgeben (opt);
                                                                     }
var shicha = shiCha();

 3.Array.prototype.slice.call(arguments) in Javascript 

Normalerweise sehen wir Array.prototype.slice.call(arguments,1) oder Array.prototype.slice.call(arguments) und sind ein wenig verwirrt. Tatsächlich verwenden wir nur Slice() in Array.prototype Argumente konvertieren Wandeln Sie es in ein Array um, und es ist bequemer, mit diesem Array zu arbeiten. Der zweite Parameter ist der Indexwert, beginnend mit dem Indexwert und in ein Array umwandeln, zum Beispiel Array.prototype.call("22223 ",2) und Array.prototype.call([ 1,2,3,4],2), beginnend mit der zweiten Zeichenfolge.

Code kopieren Der Code lautet wie folgt:

Funktion sliArray(array){
//Die Ausgabe erfolgt von Index 1 bis Index 3
                 return Array.prototype.slice.call(array,1,3);
}
alarm(sliArray([1,2,3,4,5,6])) //Das Ergebnis ist 2,3

 4. Verwenden Sie das leere Objekt F, um die Objektvererbung zu erreichen, was am effizientesten ist

Code kopieren Der Code lautet wie folgt:

//Verwenden Sie leere Objekte als Medien für den besten Vererbungseffekt
Funktion inhert(C,P){
         var F=function(){};
          F.protototype = P.prototype;
C.prototype = new F();
C.prototype.constructor = C;
}

3. Satz häufig verwendeter Methoden in Javascript
1. Gängige Array-Operationsmethoden

Array-Deduplizierung:

Code kopieren Der Code lautet wie folgt:

//Prototyp der Array-Deduplizierung
Array.prototype.unqie = function(){
var arr = this, len=this.length, obj={}, newArr=[]; ​​​​​while(len--){
If(obj[ arr[len] ] !== arr[len]){
                                                                                                                              obj[arr[len]] = arr[len];                                                                                                                                                }
return newArr.reverse();
}



Holen Sie sich den Maximalwert im Array:

Code kopieren Der Code lautet wie folgt: Array.prototype.arrMax=function(){
            var arr=this, len=this.length,max=arr[0];
for(var i=1;i If(max                                                                                                                                                                                                                               }                 }
        return max;
}
//Erhalte den Maximalwert im Array durch sort
​Array.prototype.arrMax=function(){
  var arr=this;
arr.sort(function(a,b){
   return a-b;
  })
Geben Sie arr[arr.length-1];
zurück }
//Verwenden Sie Math.max, um den Maximalwert des Arrays zu erhalten
Array.prototype.arrMax =function(){
var array = this;
Gibt Math.max.apply(null, array);
zurück }
alarm([1,2,3,4,5,6,9,8,7,9].arrMax());

Rufen Sie den Mindestwert im Array ab:

Code kopieren Der Code lautet wie folgt:

//Der kleinste Wert im Array
Array.prototype.arrMin=function(){
            var arr=this, len=this.length,min=arr[0];
for(var i=1;i If(min>arr[i]){
Min=arr[i];
                                                                                                       }                 }
        Rückgabe min;
}
//Erhalte den kleinsten Wert im Array durch sort
Array.prototype.arrSortMin=function(){
  var arr=this;
arr.sort(function(a,b){
   return a-b;
  })
Geben Sie arr[0];
zurück }
//Verwenden Sie Math.max, um den Maximalwert des Arrays zu erhalten
Array.prototype.arrSortMin =function(){
var array = this;
Gibt Math.min.apply(null, array);
zurück }
alarm([1,2,3,4,5,6,9,8,7,9].arrSortMin());

Array kopieren:

Code kopieren Der Code lautet wie folgt:
Array.prototype.copy =
function() {
Geben Sie [].concat(this);
zurück };

Um nur bestimmte Elemente aus dem Array zu entfernen, können Sie nur eines entfernen. Wenn Sie mehr als eines entfernen möchten, verwenden Sie zuerst die eindeutige Verarbeitung:

Code kopieren Der Code lautet wie folgt:
Array.prototype.remove = Funktion(Wert){
for(var i=0,len=this.length;i {
If(this[i]==value){
This.splice(i, 1);
             Pause;
}
}
 
Geben Sie dies zurück;
}

2. Methodensatz für den Betrieb von document.loaction (relevante Methoden, die von Gartenfreunden zusammengefasst wurden, sind hier ausgeliehen)

Code kopieren Der Code lautet wie folgt:

pFan.url = { //#URL
//Parameter: Variablenname, wenn die URL leer ist, wird die Tabelle von der URL der aktuellen Seite
übernommen GetQuery: Funktion (Name, URL) {
        var u = arguments[1] || window.location.search
​ ​ ​ , reg = new RegExp("(^|&)" name "=([^&]*)(&|$)")
          , r = u.substr(u.indexOf("?") 1).match(reg)
;
          return r != null ? r[2] : "";
}
, getHash: function (name, url) { //# Hash-Wert abrufen
        var u = arguments[1] ||. location.hash;
          var reg = new RegExp("(^|&)" name "=([^&]*)(&|$)");
         var r = u.substr(u.indexOf("#") 1).match(reg);
If (r != null) {
                return r[2];
}
         return "";
}
, parse: function (url) { //# Parse URL
         var a = document.createElement('a');
  url = url ||. document.location.href;
         a.href = url;
         return {
                Quelle: URL
​ ​ , Protokoll: a.protocol.replace(':', '')
, , Host: a.hostname
, , Port: a.port
​​​​​ , Abfrage: a.search
, , Datei: (a.pathname.match(/([^/?#] )$/i) || [, ''])[1]
​ ​ , Hash: a.hash.replace('#', '')
, , Pfad: a.pathname.replace(/^([^/])/, '/$1')
          , relativ: (a.href.match(/tps?://[^/] (. )/) || [, ''])[1]
​​​​​​ , Segmente: a.pathname.replace(/^//, '').split('/')
        };
}
};

 3. Häufig verwendete reguläre Ausdrücke

Code kopieren Der Code lautet wie folgt:

pFan.regExp = { //# String-Matching
//Ist es eine Zahl? Ganzzahl, Gleitkommazahl
isNum: function (num) { //# Ist es ein Array
         return !isNaN(num);
}
, isEmail: function (mail) {//# Ist es eine E-Mail-Adresse
return /^([a-z0-9] [_-.]?)*[a-z0-9] @([a-z0-9] [_-.]?)*[a-z0-9] .[a-z]{2,5}$/i.test(mail);
}
, isIdCard: function (card) { //# Ist es ein Personalausweis
          return /^(d{14}|d{17})(d|[xX])$/.test(card);
}
, isMobile: function (mobile) { //# Ist es ein Mobiltelefon
          return /^0*1d{10}$/.test(mobile);
}
, isQQ: function (qq) { //# Ist es QQ
           return /^[1-9]d{4,10}$/.test(qq);
}
, isTel: function (tel) { //# Ist es eine Telefonnummer
           return /^d{3,4}-d{7,8}(-d{1,6})?$/.text(tel);
}
, isUrl: function (url) { //# Ist es URL
          return /https?://[a-z0-9.-]{1,255}.[0-9a-z-]{1,255}/i.test(url);
}
, isColor: function (color) { //# Ist es eine hexadezimale Farbe
          return /#([da-f]{3}){1,2}$/i.test(color);
}
//@id: Personalausweis,
// @now: aktuelle Zeit wie: neues Datum('12.12.2013'), '12.12.2013'
// @age: Erlaubtes Alter
, isAdult: function (id,allowAge, now) { //# Ob das Alter ein Erwachsener ist
        var age = 0 // Jahr, Monat und Tag des Benutzers
, , nowDate = 0 //Aktuelles Jahr, Monat und Tag
;
​​​​​ AllowAge = parseFloat(allowAge) || 18;
now = typeof now == 'string' ? new Date(now) : (now || new Date());

if (!this.isIdCard(id)) {
              return false;
}
//15-stelliger Personalausweis
If (15 == id.length) {
Alter = '19' id.slice(6, 6);
         } sonst {
Alter = id.slice(6, 14);
}
//Typkonvertierung Integer
Alter = ~~Alter;
nowDate = ~~(Tydic.date.format('YYYYMMDD', now));
​​​​ //Alter vergleichen
If (nowDate - age               return false;
}
        return true;
}
//Gleitkommazahl
, isFloat: function (num) { //# Ist es eine Gleitkommazahl
           return /^(([1-9]d*)|(d .d )|0)$/.test(num);
}
//Positive Ganzzahl
, isInt: function (num) { //# Ist es eine positive Ganzzahl
          return /^[1-9]d*$/.test(num);
}
//Ob es sich bei allen um chinesische Schriftzeichen handelt
, isChinese: function (str) { //# Sind alle chinesischen Zeichen
          return /^([u4E00-u9FA5]|[uFE30-uFFA0]) $/gi.test(str);
}
};

 4. Methodensatz für den Betriebsklassennamen

Code kopieren Der Code lautet wie folgt:

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


 5. String-Manipulationsmethoden

Code kopieren

Der Code lautet wie folgt:

pFan.string = { //# string
codeHtml: function (content) { //# Escape-HTML-Zeichen
          return this.replace(content, {
             '&': "&"
        , '"': """
        , "'": '''
, , '<': "<"
, , '>': ">"
        , ' ': " "
        , 't': " "
        , '(': "("
, , ')': ")"
, , '*': "*"
        , ' ': "+"
        , ',': ","
, , '-': "-"
, , '.': "."
, , '/': "/"
        , '?': „?“
, , '\': "\"
, , 'n': "
"
        });
}
//Zeichenfolge wiederholen
, wiederholen: Funktion (Wort, Länge, Ende) { //# Zeichenfolge wiederholen
          end = end || ''; // Am Ende hinzufügen
         length = ~~length;
            return new Array(length * 1 1).join(word) '' end;
}
//Präfix hinzufügen
, addPre: function (pre, word, size) { //# Vollständig. Fügen Sie beispielsweise 0
vor einer Zahl hinzu Pre = pre ||. '0';
size = parseInt(size) ||. 0;
           Wort = String(Wort || '');
      var length = Math.max(0, size - word.length);
          return this.repeat(pre, length, word);
}
//Leerzeichen auf beiden Seiten entfernen
, trim: function (text) { //# Leerzeichen auf beiden Seiten entfernen
           return (text || '').replace(/^s |s$/, '');
}
//Linkes Leerzeichen entfernen
,ltrim:function(){
           return s.replace( /^(s*|*)/, ""); }
//Entferne das Leerzeichen rechts
,rtrim:function(){
           return s.replace( /(s*|*)$/, ""); }
//Zurück zum Skriptinhalt
,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]);
                if(arr1) {
                   appendscript(arr1[1], '', arr1[2], arr1[3]);
              } sonst {
p1 = /([^x00] ?)/i;
                 arr1 = p1.exec(arr[0]);
                 appendscript('', arr1[2], arr1[1].indexOf('reload=') != -1);
            }
}
        return s;
}
//Skriptinhalt löschen
,stripscript:function(){
           return s.replace(/.*?/ig, '');
}
//String-Ersetzung
, ersetzen: function (str, re) { //# String-Ersetzung
          str = str || '';
for (var key in re) {
               replacement(key, re[key]);
        };
         Funktion replace(a, b) {
            var arr = str.split(a);
             str = arr.join(b);
        };
         return str;
}
, xss: function (str, type) { //# XSS Escape
//Filter leeren
If (!str) {
               return str === 0 ? "0" : "";
}
Schalter (Typ) {
               case "html": //XSS im HTML-String filtern
Rückgabe str.replace(/[&'"<>/\-x00-x09x0b-x0cx1fx80-xff]/g, Funktion (r) {
                         return "" r.charCodeAt(0) ";"
}).replace(/ /g, " ").replace(/rn/g, "
").replace(/n/g, "
").replace(/ r/g, "
");
                 Pause;
​​​​​​​ case "htmlEp": //XSS in DOM-Knotenattributen filtern
                      return str.replace(/[&'"<>/\-x00-x1fx80-xff]/g, function (r) {
                         return "" r.charCodeAt(0) ";"
                });
                 Pause;
              case "url": //Filter-URL
Geben Sie escape(str).replace(/ /g, "+");
zurück                  Pause;
            case „miniUrl“:
                     return str.replace(/%/g, "%");
                 Pause;
            case „script“:
                    return str.replace(/[\"']/g, function (r) {
                       return "\" r;
}).replace(/%/g, "
\x25").replace(/n/g, "\n").replace(/r/g, "\r").replace(/x01/g, "\x01");
                 Pause;
Fall „reg“:
                      return str.replace(/[\^$* ?{}.()[]]/g, Funktion (a) {
                       return "\" a;
                });
                 Pause;
                 Standard:
                   return escape(str).replace(/[&'"<>/\-x00-x09x0b-x0cx1fx80-xff]/g, function (r) {
                         return "" r.charCodeAt(0) ";"
}).replace(/ /g, " ").replace(/rn/g, "
").replace(/n/g, "
").replace(/ r/g, "
");
                 Pause;
}
}
// Badword, sensible Wörter filtern
//@text: der zu filternde Text, Typ: string
//@words: Sensible Wörter, Typ, Array, wie zum Beispiel: ['deine Schwester', 'Ich habe verloren', 'heilige Scheiße']
// Wenn Sie den regulären Abgleich verwenden, beträgt die Länge des Textes 1 Million, die Länge der Wörter beträgt 1 Million und es dauert 4 Sekunden!
, badWord: Funktion (Text, Wörter) { //# Filterung sensibler Wörter
         text = String(text || '');
Wörter = Wörter ||. [];
          var reg = new RegExp(words.join('|'), 'g')
, , _self = this;
           return text.replace(reg, function ($0) {
            var length = String($0 || '').length;
               return _self.repeat('*', length);
        });
}
};

 6. Verschlüsselungsmethode eingestellt

Code kopieren Der Code lautet wie folgt:

pFan.encrypt = { //# 加密
    md5: Funktion (Wörter) {  //# md5 哈希算法
        /*
         * Crypto-JS 3.1.2
         * http://code.google.com/p/crypto-js
         */
        var CryptoJS = Funktion (s, p) {
            var m = {}, l = m.lib = {}, n = function () { }, r = l.Base = { extension: function (b) { n.prototype = this; var h = neues n; b && h.mixIn(b); h.hasOwnProperty("init") || (h.init = function () { h.$super.init.apply(this, arguments) }); h.init.prototype = h; h.$super = this; return h }, create: function () { var b = this.extend(); b.init.apply(b, Argumente); return b }, init: function () { }, mixIn: function (b) { for (var h in b) b.hasOwnProperty(h) && (this[h] = b[h]); b.hasOwnProperty("toString") && (this.toString = b.toString) }, clone: ​​function () { return this.init.prototype.extend(this) } }, q = l.WordArray = r.extend( { init: function (b, h) { b = this.words = b || []; this.sigBytes = h != p ? h : 4 * b.length }, toString: function (b) { return (b ||. t).stringify(this) }, concat: function (b) { var h = this.words, a = this.sigBytes; if (j % 4) für (var g = 0; g < b; g ) h[j g >>> 2] |= (a[g >>> 2] >>> 24 - 8 * (g % 4) & 255) << 24 - 8 * ((j g) % 4); sonst wenn (65535 < a.length) für (g = 0; g < b; g = 4) h[j g >> 2] = a[g >> : function () { var b = this.sigBytes; b[h >>> s.ceil(h / 4) }, clone: ​​function () { var b = r.clone.call(this); b.words = this.words.slice(0); return b }, random: function (b ) { für (var h = [], a = 0; a < B; a = 4) h.push(4294967296 * s.random() | 0); return new q.init(h, b) } }), v = m.enc = {}, t = v.Hex = { stringify: function (b) { var a = b.words; b = b.sigBytes; for (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("") }, parse: function (b) { for (var a = b.length, g = [], j = 0 ; j < a; j = 2) g[j >>> 3] |= parseInt(b.substr(j, 2), 16) << 24 - 4 * (j % 8); return new q.init(g, a / 2) } }, a = v.Latin1 = { stringify: function (b) { var a = b.words; b = b.sigBytes; for (var g = [], j = 0; j < b; j ) g.push(String.fromCharCode(a[j >>> 2] >>> 24 - 8 * (j % 4) & 255)); return g.join("") }, parse: function (b) { for (var a = b.length, g = [], j = 0; j < a; j ) g[j >>> ; 2] |= (b.charCodeAt(j) & 255) << 24 - 8 * (j % 4); return new q.init(g, a) } }, u = v.Utf8 = { stringify: function (b) { try { return decodeURIComponent(escape(a.stringify(b))) } Catch (g) { throw Error („Fehlerhafte UTF-8-Daten“); } }, 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); if (b) { for (var l = 0; l < b; l = k) this._doProcessBlock(g, l); splice(0, b); a.sigBytes -= j } return new q.init(l, j) }, clone: ​​function () { var b = r.clone.call(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() }, update: 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 (new k.HMAC.init(b, g)).finalize(a) } } }); var k = m.algo = {}; gib m zurück
        }(Mathe);
        (Funktion(en) {
            Funktion p(a, k, b, h, l, j, m) { a = a (k & b | ~k & h) l m; return (a << j | a >>> 32 - j) k } Funktion m(a, k, b, h, l, j, m) { a = a (k & h | b & ~h) l m; return (a << j | a >>> 32 - j) k } Funktion l(a, k, b, h, l, j, m) { a = a (k ^ b ^ h) l m; return (a << j | a >>> 32 - j) k } Funktion n(a, k, b, h, l, j, m) { a = a (b ^ (k | ~ h)) l m; return (a << j | a >>> 32 - j) k } for (var r = CryptoJS, q = r.lib, v = q.WordArray, t = q.Hasher, q = r .algo, a = [], u = 0; 64 > u ) a[u] = 4294967296 * s.abs(s.sin(u 1)) | 0; q = q.MD5 = t.extend({
                _doReset: function () { this._hash = new v.init([1732584193, 4023233417, 2562383102, 271733878]) }, _doProcessBlock: function (g, k) {
                    for (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 - Std. % 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.length 1); this._process(); a = this._hash; k = a.words; für (b = 0; 4 > b; b ) h = k[b], k[b] = (h << 8 | h >>> 24) & 16711935 | (h << 24 | h >>> 8) & 4278255360; return a }, clone: ​​function () { var a = t.clone.call(this); a._hash = this._hash.clone(); gib ein }
zurück             }); r.MD5 = t._createHelper(q); r.HmacMD5 = t._createHmacHelper(q)
        })(Mathe);
        return CryptoJS.MD5(words).toString();
    }
    // sha1
    , sha1: Funktion (Wörter) { //# sha1  哈希算法
        var CryptoJS = function (e, m) { var p = {}, j = p.lib = {}, l = function () { }, f = j.Base = { extension: function (a) { l.prototype = dies; var c = neues l; a && c.mixIn(a); c.hasOwnProperty("init") || (c.init = function () { c.$super.init.apply(this, arguments) }); c.init.prototype = c; c.$super = this; return c }, create: function () { var a = this.extend(); a.init.apply(a, Argumente); return 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) }, clone: ​​function () { return this.init.prototype.extend(this) } }, n = j.WordArray = f.extend( { init: function (a, c) { a = this.words = a || []; this.sigBytes = c != m ? c : 4 * a.length }, toString: function (a) { return (a ||. h).stringify(this) }, concat: function (a) { var c = this.words, d = a.sigBytes; if (d % 4) für (var b = 0; b < a; b ) c[d b >>> 2] |= (q[b >>> 2] >>> 24 - 8 * (b % 4) & 255) << 24 - 8 * ((d b) % 4); sonst wenn (65535 < q.length) für (b = 0; b < a; b = 4) c[d b >> 2] = q[b >> : function () { var a = this.sigBytes; a[c >>> e.ceil(c / 4) }, clone: ​​function () { var a = f.clone.call(this); a.words = this.words.slice(0); return a }, random: function (a ) { für (var c = [], b = 0; b < A; b = 4) c.push(4294967296 * e.random() | 0); return new n.init(c, a) } }), b = p.enc = {}, h = b.Hex = { stringify: function (a) { var c = a.words; a = a.sigBytes; for (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 < c; d = 2) b[d >>> 3] |= parseInt(a.substr(d, 2), 16) << 24 - 4 * (d % 8); return new n.init(b, c / 2) } }, g = b.Latin1 = { stringify: function (a) { var c = a.words; a = a.sigBytes; for (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); return new n.init(b, c) } }, r = b.Utf8 = { stringify: function (a) { try { return decodeURIComponent(escape(g.stringify(a))) } Catch (c) { throw Error („Fehlerhafte UTF-8-Daten“); } }, parse: function (a) { return g.parse(unescape(encodeURIComponent(a))) } }, k = j.BufferedBlockAlgorithm = f.extend({ reset: function () { this._data = new n. init; this._nDataBytes = 0 }, _append: function (a) { "string" == typeof a && (a = r.parse(a)); this._nDataBytes = a. sigBytes }, _process: function (a) { var c = this._data, b = c.words, d = c.sigBytes, f = this.blockSize, h = d / (4 * f), h = a ? .ceil(h) : e.max((h | 0) - this._minBufferSize, 0); a = h * f = e.min(4 * a, d); g = 0; g < a; g = f) this._doProcessBlock(b, g); }, clone: ​​function () { var a = f.clone.call(this); a._data = this._data.clone(); return a }, _minBufferSize: 0 }); 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() }, update: 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 = {}; return 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[2], k = b[3], j = b[4], a = 0 ; a a ) { si (16 > ; a) l [une] = f[n une] | 0; sinon { var c = l[une - 3] ^ l[une - 8] ^ l[une - 14] ^ l[une - 16]; ≪≪ 1 | c >> 31 } c = (h << 5 | h >> 27) j l[a]; & e | ~g & k) 1518500249) : 40 > ) : c ((g ^ e ^ k) - 899497514 ); j = k = e = g << [0] = b[0] h | 0; b[1] = b[1] g | ; b[4] = b[4] j | 0 }, _doFinalize : function () { var f = this._data, e = f.words, b = 8 * this._nDataBytes, h = 8 * f.sigBytes; e[h >>> 5] |= 128 ≪≪ 24 heures % 32 ; e[(h 64 >>> 9 << 4) 14] = Math.floor(b / 4294967296); e[(h 64 >>> 9 ≪≪ 4) 15] = b; f.sigBytes = 4 * e.longueur ; this._process(); renvoie this._hash }, clone : function () { var e = j.clone.call(this); e._hash = this._hash.clone(); retourner e } }); e.SHA1 = j._createHelper(m); e.HmacSHA1 = j._createHmacHelper(m) })();
        return CryptoJS.SHA1(words).toString();
    >
    // time33 哈希
    , time33 : function (mots) { //# time33 哈希算法
        mots = mots || '';
        //哈希time33算法
        pour (var i = 0, len = mots.longueur, hash = 5381; i < len; i) {
            hash = (hash << 5) mots.charAt(i).charCodeAt();
        };
        retourner le hachage & 0x7fffffff;
    >
>

  7.日期方法集

复制代码 代码如下 :

pFan.date = {
    //返回时间戳
    getTimeStamp:fonction(){
        var timestamp=new Date().getTime();
        return timestamp.toString();
    },
    //时间戳转为日期格式
    //@nS为时间戳
    getLocalTime : fonction (nS) { 
        return new Date(parseInt(nS) * 1000).toLocaleString().substr(0,17);
    },
    //@time , 时间 , 如 new Date('2013/11/10 0:12:12')
    //@pre , 星期的 前缀,如:周 ,星期
    //@ nums ,如:一二三四五六日
    getWeek : fonction (heure, pré, nombres) { //# 获取星期几
        heure = type d'heure == 'chaîne' ? this.parse(time) : (time || new Date());
        pré = pré || '星期'; //周
        nombres = nombres || '日一二三四五六';
        return pre nums[time.getDay()];
    },
    //@formatType : AAAA, AA, MM
    //@ heure : nouvelle Date('2013/11/12')
    //@semaines : 日一二三四五六
    format : fonction (formatType, heure, semaines) { //格式化输出时间
        var pré = '0',
        formatType = pour
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn