[Recomendaciones relacionadas: tutoriales en vídeo de JavaScript, interfaz web]
Este artículo explorará un concepto extremadamente interesante, a saber, los métodos de atributos de tipos básicos. ¿Qué te parece? ¿Estás un poco confundido? Déjame decirte lentamente ~
En otros lenguajes de programación orientados a objetos, como Java
y C++
, los atributos son un concepto único de objetos y el tipo básico es el tipo básico.
Sí, es otra mala idea de JavaScript
. Su motor nos permite utilizar métodos de propiedad para manipular tipos básicos de datos como objetos.
Antes de explicar esta extraña característica, primero debemos aclarar cuál es la diferencia entre tipos básicos y tipos de objetos.
JavaScript
;7
tipos básicos en JavaScript
, a saber: String
, Number
, Boolean
, BigInt
, Symbol
, null
e undefined
.{ }
{ }
Crea y puede almacenar múltiples valores;JavaScript
también tiene otros tipos de objetos, como funciones; secubrirá en orientado a objetos. Una característica clave de la introducción de objetos es la encapsulación , que puede almacenar todo tipo de datos y métodos desordenados en uno. objeto, reduciendo así la complejidad de uso.
Por ejemplo:
dejar usuario = { nombre: "xiaoming", Hola() { console.log(`Hola, soy ${this.name}`); }}user.hello();
Encapsulamos los atributos y métodos del user
del objeto en un objeto, por lo que es muy simple de usar. Solo necesitamos usar obj.attr
para llamar a métodos o atributos.
Sin embargo, hacerlo implica una sobrecarga adicional (la orientación a objetos tiene una sobrecarga adicional), que es también donde el lenguaje orientado a objetos C++
es más lento que C
como objetos Hay dos problemas que son difíciles de conciliar al usar tipos básicos como objetos:
"abc".toUpperCase()
;JavaScript
resuelve los problemas anteriores de una manera muy "simple":
String
, Number
, Boolean
y Symbol
Métodos y propiedades del tipoes que el tipo básico sigue siendo un tipo básico, pero ¿qué sucede si queremos acceder a los métodos y propiedades de un tipo básico? Envolveremos el tipo básico en un objeto (envoltorio de objeto) y luego destrúyalo una vez completado el acceso. Para ser honesto, suena un poco ridículo.
Un ejemplo
let name = "Trump";console.log(name.toUpperCase());//Métodos para acceder a tipos básicos
Los resultados de ejecución del código anterior son los siguientes:
Parece que no hay gran problema, pero sucedieron muchas cosas y necesitamos conocer los siguientes puntos:
name
es un tipo de cadena básico y no tiene nada de especialname
, un archivo que contienetoUpperCase
;toUpperCase
devuelve una nueva cadena;el valor de la variable en sí no cambia, de la siguiente manera:
Aunque la solución está llena de compromisos (malas ideas), el resultado sigue siendo bueno y los logros alcanzados son los siguientes:
aunque esto es teóricamente cierto, de hecho el motor JavaScript
está altamente optimizado para este proceso y sospecho que no crea ningún objeto adicional. Simplemente declaró verbalmente que seguía las reglas, como si realmente tuviera un objeto temporal.
Este artículo solo presenta brevemente el concepto de métodos de tipo básico y no explica varios métodos. A medida que el tutorial continúa profundizando, gradualmente se involucrarán una gran cantidad de métodos. Aquí solo enumeramos brevemente algunos métodos y propiedades de tipos básicos comúnmente utilizados.
Los diferentes tipos básicos tienen diferentes métodos de atributos, que se enumeran en las siguientes categorías:
Atributo de longitudlength
devuelve la longitud de la cadena
console.log("abc".length);
Los resultados del código anterior son los siguientes:
indexOf(ch)
devuelve el subíndice del primer carácter ch
de la cadena
console.log("abc".indexOf('b'));console.log("abc".indexOf('d'))
; Los resultados de la ejecución del código son los siguientes:
Cuando el carácter existe en la cadena, se devuelve el índice (contado desde 0
); si no se encuentra, se devuelve -1
.
método concat(str)
, empalme dos cadenas
let str1 = "hello ";let str2 = "¡world!";console.log(str1.concat(str2));console.log(str1);console.log(str2);
Los resultados de la ejecución del código son los siguientes:
método replace(str1,str2)
, use str2
para reemplazar str1
console.log
(str);
como sigue:
toFixed(num)
, redondea los decimales a la precisión especificada
console.log
(9.3333333.toFixed(0));
Método toString()
, convierte números en cadenas
3.14.toString();//Convertir a '3.14'console.log((8).toString(2));//Convertir a binario '1000'console.log((( 9).toString(2));// Convertir a binario '1001'console.log((996).toString(16));// Convertir a cadena hexadecimal '3e4'Los
resultados de la ejecución del código son los siguientes:
Método toExponential()
, convertido a método de conteo exponencial
3.1415926.toExponential
(3));
como sigue:
Se mostrarán más métodos en capítulos posteriores, por lo que no entraré en detalles aquí.
Al igual que Java
, JavaScript
puede crear explícitamente "envoltorios de objetos" para tipos básicos a través del new
operador. Este enfoque no se recomienda en absoluto . Se menciona aquí solo para conocer la integridad.
Hay problemas con este método, por ejemplo:
let num = new Number(0);console.log(typeof num);console.log(typeof 0);
Los resultados de la ejecución del código son los siguientes:
O habrá confusión en el juicio:
let zero = new Number(0);if (zero) { // cero es verdadero porque es un objeto console.log('true');}
El resultado de la ejecución del código es el siguiente sigue:
Al mismo tiempo, no olvide que la función String/Number/Boolean
sin new
(palabra clave) puede convertir un valor al tipo correspondiente: en una cadena, un número o un valor booleano (tipo original).
Por ejemplo:
console.log(typeof Number('123'));
Nota:
Los dos tipos
null
yundefined
no tienen ningún método.
JavaScript
tipos básicos distintos de null
y undefined
proporcionan muchos métodos útiles;
un método de implementación comprometido, pero logró resultados relativamente satisfactorios, implementando los atributos y llamadas a métodos de tipos básicos a un costo menor
[Recomendaciones relacionadas: tutoriales en video de JavaScript, interfaz web]
Lo anterior es cómo JavaScript se da cuenta de que los tipos básicos tienen lo mismo; atributos y objetos como objetos Para conocer los detalles del método, preste atención a otros artículos relacionados en la red de código fuente para obtener más información.