1.json para caducar
La copia del código es la siguiente:
función json2str (o) {
var arr = [];
var fmt = function (s) {
if (typeof s == 'object' && s! = null) return json2str (s);
return /^(String|Number)$/.test(TypeF s)? "'" + S + "'": S;
};
para (var i en o) arr.push ("'" + i + "':" + fmt (o [i]));
return '{' + arr.Join (',') + '}';
}
2. Convertir la marca de tiempo hasta la fecha
La copia del código es la siguiente:
función deUnixTime (timestamp) {
If (!
var thedate = nueva fecha (parseint (marca de tiempo) * 1000);
devolver thedate;
}
3. formato de datos
La copia del código es la siguiente:
// Autor: Meizz
// Extensión de la fecha, convierta la fecha en la cadena en el formato especificado
// 1-2 Se pueden usar marcadores de posición para mes (M), día (d), hora (H), minuto (M), segundos (s) y cuarto (Q).
// año (y) se puede usar con 1-4 marcadores de posición, los milisegundos solo pueden usar 1 marcador de posición (es un número de 1-3 dígitos)
// ejemplo:
// (nueva fecha ()). Format ("aaa yyy-mm-dd hh: mm: ss.s") ==> 2012-12-02 08: 12: 04.423
// (nueva fecha ()). Format ("A yyyy-MD H: M: SS") ==> 2012-12-02 8: 12: 4.18
Date.prototype.format = function (fmt) {
var o = {
"M +": this.getMonth () + 1, // mes
"D+": this.getDate (), // Day
"H+": this.gethours (), // horas
"M+": this.getminutes (), // min
"S+": this.getSeconds (), // sec
"Q +": Math.floor ((this.getMonth () + 3) /3), // trimestralmente
"S": this.getMilliseConds () // ms
};
if (/(y+)/.test(fmt))
fmt = fmt.replace (regexp. $ 1, (this.getblyaryar () + "") .substr (4 - regexp. $ 1.length));
para (var k in o)
if (new Regexp ("(" + K + ")"). Test (FMT))
fmt = fmt.replace (regexp. $ 1, (regexp. $ 1.length == 1)? (o [k]): (("00" + o [k]). Substr (("" + o [k]). longitud)));
devolver fmt;
};
4. Agregue n días a la fecha
La copia del código es la siguiente:
función addday (número) {
Regreso deUnInTEME (nueva fecha (). GetTime () / 1000 + 24 * 60 * 60 * Número);
}
5. Al usar un iframe, la llamada mutua entre la forma principal y la forma del niño
La copia del código es la siguiente:
// Las funciones de llamadas de formulario principal en forma de niño
Window.frames ['ifm_id']. ValueChange ("id_101");
// La forma del niño llama a la función de la forma principal
parent.refreshtree ("nodeid_202");
6. Formulario emergente y valor de retorno
La copia del código es la siguiente:
// formulario emergente
var url = "http://www.baidu.com";
win = window.showModalDialog (url, ventana, "dialogleft: 400; dialogTop: 200; diálogowidth: 560px; dialogHeight: 380px; desplazamiento: sí; menuBar: no; barra de herramientas: no; estado: no;");
// establecer el valor de retorno en el formulario emergente
Resultado var = nuevo array ();
resultado [0] = "ID_101";
resultado [1] = "name_202";
Window.ReturnValue = resultado;
window.close ();
7. JavaScript Alcance [Solo alcance global y alcance de funciones, JavaScript no tiene alcance de bloque]
La copia del código es la siguiente:
// 1. Alcance global
var id = "variable global"; // 1.1 variable definida fuera de la función
función showmsg () {
mensaje = "mensaje global"; // 1.2 variables que se asignan directamente sin definición
// Definir como una variable global cuando se usa por primera vez
}
// 2. Al alcance de la función
función docheck () {
var data = "Function Data"; // 2.1 Variables definidas dentro de la función
}
8. Mecanismo de herencia de JavaScript
La copia del código es la siguiente:
// 1. Herencia de suplantación de objetos
Función persona (strname) {
// campos privados
var name = strname;
// Métodos públicos
this.getName = function () {
nombre de retorno;
};
}
Function Student (strname, strschool) {
// Defina las propiedades y métodos de la clase principal
this.parent = persona;
this.parent (strname);
Eliminar esto.Parent; // Eliminar el padre variable temporal
// Definir nuevas propiedades y métodos
// campos privados
VAR School = strschool;
// Métodos públicos
this.getSchool = function () {
escuela de regreso;
};
}
// 2. Llame a (..) o aplique (..) herencia del objeto de funciones
// La diferencia entre llamar y aplicar es:
// El segundo parámetro de llamada es un parámetro variable;
// El segundo parámetro de aplicar es la matriz;
function animal (strname, intage) {
// campos privados
var name = strname;
var age = intage;
// Métodos públicos
this.getName = function () {
nombre de retorno;
};
this.getage = function () {
edad de retorno;
};
}
function cat (strname, intage, strcolor) {
// Defina las propiedades y métodos de la clase principal
Animal.call (esto, strname, intage);
// animal.apply (this, nueva matriz (strname, intage));
// Definir nuevas propiedades y métodos
// campos privados
var color = strcolor;
// Métodos públicos
this.getInfo = function () {
Return "Nombre:" + this.getName () + "/n"
+ "edad:" + this.getage () + "/n"
+ "color:" + color;
};
}
// 3. Herencia prototipo
// El prototipo de propiedades y métodos declarados son compartidas por todos los objetos
// El prototipo solo se usará al leer atributos
Function.prototype.extend = function (superclass) {
// La F aquí es para evitar subclases de acceso a las propiedades this.xxx en la clase principal
función f () {};
F.prototype = superclass.prototype;
// Constructor de clase principal
this.superConstrucor = SuperClass;
this.superClass = superclass.prototype;
this.prototype = new f ();
this.prototype.constructor = this;
};
Function.prototype.mixin = function (props) {
para (var p en los accesorios) {
this.prototype [p] = props [p];
}
};
function box () {}
Box.prototype = {
getText: function () {
devolver esto.text;
},
settext: function (text) {
this.text = text;
}
};
Funcion CheckBox () {}
Checkbox.extend (casilla);
Checkbox.mixin ({
isChecked: functer () {
devolver esto. Verificado;
},
setChecked: function (checked) {
this.ecked = checked;
}
});
9. Llame, aplique y vincule
La copia del código es la siguiente:
// thantarg representa el objeto indicado por esto cuando la diversión está dentro
// llamar y aplicar se ejecutará inmediatamente y devolverá el resultado
VAR result = Fun.call (ThatesArg, Arg1, ...);
VAR result = divers.apply (thatsarg, [argsArray]);
// thantarg representa el objeto indicado por esto cuando la diversión está dentro
// Bind Devuelve una función anónima
var tmpfun = divers.bind (thatesarg);
resultado var = tmpfun (arg1, ...);
La copia del código es la siguiente:
<script type = "text/javaScript">
/**
* Extender la funcionalidad de la función
*/
Function.prototype.bind = function (obj) {
método var = this;
var tmpfun = function () {
retorno método.apply (obj, argumentos);
};
devolver tmpfun;
}
función parent () {
this.name = "Parent";
}
function child () {
this.name = "Child";
this.getName = function (time) {
Tiempo de retorno + "" + this.name;
};
}
var parent = new Parent ();
var niño = nuevo niño ();
alerta (child.getName (1)); // show 1 niño
alerta (child.getName.call (padre, 2)); // Show 2 Parent [Llame & Aplicar se ejecutará de inmediato]
var tmpfun = child.getname.bind (parent); // bind no se ejecutará inmediatamente
alerta (tmpfun (3)); // mostrar 3 padres
</script>
10. Operador JS "=="
La copia del código es la siguiente:
Reglas de conversión
Si un operando es un valor booleano, conviértelo en un número antes de comparación: False -> 0, verdadero -> 1;
Si un operando es un número y el otro operando es una cadena, luego convierta la cadena en un número antes de la comparación;
Si un operando es un objeto y el otro es un número o una cadena, el objeto se convertirá a un tipo primitivo antes de la comparación.
El motor primero intentará llamar a valuef (), si valueOf () no tiene anulación o devuelve un objeto,
Entonces el motor intentará llamar a toString (), y si toString () no tiene anulación o devuelve un objeto, se lanza una excepción;
Si se comparan dos objetos, determine si se refieren al mismo objeto;
Si un operando es nan, == devolverá falso,! = Devolverá verdadero;
NULL e indefinido devolverá falso si se comparan con otros valores.
Pero nulo == nulo, indefinido == Undefinado, nulo == Undefinado;
NULL e indefinido no se puede convertir a otros valores al participar en la comparación;