* Fundamentos de JavaScript 6 Objetos integrados · Pila · Pasando parámetros

1-Objetos incorporados

1.1 Objetos incorporados

Hay tres tipos de objetos en JavaScript: objetos personalizados, objetos integrados y objetos de navegador. Los
dos primeros objetos son el contenido básico de JS y pertenecen a ECMAScript; el tercer objeto de navegador es exclusivo de JS, y la API de JS explica objetos incorporados. Se refiere a algunos objetos que vienen con el lenguaje JS. Estos objetos son para que los desarrolladores los utilicen y proporcionen algunas funciones (atributos y métodos) de uso común o las más básicas y necesarias . La mayor ventaja de los objetos incorporados es ayudarnos a desarrollarnos rápidamente

JavaScript proporciona múltiples objetos integrados: Math, Date, Array, String, etc.

1.2 Verificar documentos

Encontrar documentos: para aprender el uso de un objeto integrado, siempre que aprenda a usar sus miembros comunes, podemos aprender buscando el documento y podemos consultarlo a través de MDN / W3C.
Mozilla Developer Network (MDN) proporciona información sobre Open Web, incluidos HTML, CSS y API para las aplicaciones World Wide Web y HTML5.
MDN: https://developer.mozilla.org/zh-CN/

1.3 Objeto matemático

El objeto Math no es un constructor, tiene las propiedades y métodos de constantes y funciones matemáticas. Las operaciones relacionadas con las matemáticas (valor absoluto, redondeo, valor máximo, etc.) pueden usar los miembros en Math.

Propiedad, nombre del método Características
Math.PI Pi
Math.floor () Redondear a la baja
Math.ceil () Acuerdo de mejora
Math.round () La versión redondeada se redondea al número entero más cercano. Nota -3.5 El resultado es -3
Math.abs () Valor absoluto
Math.max () / Math.min () Encuentra el máximo y el mínimo
Math.random () Obtener un valor aleatorio en el rango (0,1)

Nota: el método anterior debe usarse entre paréntesis

Adquirir un entero aleatorio dentro del rango especificado :

function getRandom(min, max) {
    
    
  return Math.floor(Math.random() * (max - min + 1)) + min; 
}

1.4 Objeto de fecha

El objeto Date no es lo mismo que el objeto Math. Date es un constructor, por lo que debe crear una instancia antes de poder usar los métodos y propiedades específicos. La instancia de fecha se usa para procesar la fecha y la hora

  • Use Date para crear una instancia de un objeto de fecha

    • Obtener la hora actual debe crearse una instancia:
    var now = new Date();
    
    • Obtener el objeto de fecha a la hora especificada
    var future = new Date('2019/5/1');
    

    Nota: Si no se pasan parámetros al crear la instancia, el objeto de fecha será el objeto de fecha correspondiente a la hora actual.

  • Utilice los métodos y propiedades de las instancias de fecha

Inserte la descripción de la imagen aquí

  • Obtenga el número total de milímetros a través de la instancia de Date

    • El significado de milisegundos totales

      Basado en el número de milisegundos desde el 1 de enero de 1970 (hora universal coordinada)

    • Obtenga el número total de milisegundos

      // 实例化Date对象
      var now = new Date();
      // 1. 用于获取对象的原始值
      console.log(date.valueOf())	
      console.log(date.getTime())	
      // 2. 简单写可以这么做
      var now = + new Date();			
      // 3. HTML5中提供的方法,有兼容性问题
      var now = Date.now();
      

1.5 Objeto de matriz

Dos formas de crear una matriz

  • Forma literal

    • El código de muestra es el siguiente:

      var arr = [1,"test",true];
      
  • nueva matriz ()

    • El código de muestra es el siguiente:

      var arr = new Array();
      

      Nota: En el código anterior, arr crea una matriz vacía. Si necesita usar el constructor Array para crear una matriz no vacía, puede pasar parámetros al crear la matriz.

      Las reglas de paso de parámetros son las siguientes:

      • Si solo se pasa un parámetro, el parámetro especifica la longitud de la matriz

      • Si se pasan varios parámetros, los parámetros se denominan elementos de la matriz.

Comprueba si es una matriz

  • instancia de operador

    • instanceof puede determinar si un objeto es una instancia de un constructor

      var arr = [1, 23];
      var obj = {
              
              };
      console.log(arr instanceof Array); // true
      console.log(obj instanceof Array); // false
      
  • Array.isArray ()

    • Array.isArray () se utiliza para determinar si un objeto es una matriz, isArray () es un método proporcionado en HTML5

      var arr = [1, 23];
      var obj = {
              
              };
      console.log(Array.isArray(arr));   // true
      console.log(Array.isArray(obj));   // false
      

Agregar un método para eliminar elementos de la matriz

  • Existen métodos para agregar y eliminar elementos en la matriz. Algunos métodos son los siguientes

Inserte la descripción de la imagen aquí

Nota: push y unshift son métodos para agregar elementos; pop y shift son métodos para eliminar elementos

Tipo de matriz

  • Existen métodos para ordenar la matriz en sí en la matriz, algunos de los métodos son los siguientes

Inserte la descripción de la imagen aquí

Nota: El método de clasificación debe pasar parámetros para establecer el orden ascendente y descendente

  • Si se pasa "function (a, b) {return ab;}", estará en orden ascendente
  • Si se pasa "function (a, b) {return ba;}", estará en orden descendente

Método de índice de matriz

  • En la matriz, hay métodos para obtener el valor de índice del elemento especificado de la matriz, algunos de los métodos son los siguientes

Inserte la descripción de la imagen aquí

Convertir matriz en cadena

  • Hay métodos para convertir la matriz en una cadena en la matriz, algunos de los métodos son los siguientes

Inserte la descripción de la imagen aquí

Nota: Si el método de unión no pasa parámetros, los elementos se empalmarán de acuerdo con ","

Otros metodos

  • Hay otros métodos de operación en la matriz, los estudiantes pueden verificar y aprender por sí mismos después de la clase.

Inserte la descripción de la imagen aquí

1.6 Objeto de cadena

Tipo de embalaje básico

Para facilitar el funcionamiento de los tipos de datos básicos, JavaScript también proporciona tres tipos de referencia especiales: Cadena, Número y Booleano.

El tipo de empaquetado básico es empaquetar tipos de datos simples en tipos de datos complejos, de modo que los tipos de datos básicos tengan atributos y métodos.

// 下面代码有什么问题?
var str = 'andy';
console.log(str.length);

Según la razón, el tipo de datos básico no tiene atributos y métodos, pero los objetos tienen atributos y métodos, pero el código anterior se puede ejecutar. Esto se debe a que

Js empaquetará tipos de datos básicos en tipos de datos complejos, y el proceso de ejecución es el siguiente:

// 1. 生成临时变量,把简单类型包装为复杂数据类型
var temp = new String('andy');
// 2. 赋值给我们声明的字符变量
str = temp;
// 3. 销毁临时变量
temp = null;

Cuerda inmutable

Se refiere al valor inmutable en el interior, aunque parece que se puede cambiar el contenido, en realidad se cambia la dirección y se abre un nuevo espacio de memoria en la memoria.

Al reasignar una variable de cadena, la cadena de la variable previamente guardada no se modificará, y reasignar la cadena en la memoria abrirá espacio en la memoria nuevamente.Esta característica es que la cadena es inmutable.
Debido a la inmutabilidad de las cuerdas , habrá problemas de eficiencia al concatenar una gran cantidad de cuerdas.

Posición de retorno basada en el personaje

Las cadenas pueden llamar a algunos métodos para manipular cadenas a través de los tipos de paquetes básicos. El siguiente es el método para devolver la posición del carácter especificado:

Inserte la descripción de la imagen aquí

Caso: busque la posición y el número de apariciones de todo o en la cadena "abcoefoxyozzopp"

  1. Primero encuentra la posición donde aparece la primera o
  2. Luego, siempre que el resultado devuelto por indexOf no sea -1, continúe buscando hacia atrás
  3. Debido a que indexOf solo puede encontrar el primero, la siguiente búsqueda usa el segundo parámetro y el índice actual se incrementa en 1 para continuar la búsqueda.

Devolver caracteres según la posición

Las cadenas pueden llamar a algunos métodos para manipular cadenas a través de tipos de paquetes básicos. Lo siguiente es devolver los caracteres en la posición especificada de acuerdo con la posición:

Inserte la descripción de la imagen aquí

En el método anterior, el método charCodeAt devuelve el código ASCII correspondiente al carácter en la posición especificada. La tabla de comparación de códigos ASCII es la siguiente:

Inserte la descripción de la imagen aquí

Caso: determine el carácter con más ocurrencias en una cadena 'abcoefoxyozzopp' y cuente sus tiempos

  1. Algoritmo central: use charAt () para atravesar esta cadena

  2. Almacene cada carácter en el objeto, si el objeto no tiene este atributo será 1, si existe será +1

  3. Atraviesa el objeto, obtén el valor máximo y el carácter

    Nota: En el proceso de recorrido, cada carácter de la cadena se almacena en el objeto como el atributo del objeto, y el valor del atributo correspondiente es el número de veces que aparece el carácter.

Método de manipulación de cadenas

Las cadenas pueden llamar a algunos métodos para manipular cadenas a través de tipos de paquetes básicos. A continuación, se muestran algunos de los métodos de operación:

Inserte la descripción de la imagen aquí

método replace ()

El método replace () se usa para reemplazar algunos caracteres con otros caracteres en una cadena, y su formato es el siguiente:

字符串.replace(被替换的字符串, 要替换为的字符串);

método split ()

El método split () se usa para dividir una cadena, puede dividir una cadena en una matriz. Una vez completada la segmentación, se devuelve una nueva matriz.

Su formato de uso es el siguiente:

字符串.split("分割字符")

2-Tipo de datos simple y tipo de datos complejos

2.1 Tipos de datos simples

Tipo simple ( tipos de datos básicos , tipos de valor ): cuando se almacena en la variable de almacenamiento es el valor en sí, incluyendo cadena, número, boolean, sin definir, nula

2.2 Tipos de datos complejos

Tipos de datos complejos (tipos de referencia) : almacenados en la memoria de dirección variable, solo el objeto (referencia) es creado por la nueva clave (objetos del sistema, objetos personalizados), como Objeto, Matriz, Fecha y similares;

2.3 Apilar

  • La diferencia en la asignación de espacio de pila:

1. Pila (sistema operativo): el sistema operativo asigna y libera automáticamente los valores de los parámetros de la función almacenada, los valores de las variables locales, etc. Su modo de operación es similar a la pila en la estructura de datos;

Los tipos de datos simples se almacenan en la pila

2. Montón (sistema operativo): Almacena tipos complejos (objetos), que generalmente son asignados y liberados por el programador, si el programador no los libera, son recuperados por el mecanismo de recolección de basura.

Inserte la descripción de la imagen aquí

  • Almacenamiento de tipos de datos simples

    Los datos de la variable de tipo de valor se almacenan directamente en la variable (espacio de pila)

Inserte la descripción de la imagen aquí

  • Almacenamiento de tipos de datos complejos

    Las variables de tipo de referencia (espacio de pila) se almacenan en la dirección, la instancia del objeto real se almacena en el espacio de almacenamiento dinámico

Inserte la descripción de la imagen aquí

2.4 Transferencia de parámetros de tipo simple

El parámetro formal de una función también se puede considerar como una variable. Cuando pasamos una variable de tipo valor como parámetro al parámetro formal de la función, en realidad copiamos el valor de la variable en el espacio de la pila al parámetro formal, entonces Cualquier modificación a los parámetros formales dentro del método no afectará las variables externas.

function fn(a) {
    
    
    a++;
    console.log(a); 
}
var x = 10;
fn(x);
console.log(x)

Los resultados de la operación son los siguientes:

2.5 Pasar parámetros de tipos de datos complejos

El parámetro formal de una función también se puede considerar como una variable.Cuando pasamos una variable de tipo de referencia a un parámetro formal, en realidad copiamos la dirección del montón de la variable almacenada en el espacio de la pila al parámetro formal, y el parámetro formal y el parámetro real se almacena realmente Es la misma dirección de pila, por lo que la operación es el mismo objeto.

function Person(name) {
    this.name = name;
}
function f1(x) { // x = p
    console.log(x.name); // 2. 这个输出什么 ?    
    x.name = "张学友";
    console.log(x.name); // 3. 这个输出什么 ?    
}
var p = new Person("刘德华");
console.log(p.name);    // 1. 这个输出什么 ?   
f1(p);
console.log(p.name);    // 4. 这个输出什么 ?  

Los resultados de la operación son los siguientes:

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_48116269/article/details/107956655
Recomendado
Clasificación