En el mundo de JavaScript, todo es un objeto.
Pero algunos objetos siguen siendo diferentes de otros. Para distinguir el tipo de objeto, usamos typeof para obtener el tipo de objeto, que siempre devuelve una cadena:
typeof 123; // 'Number'tipof nan; // 'Number'tipof' str '; // 'string'typof true; // 'boolean'tipof indefinido; // 'Undefined'typeOf Math.abs; // 'function'tipof null; // 'Object'tipof []; // 'Object'Tipof {}; // 'Object' typeof {}; // 'objeto' Como se puede ver, number , string , boolean , function y undefined son diferentes de otros tipos. Preste especial atención al tipo de object null , y el tipo de Array también es object . Si usamos typeof , no podremos distinguir null , Array y objeto en el sentido habitual - {} .
Objeto de embalaje
number , boolean y string tienen objetos de envoltura. Sí, en JavaScript, las cadenas también distinguen entre los tipos string y sus tipos de envoltura. El objeto de envoltura se crea con new :
var n = nuevo número (123); // 123, se generó un nuevo tipo de empaque var b = nuevo booleano (verdadero); // Verdadero, se generó un nuevo tipo de embalaje var s = nueva cadena ('str'); // 'str', se generó un nuevo tipo de embalaje Aunque el objeto Wrapper se ve exactamente igual que el valor original y se muestra exactamente igual, ¡su tipo se ha convertido en object ! Por lo tanto, comparar el objeto de envoltura con el valor original con === devolverá false :
typeOf New Number (123); // 'Object'New Number (123) === 123; // falsetipo de nuevo booleano (verdadero); // 'Object'New Boolean (true) === True; // falsetipo de nueva cadena ('str'); // 'Object'New String (' str ') ===' str '; // FALSO¡Así que no use el objeto de embalaje incluso si se siente inactivo! ¡Especialmente para los tipos de cuerdas! ! !
Fecha
En JavaScript, el objeto Date se usa para representar fechas y tiempos.
Para obtener la hora actual del sistema, use:
var ahora = nueva fecha (); ahora; // miércoles 24 de junio de 2015 19:49:22 GMT+0800 (CST) ahora.gettylyear (); // 2015, año ahora.getmonth (); // 5, mes, tenga en cuenta que el rango de mes es 0 ~ 11, 5 significa junio ahora.getDate (); // 24, significa 24th Now.getday (); // 3, significa miércoles ahora.gethours (); // 19, 24 horas ahora.getminutes (); // 49, minuto ahora.getSeconds (); // 22, segundos ahora.getMilliseConds (); // 875, milisegundos ahora.gettime (); // 1435146562875, marca de tiempo representada en número
Tenga en cuenta que la hora actual es el momento en que el navegador obtiene del sistema operativo local, por lo que no es necesariamente preciso, porque el usuario puede establecer la hora actual en cualquier valor.
Si desea crear un objeto Date con una fecha y hora especificadas, puede usar:
var d = nueva fecha (2015, 5, 19, 20, 15, 30, 123);
Es posible que haya observado un muy, muy estafado, es decir, el rango de mes de JavaScript está representado por enteros, de 0 a 11, 0 a enero y del 1 al febrero ..., por lo que para representar junio, estamos pasando en 5! Definitivamente, esto es algo que el diseñador de JavaScript tenía una contracción cerebral en ese momento, pero es imposible arreglarlo ahora.
La segunda forma de crear una fecha y hora específicas es analizar una cadena que se ajusta al formato ISO 8601:
var d = date.Parse ('2015-06-24T19: 49: 22.875+08: 00'); d; // 1435146562875 Pero no devuelve un objeto Date , sino una marca de tiempo. Pero con una marca de tiempo, se puede convertir fácilmente a una Date :
var d = nueva fecha (1435146562875); d; // miércoles 24 de junio de 2015 19:49:22 GMT+0800 (CST)
Huso horario
El tiempo representado por Date siempre se muestra de acuerdo con la zona horaria del navegador, pero podemos mostrar tanto la hora local como la hora UTC ajustada:
var d = nueva fecha (1435146562875); d.tolocaleString (); // '2015/6/24 7:49:22 PM', hora local (zona horaria de Beijing +8: 00), la cadena mostrada está relacionada con el formato establecido por el sistema operativo D.ToutCString (); // 'miércoles, 24 de junio de 2015 11:49:22 GMT', hora de UTC, 8 horas separadas de la hora local
Entonces, ¿cómo convertir las zonas horarias en JavaScript? De hecho, mientras pasemos una marca de tiempo de tipo number , no tenemos que preocuparnos por la conversión de la zona horaria. Cualquier navegador puede convertir correctamente una marca de tiempo a la hora local.
Por lo tanto, solo necesitamos pasar la marca de tiempo, o leer la marca de tiempo de la base de datos, y luego convertir automáticamente JavaScript a la hora local.
Para obtener la marca de tiempo actual, puede usar:
if (date.now) {alert (date.now ()); // La versión anterior de IE no tiene el método ahora ()} else {alert (nuevo date (). GetTime ());}Json
En JSON, solo hay unos pocos tipos de datos:
• Número: es exactamente lo mismo que el número JavaScript;
• Boolean: es verdadero o falso de JavaScript;
• cadena: es una cadena JavaScript;
• NULL: es nulo de JavaScript;
• Array: es el método de representación de la matriz JavaScript - [];
• Objeto: es la representación {...} de JavaScript.
y cualquier combinación arriba.
Publicación por entregas
Primero serializemos el objeto Xiao Ming en una cadena JSON:
var xiaoming = {nombre: 'xiao ming', edad: 14, género: verdadero, altura: 1.65, grado: nulo, 'escolar intermedia': '/"w3c/" escuela secundaria', habilidades: ['javascript', 'java', 'python', 'lisp']};使用JSON.stringify()之后:
Json.stringify (Xiaoming); // '{"Nombre": "Xiao Ming", "Age": 14, "Género": True, "Altura": 1.65, "Grado": NULL, "Middle-School": "/" W3C/"Middle School", "Habilidades": ["JavaScript", "Java", "Python", "Lisp"]} "Para obtener mejor, puede agregar parámetros e identificar la salida:
Json.stringify (Xiaoming, Null, '');
resultado:
{"Nombre": "Xiao Ming", "Age": 14, "Género": True, "Altura": 1.65, "Grado": Null, "Media-School": "/" W3C/"Middle School", "Habilidades": ["JavaScript", "Java", "Python", "Lisp"]} El segundo parámetro se usa para controlar cómo filtrar los valores clave del objeto. Si solo queremos emitir el atributo especificado, podemos pasarlo a Array :
Json.stringify (xiaoming, ['nombre', 'habilidades'], '');
resultado:
{"Nombre": "Xiao Ming", "Habilidades": ["JavaScript", "Java", "Python", "Lisp"]}También puede pasar en una función para que cada par de valores clave del objeto sea procesado primero por la función:
function Convert (Key, Value) {if (typeOf value ==== 'String') {return value.ToUpperperCase (); } valor de retorno;} json.stringify (xiaoming, convertir, '');El código anterior convierte todos los valores de atributo en capitalización:
{"Nombre": "Xiao Ming", "Age": 14, "Género": True, "Altura": 1.65, "Grado": Null, "Media-School": "/" W3C/"Middle School", "Habilidades": ["JavaScript", "Java", "Python", "Lisp"]} Si también queremos controlar con precisión cómo serializar a Xiao Ming, podemos definir un método toJSON() para xiaoming y devolver directamente los datos que JSON debería serializar:
var xiaoming = {name: 'xiao ming', edad: 14, género: true, altura: 1.65, grado: null, 'middle-school': '/"w3c/" secundaria escolar', habilidades: ['javascript', 'java', 'python', 'lisp'], tojson: function () {regreso {solo name y name y la edad es el nombre y el nombre: el nombre: 'name' this.name, 'edad': this.age}; }}; Json.stringify (xiaoming); // '{"Nombre": "Xiao Ming", "Age": 14}'Deserialización
Obtenga una cadena de formato JSON, y usamos directamente JSON.parse() para convertirlo en un objeto JavaScript:
Json.parse ('[1,2,3, verdadero]'); // [1, 2, 3, verdadero] json.parse ('{"nombre": "xiao ming", "edad": 14}'); // objeto {nombre: 'Xiao Ming', edad: 14} json.parse ('verdadero'); // truejson.parse ('123.45'); // 123.45 JSON.parse() también puede recibir una función para convertir las propiedades analizadas:
Json.parse ('{"nombre": "xiao ming", "edad": 14}', function (key, value) {// Pon número * 2: if (key ==== 'name') {Value de retorno + 'estudiante';} Valor de retorno;}); // Objeto {nombre: 'Estudiante Xiao Ming', edad: 14}El artículo anterior habla brevemente sobre los objetos estándar de JavaScript es todo el contenido que comparto con usted. Espero que pueda darle una referencia y espero que pueda apoyar más a Wulin.com.