La guía definitiva de JavaScript

Capítulo 4: Expresiones y operadores

1. ¿Qué es un operando y qué es un tipo de resultado?

En programación informática e informática, los operandos se refieren a los valores o datos que participan en un cálculo u operación . Los operandos pueden ser números, variables, constantes o expresiones, según el cálculo u operación específica. Los operandos se utilizan en diversos cálculos, como operaciones aritméticas, operaciones lógicas, operaciones bit a bit, etc.

  1. Ejemplo de operandos:
    • En las operaciones aritméticas, los operandos suelen ser los números que intervienen en la operación, como por ejemplo dos números además: 2 + 3. 2 y 3 aquí son los operandos.
    • En operaciones lógicas, los operandos son valores utilizados para juicios lógicos, como expresiones booleanas a && b:. Aquí a y b son los operandos y sus valores son verdadero o falso (verdadero o falso).
    • En las operaciones bit a bit, los operandos son valores que se operan en el nivel de bits binarios, como la operación bit a bit AND (&): a & b. Aquí a y b son números binarios utilizados para operaciones AND bit a bit.

El número de operandos depende del tipo de operador. Por ejemplo, los operadores unarios (como el operador de negación "!") requieren solo un operando, mientras que los operadores binarios (como el operador de suma "+") requieren dos operandos.

Tipo de resultado se refiere al tipo de datos del resultado de una operación u operación. Cuando se realiza una operación u operación sobre un operando, se obtendrá un resultado de acuerdo con las reglas del operador y el tipo de datos del operando.El tipo de datos de este resultado es el tipo de resultado.

  1. Ejemplos de tipos de resultados:
    • En operaciones aritméticas, el resultado de sumar dos números enteros es un número entero, por lo que el tipo de resultado es un tipo de número entero.
    • En las operaciones lógicas, el resultado de la operación lógica AND es un valor booleano (verdadero o falso), por lo que el tipo de resultado es booleano.
    • En las operaciones bit a bit, el resultado de la operación AND bit a bit es un nuevo número binario, por lo que el tipo de resultado es un tipo binario.

Los tipos de resultados son importantes para garantizar la exactitud y coherencia de los cálculos. En programación, si se realizan operaciones en operandos de diferentes tipos, el lenguaje de programación realizará automáticamente la conversión de tipos para obtener un tipo de resultado razonable.

Por ejemplo, en JavaScript:

 
 

javascriptCopiar código

const x = 5; // x是一个整数 const y = 2.5; // y是一个浮点数 const result = x + y; // 进行算术运算,结果为7.5,result的类型为浮点数

En este ejemplo, x es un número entero e y es un número de punto flotante y sus tipos de datos son diferentes. Pero al agregar, JavaScript convierte automáticamente números enteros en números de punto flotante para obtener el tipo de resultado correcto. El resultado es un número de punto flotante.

ejemplo:

 Métodos de cadena

Reemplazar contenido de cadena

El método replace() reemplaza el valor especificado en la cadena con otro valor

Convertir a mayúsculas y minúsculas

Convertir cadena a mayúsculas mediante toUpperCase()

método concat()

concat() concatena dos o más cadenas

  var texto = "Hola" + " " + "¡Mundo!";
   var text = "Hola".concat(" ", "¡Mundo!");

cadena.recortar()

El método trim() elimina los espacios en blanco en ambos extremos de la cadena.

   var str = " ¡Hola mundo! ";
   alerta(str.trim());

método charAt()

El método charAt() devuelve la cadena en el subíndice (posición) especificado en la cadena.

método charCodeAt()

El método charCodeAt() devuelve la codificación Unicode del carácter en el índice especificado en la cadena.

Convertir cadena a matriz

     Puede convertir la cadena en una matriz mediante split()
     var txt = "a,b,c,d,e"; // String
     txt.split(","); // Separe las matrices de variables con comas
     txt.split( " "); // Separar por espacios
     txt.split("|"); // Dividir en tubería

Preguntas de práctica:

Encuentra  la posición de txt un carácter en  una cadena h .

var txt = "abcdefghijklm"; 
var pos = txt.indexOf("h"); // 7

valor numérico

var x = "100";
var y = "10";
var z = x / y; // z será 10

var x = "100";
var y = "10";
var z = x * y; // z será 1000

var x = "100";
var y = "10";
var z = x - y; // z será 90

var x = "100";
var y = "10";
var z = x + y; // z no será 110 (será 10010)

Puede ser reemplazado por 

var x = '100'; var y = '10'; var z = parseInt(x) + parseInt(y) ; consola.log(z); // salida: 110

NaN: no es un valor numérico

var x = 100 / "Apple"; // x será NaN (no un número)

var x = 100 / "10"; // x será 10

var x = 100 / "Apple";
isNaN(x); // devuelve verdadero porque x no es un número

hexadecimal

JavaScript interpretará las constantes numéricas con el prefijo 0x como hexadecimal

Utilice el método toString() para generar el número como hexadecimal, octal o binario.

El hexadecimal se basa en la base 16. El decimal se basa en base 10. Octal es base 8. El binario es base 2.

var myNumber = 32;
myNumber.toString(10); // Devuelve 32
myNumber.toString(32); // Devuelve 10
myNumber.toString(16); // Devuelve 20
myNumber.toString(8); // Devuelve 40
myNumber .toString(2); // Devuelve 100000

Métodos numéricos y propiedades.

var x = 123; x.toString
variable
(); // Devuelve 123 de la

método toExponential()

toExponential() devuelve un valor de cadena que contiene un número que ha sido redondeado usando notación exponencial

var x = 9.656;
x.toExponential(2); // devuelve 9.66e+0

método toFixed()

toFixed() devuelve un valor de cadena que contiene un número con el número especificado de decimales

varx =
9,656
; _

método toPrecision()

toPrecision() devuelve un valor de cadena que contiene un número de longitud especificada

var x = 123; x.valueOf
variable
(); // Devuelve 123 de la

Convertir variable a valor numérico

Estos tres métodos de JavaScript se pueden utilizar para convertir variables en números:

  • Método Número() var z = Número(x)+Número(y)  
  • método parseInt() var z = parseInt(x)+parseInt(y) //Analiza una cadena y devuelve un valor. Se permiten espacios. Devuelve sólo el primer número
  • El método parseFloat() var z = parseFloat(x)+parseFloat(y) analiza una cadena y devuelve un valor numérico. Se permiten espacios. Devuelve sólo el primer número

Estos métodos no son métodos numéricos , sino  métodos globales de JavaScript.

 Operaciones numéricas

Matemáticas.ronda()

El valor de retorno de Math.round(x) es x redondeado al entero más cercano

Matemáticas.pow()

El valor de retorno de Math.pow(x, y) es x elevado a la potencia y:

Matemáticas.sqrt()

Math.sqrt(x) devuelve la raíz cuadrada de x:

Math.sqrt(64); // devuelve 8

Matemáticas.abs()

Math.abs(x) devuelve el valor absoluto (positivo) de x:

Math.abs(-4.7); // devuelve 4.7

Matemáticas.ceil()

El valor de retorno de Math.ceil(x) es  el entero más cercano redondeado a x:

Math.ceil(4.4); // devuelve 5

Matemáticas.piso()

El valor de retorno de Math.floor(x) es  el entero más cercano redondeado a la baja a x

Math.floor(4.7); // devuelve 4

Matemáticas.sin()

Math.sin(x) Devuelve el seno (un valor entre -1 y 1) del ángulo x en radianes.

Si desea utilizar ángulos en lugar de radianes, debe convertir los ángulos a radianes:

Ángulo en radianes = Ángulo en grados x PI/180.

Math.sin(90 * Math.PI / 180); // Devuelve 1 (seno de 90 grados)

Math.min() y Math.max()

Math.min() y Math.max() se pueden utilizar para encontrar el valor más bajo o más alto en una lista de parámetros:

 número aleatorio

formación

Una matriz es un tipo especial de variable que puede almacenar más de un valor a la vez.

Función Array.foreach()

Agregar elementos de matriz

La mejor manera de agregar nuevos elementos a una matriz es usar el método push()

matriz asociativa

Muchos elementos de programación admiten matrices indexadas con nombres.

Las matrices con índices con nombre se denominan matrices asociativas (o hashes).

JavaScript  no admite matrices indexadas con nombre.

En JavaScript, las matrices solo se pueden indexar numéricamente .

var persona = [];
persona[0] = "John";
persona[1] = "Doe";
persona[2] = 46;
var x = persona.length; // persona.length devolverá 3
var y = persona [0]; // persona[0] devolverá "John"

Evite la nueva matriz ()

No es necesario utilizar el constructor de matrices integrado de JavaScript, new Array().

¡Utilice [] en su lugar!

Las siguientes dos declaraciones diferentes crean una nueva matriz vacía denominada puntos:

var puntos = new Array(); // malo
var puntos = []; // bueno 

Convertir matriz a cadena

El método JavaScript toString() convierte una matriz en una cadena de valores de matriz (separados por comas)

El método join() también puede combinar todos los elementos de la matriz en una cadena.

Se comporta de manera similar  toString(), pero también puedes especificar el delimitador.

var ff = [34,5,6,77,8]
indefinido
ff.join() // '34,5,6,77,8'

Pero si desea eliminar las comas en la cadena, puede escribir

var ff = [34, 5, 6, 77, 8]; // Usa una cadena vacía como delimitador para concatenar los elementos de la matriz

var joinString = ff.join(" ");

console.log(joinedString); // Salida: "3456778"

Hacer estallar y empujar

Cuando se trabaja con matrices, eliminar elementos y agregar otros nuevos es sencillo.

Hacer estallar y empujar se refiere a:

Extraiga un elemento de una matriz o inserte un elemento en una matriz.

donde s = [1,2,33,22]

s.pop() // [1,2,33]

s.push(55) // [1,2,33,55]

elemento de desplazamiento

El desplazamiento es equivalente a hacer estallar, pero se ocupa del primer elemento en lugar del último.

El método shift() elimina el primer elemento de la matriz y "desplaza" todos los demás elementos a índices más bajos.

El método unshift() ( al principio ) agrega nuevos elementos a la matriz y "desplaza hacia atrás" los elementos antiguos

Eliminar elemento

Dado que las matrices de JavaScript son objetos, los elementos que contienen se pueden eliminar utilizando el operador de eliminación de JavaScript.

matriz de empalme

El método splice() se puede utilizar para agregar nuevos elementos a una matriz:

var frutas = ["Plátano", "Naranja", "Manzana", "Mango"];
frutas.splice(2, 2, "Limón", "Kiwi");
 ['Apple', 'Mango']0: "Apple"1: "Mango"length: 2[[Prototype]]: Array(0) frutas ['Banana', 'Orange', 'Lemon', 'Kiwi
'
 ]

Utilice splice() para eliminar elementos

Con una parametrización inteligente, puedes usar splice() para eliminar elementos sin dejar "agujeros" en la matriz.

var frutas = ["Banana", "Orange", "Apple", "Mango"];
frutas.splice(0, 1); // Elimina el primer elemento de frutas

Fusionar (concatenar) matrices

El método concat() crea una nueva matriz fusionando (concatenando) matrices existentes:

Ejemplo (fusionar tres matrices)

var arr1 = ["Cecilie", "Solitario"];
var arr2 = ["Emil", "Tobías", "Linus"];
var arr3 = ["Robin", "Morgan"];
var misNiños = arr1.concat(arr2, arr3);  

matriz de cultivos

El método slice() corta una nueva matriz a partir de una porción de la matriz.

Este ejemplo recorta una matriz a partir del elemento 1 de la matriz ("Naranja"):

método:

ordenar matriz

El método sort() ordena una matriz en orden alfabético:

El método reverse() invierte los elementos de una matriz.

Puedes usar esto para ordenar una matriz en orden descendente:

función de relación

El propósito de las funciones de comparación es definir un orden de clasificación alternativo.

La función de comparación debería devolver un valor negativo, cero o positivo, según los argumentos:

Usando Math.max() en matrices

Puedes usar Math.max.apply para encontrar el valor más alto en una matriz:

Usando Math.min() en matrices

Puedes usar Math.min.apply para encontrar el valor más bajo en una matriz:

Math.min.apply([1, 2, 3]) es igual a Math.min(1, 2, 3).

iteración de matriz de JavaScript

El método forEach() llama a una función (función de devolución de llamada) una vez para cada elemento de la matriz

var l = '';

número var = [33, 4, 56, 67];

number.forEach(function(element) { // En esta función de devolución de llamada, el elemento es el elemento actual en la matriz

l += elemento + ' ';

//Agrega el elemento actual a la variable l, separado por espacios

});

matriz.map()

El método map() crea una nueva matriz ejecutando una función en cada elemento de la matriz.

El método map() no realizará una función en elementos de la matriz que no tengan valores.

El método map() no cambia la matriz original.

Este ejemplo multiplica cada valor de matriz por 2:

//matriz original

números var = [1, 2, 3, 4, 5];

// Usa map() para multiplicar cada número por 2 y devolver la nueva matriz

var a = números.map(función(número) { número de retorno * 2; });

console.log(a); // Salida: [2, 4, 6, 8, 10]

Array.filter() se utiliza para crear una nueva matriz que contiene elementos que cumplen una condición

El método filter() crea una nueva matriz que contiene los elementos de la matriz que pasan la prueba.

Array.every() se utiliza para comprobar si todos los elementos de la matriz cumplen la condición.

El método each() comprueba si todos los valores de la matriz pasan la prueba.

Array.some() se utiliza para comprobar si al menos un elemento de la matriz cumple la condición.

El método some() comprueba si ciertos valores de la matriz pasan la prueba.

Este ejemplo verifica si ciertos valores de la matriz son mayores que 18:

Array.reduce() comienza con el primer elemento de la matriz y realiza operaciones de reducción de izquierda a derecha.

El método reduce() ejecuta una función en cada elemento de la matriz para producir (reducirlo) un valor único.

El método reduce() funciona de izquierda a derecha en la matriz. Véase también reducirRight().

El método reduce() no reduce la matriz original.

Array.reduceRight() comienza desde el último elemento de la matriz y realiza la operación de reducción de derecha a izquierda.

El método reduceRight() ejecuta una función en cada elemento de la matriz para producir (reducirlo) un valor único.

El método reduceRight() funciona de derecha a izquierda en la matriz. Véase también reducir().

El método reduceRight() no reduce la matriz original.

matriz.indexOf()

El método indexOf() busca en una matriz el valor de un elemento y devuelve su posición.

Nota:  La posición del primer elemento es 0, la posición del segundo elemento es 1, y así sucesivamente.

Array.lastIndexOf()

Array.lastIndexOf() es como Array.indexOf(), pero busca desde el final de la matriz.

matriz.buscar()

El método find() devuelve el valor del primer elemento de la matriz que pasa la función de prueba.

Este ejemplo encuentra (devuelve) el valor del primer elemento mayor que 18:

matriz.findIndex()

El método findIndex() devuelve el índice del primer elemento de la matriz que pasa la función de prueba.

Este ejemplo encuentra el índice del primer elemento mayor que 18:

Métodos de fecha de JavaScript

Operadores booleanos de JavaScript

 Operadores de comparación de JavaScript

JavaScript si otra declaración

Declaración de cambio de JavaScript

 JavaScript para bucle

tipos de datos javascript

modo estricto de JavaScript

Función de flecha de flecha de JavaScript

Método de objeto ()
Uso de call()

aplicar() para eliminar duplicados
 

1. Tarea desestructurante:

La asignación de estructuración le permite extraer valores de una matriz u objeto y asignarlos a variables, lo que hace que el código sea más conciso y legible.

 
 

javascriptCopiar código

const [a, b] = [1, 2]; // a = 1, b = 2 const { firstName, lastName } = person; // 从对象中提取属性值

2. Sintaxis extendida y parámetros restantes:

La sintaxis extendida permite la copia rápida de matrices u objetos, mientras que los parámetros restantes le permiten recibir una cantidad ilimitada de parámetros y recopilarlos en una matriz.

 
 

javascriptCopiar código

const array1 = [1, 2, 3]; const array2 = [...array1, 4, 5]; // [1, 2, 3, 4, 5] function sum(...numbers) { return numbers.reduce((acc, num) => acc + num, 0); }

3. Promesa y programación asincrónica:

Las promesas son una forma de manejar operaciones asincrónicas que pueden gestionar mejor el infierno de las devoluciones de llamadas.

 
 

javascriptCopiar código

function fetchData() { return new Promise((resolve, reject) => { // 异步操作 if (success) { resolve(data); } else { reject(error); } }); } fetchData() .then(data => console.log(data)) .catch(error => console.error(error));

4. Función de flecha:

Las funciones de flecha proporcionan una sintaxis más concisa para definir funciones y capturar automáticamente el thisvalor del contexto.

 
 

javascriptCopiar código

const multiply = (a, b) => a * b; const person = { name: 'John', sayHi: () => { console.log(`Hello, ${this.name}`); // 这里的 this 不是 person 对象 } };

5. Herencia y extensión de clases:

JavaScript admite la herencia basada en clases, lo que le permite crear una clase y heredar las propiedades y métodos de otra clase.

 
 

javascriptCopiar código

class Animal { constructor(name) { this.name = name; } speak() { console.log(`${this.name} makes a sound.`); } } class Dog extends Animal { speak() { console.log(`${this.name} barks.`); } }

¿Qué es una promesa?

Promise es un modelo de programación en JavaScript para manejar operaciones asincrónicas, que le permite escribir y administrar código asincrónico de una manera más intuitiva, evitando el problema del infierno de devolución de llamadas. Una Promesa representa una operación que puede completarse o fallar en el futuro y proporciona una estructura para manejar los resultados o errores una vez completada la operación.

La promesa consta de los siguientes tres estados:

  1. Pendiente : Estado inicial, que indica que la operación no se ha completado o ha fallado.

  2. Cumplido : Indica que la operación se completó con éxito y lleva un valor (resultado).

  3. Rechazado (fallido) : Indica que la operación falló, generalmente lleva un objeto de error que indica el motivo del fallo de la operación.

El papel de la Promesa:

  1. Código asincrónico más legible : las promesas hacen que el código asincrónico sea más legible y más parecido al código sincrónico. Evita múltiples niveles de funciones de devolución de llamada anidadas y mejora la legibilidad y el mantenimiento del código.

  2. Manejo de procesos asincrónicos : las promesas le permiten realizar una serie de operaciones asincrónicas en secuencia, y cada operación depende del resultado de la operación anterior. Esto permite una mejor organización del código asincrónico y lo hace más lógico.

  3. Manejo de errores : las promesas le permiten detectar y manejar errores en operaciones encadenadas. Puede utilizar .catch()el método para detectar cualquier error en la cadena, proporcionando así un mejor mecanismo de manejo de errores.

  4. Ejecución paralela : con Promise.all(), puede ejecutar múltiples operaciones asincrónicas en paralelo y obtener los resultados cuando se completen todas. Esto puede mejorar el rendimiento en algunos casos.

Uso básico de Promesa:

El siguiente es un ejemplo simple de Promise que muestra cómo crear, manejar y usar objetos Promise:

 
 

javascriptCopiar código

// 创建一个 Promise,表示异步操作 const myPromise = new Promise((resolve, reject) => { setTimeout(() => { const randomNumber = Math.random(); if (randomNumber > 0.5) { resolve(randomNumber); // 操作成功完成 } else { reject(new Error("Random number is too small")); // 操作失败 } }, 1000); }); // 使用 Promise myPromise .then((fulfilledValue) => { console.log("Promise fulfilled with value:", fulfilledValue); }) .catch((error) => { console.error("Promise rejected with error:", error); });

En este ejemplo, puede cambiar al estado o myPromisedespués de 1 segundo , entregando el resultado o error según corresponda.fulfilledrejected

En resumen, Promise es un patrón poderoso para manejar operaciones asincrónicas, que puede ayudarlo a escribir código asincrónico con mayor claridad, manejar errores y controlar el flujo.

Supongo que te gusta

Origin blog.csdn.net/lv_suri/article/details/132048013
Recomendado
Clasificación