"Programación JavaScript avanzadas" serie de notas 3-- Tipos de datos

Tipos de datos

Hay cinco clases de tipos de datos simples de ECMAScript (también conocidos como datos básicos de Undefinedlos tipos):Null , Boolean,, Numbery String. Hay una clase de tipos de datos complejos - Object, Objectesencialmente por un conjunto de pares de nombre y valor de no ordenada.

operador typeof

typeof Detectar el tipo de una variable dada de datos

var message = "some string";
alert(typeof message); // "string"
alert(typeof(message)); // "string"
alert(typeof 95); // "number"

Indefinido tipo

UndefinedSólo un tipo de valor, que es especial undefined.

var message;// 在使用 var 声明变量但未对其加以初始化时,这个变量的值就是 undefined 
alert(message == undefined); //true

El ejemplo siguiente utiliza undefined valores inicializados explícitamente las variables message. Pero no necesitamos hacer eso, ya que el valor por defecto de no inicializado obtendrá undefined valor.

var message = undefined;
alert(message == undefined); //true

Sin embargo, que contiene undefined el valor de la variable de la variable no está definida o no es lo mismo.

var message; // 这个变量声明之后默认取得了 undefined 值
// 下面这个变量并没有声明
// var age
alert(message); // "undefined"
alert(age); // 产生错误

Ejecutar el código anterior, el primer cuadro de advertencia Muestra la variable de message valores, es decir "undefined". Mientras que el segundo cuadro de alerta - Dado que la transferencia de la función de alerta () es una variable no ha sido declarado edad - resultará en un error. Para la variable no se ha declarado, sólo se puede realizar una acción, que el uso de typeoflos operadores para detectar el tipo de datos (variables que no tengan llamadas de declaración deleteno se producirá un error, pero esto no es un significado práctico, sino también en el modo estricto hace causa error).

Confusamente: DO typeof operador devuelve el valor indefinido, mientras que typeof operador realizar las variables no declaradas también volverán valor indefinido de variables sin inicializar. Consideremos el siguiente ejemplo:

var message; // 这个变量声明之后默认取得了 undefined 值
// 下面这个变量并没有声明
// var age
alert(typeof message); // "undefined"
alert(typeof age); // "undefined"

Los resultados mostraron que realiza typeof operador y variables no inicializadas no declarada se devuelven valores no definidos; el resultado de que hay una lógica razonable. Porque aunque estas dos variables desde un punto de vista técnico son esencialmente diferentes, pero en realidad no importa, es imposible llevar a cabo la operación real del tipo de variable.

Tipo nula

Null tipo de datos del segundo tipo es sólo un valor, el valor especial es nulo. Desde un punto de vista lógico, un valor nulo indica un puntero objeto nulo, que también se utiliza typeof operador devuelve un valor nulo detecta la razón "objeto" tiempo.

var car = null;
alert(typeof car); // "object"

El valor indefinido se deriva de un valor nulo, prueba de igualdad a ser devuelto a su verdadero

alert(null == undefined); //true

tipo booleano

tipo booleano sólo una palabra de valor nominal: verdadero y falso.

Otros tipos de datos pueden ser convertidos en un valor booleano

número de tipo

tipos Número incluyen valores de punto de enteros y flotantes

La primera octal literal debe ser cero (0), entonces la secuencia de dígitos octales (0 a 7). Si los literales de valor más allá de la gama, los ceros iniciales se ignoran, el último valor será tratado como un análisis numérico decimal.

var octalNum1 = 070; // 八进制的 56
var octalNum2 = 079; // 无效的八进制数值——解析为 79
var octalNum3 = 08; // 无效的八进制数值——解析为 8

literales octales en el modo estricto no es válido, que dará lugar a apoyar motor de JavaScript genera un error.

Los dos primeros literales hexadecimales deben ser 0x

tipo de cadena

tipo String se utiliza para representar una secuencia de caracteres de cero o más caracteres Unicode de 16 bits, es decir, la cadena. Cadena puede ser representado por un único o dobles comillas:

var aa = "string";
var bb = 'string';

cadena de ECMAScript indica mediante comillas dobles y cadena exacta representada por comillas simples.

literales de carácter

tipo de datos de cadena contiene caracteres literales especiales, también conocidas como secuencias de escape para la representación de caracteres no imprimibles, o caracteres que tiene otros fines. Estos caracteres literales en la tabla siguiente:

Longitud de la cadena se puede hacer mediante el acceso a su propiedad length.

var text = "\u03a3";
alert(text.length);

Los ejemplos de los resultados anteriores

Se puede ver \u03a3la secuencia de seis caracteres que representa un carácter de escape.

Características de la cadena

ECMAScript cadenas son inmutables, es decir, la cadena una vez creada, sus valores no se pueden cambiar. Para cambiar la cadena almacenada en una variable, debe destruir primero la cadena original, y luego usar otra cadena que contiene el nuevo valor de la variable de llenado.

En una cadena

  • toString () método
    numérico, boolean, secuencia, y el valor del objeto (sí, cada cadena tiene también un método toString (), que devuelve una copia de la cadena) son método toString (). Sin embargo, este valor no es nulo y el método definido.

En la mayoría de los casos, llama al método toString () no tiene que pasar parámetros. Sin embargo, el valor de la llamada de método toString () cuando, puede pasar un parámetro: el valor de salida base. Por defecto, toString () devuelve el método del valor representado por una cadena en formato decimal. Pasando a través de la base, toString () puede ser de salida en binario, octal, hexadecimal, cadena binaria, así como cualquier otro valor efectivo del formato.

var age = 11;
var ageAsString = age.toString(); // 字符串"11"
var found = true;
var foundAsString = found.toString(); // 字符串"true"
  • función de transformación String ()

Esta función se puede convertir en un valor de cadena de cualquier tipo

1, si toString () método de valor, se llama al método (sin parámetros) y devolver los resultados;

2, si el valor es nulo, "nulo" se devuelve;

3, si no está definido el valor "indefinido" se devuelve.

var value1 = 10;
var value2 = true;
var value3 = null;
var value4;
alert(String(value1)); // "10"
alert(String(value2)); // "true"
alert(String(value3)); // "null"
alert(String(value4)); // "undefined"

Poner un valor en una cadena, el operador puede usar el signo más (discutido en la sección 3.5) con una cadena de caracteres ( "") juntos.

Tipos de objetos

En realidad, es una colección de datos y funcionalidad en un conjunto de objetos de ECMAScript. Los objetos pueden ser creados por la aplicación del tipo de objeto el nombre del nuevo operador siguió a crear. Los tipos de objetos creados método (o) de instancia y agregar y se pueden crear objetos personalizados.

Que en ECMAScript, (como java.lang.Object objetos en Java) tipo de objeto es la base para todas sus instancias. En otras palabras, cualquiera de las propiedades y los métodos de tipo de objetos también tiene presente en un objeto más específico.

Cada instancia de objeto tiene los siguientes atributos y métodos:

  • constructor: Guardar la función utilizada para crear el objeto actual. Para el ejemplo anterior, el constructor (constructor) es Object ().

  • hasOwnProperty (propertyName): la comprobación de un atributo dado en la instancia de objeto actual (en lugar de en el ejemplo prototipo) existe. En el que el nombre de la propiedad debe ser especificado como un parámetro (nombrePropiedad) una cadena (por ejemplo: o.hasOwnProperty ( "nombre")).

var o = new Object();
o.name = 'js';
o.hasOwnProperty('name');
o.hasOwnProperty('age');

  • isPrototypeOf (objeto): Objeto se utiliza para comprobar si prototipo objeto entrante entrante.

  • propertyIsEnumerable (nombrePropiedad): Se utiliza para comprobar si una determinada propiedad se puede utilizar para la declaración de (discutido más adelante en este capítulo) para enumerar. Y hasOwnProperty () de la misma, debe especificarse como un parámetro de cadena de nombre de la propiedad.

o.propertyIsEnumerable('name'); // true
  • toLocaleString (): Devuelve una representación de cadena del objeto, la región correspondiente al entorno de la cadena y la ejecución.

var born = new Date("July 21, 1983 01:15:00");
console.log(born.toLocaleString());

var arr = new Array(3);
arr[0] = "George";
arr[1] = "John";
arr[2] = "Thomas";

console.log(arr.toLocaleString());

  • toString (): Devuelve una representación de cadena.

  • valueOf (): devuelve la cadena objeto, o valores booleanos representados. Generalmente toString () Devuelve el valor del mismo método.

var colors = ["red", "blue", "green"]; // 创建一个包含3 个字符串的数组  
alert(colors.toString()); // red,blue,green  
alert(colors.valueOf()); // red,blue,green  
alert(colors); // red,blue,green  

Supongo que te gusta

Origin www.cnblogs.com/homehtml/p/12619808.html
Recomendado
Clasificación