Mostrando entradas con la etiqueta franvarvil. Mostrar todas las entradas
miércoles, 6 de mayo de 2020
JS: Scope en Javascript
Francisco
18:58
bloque
,
franvarvil
,
informática
,
java
,
javascript
,
js
,
por: Francisco Vargas
,
programación
,
propiedad
,
scope
,
script
,
util
No hay comentarios
:
Introducción
El scope es el ámbito donde una variable o sentencias pueden ser accedidas,
recordemos que javascript cuenta con un global scope donde se declaran
elementos comunes y el local scope que es dentro cualquier bloque
javascript.
Desarrollo
En javascript cualquier bloque crea un local scope, incluye estructuras de
control y métodos.
Para entenderlo vamos a realizar unos ejemplos.
'use strict'
var variable = 1
function local(){ // Acá un bloque javascript
var variable = 5; // Se declara una variable local
console.log(variable) // Se imprime la variable local
}
local() // Se llama a la función con una variable local
console.log(variable) // se imprime la variable global
//Output: 5
// 1
Sin embargo si no crea la variable localmente y solo se declara el nombre
utilizará la variable global, como en el siguiente ejemplo.
'use strict'
var variable = 1
function local(){ // Acá un bloque javascript
variable = 5; // NO se declara la variable
console.log(variable) // Se imprime la variable
}
local() // Se llama a la función que no declara la variable local
console.log(variable) // se imprime la variable global
//Output: 5
// 5
Esta misma lógica aplica para bloques if/else, buqles for, while entre otros.
Conclusión
Es importante conocer el comportamiento de los scope de javascript al programar, más aún si se trabaja con múltiples archivos independientes con variables globales. Con el uso de la sentencia use strinct, no evitaremos muchos comportamientos de javascript y nos alertará de muchas situaciones que puede pasar por alto.
domingo, 3 de mayo de 2020
VB.Net: Sentencia Using y With
Francisco
11:48
action
,
basic
,
basico
,
clases
,
class
,
collector
,
franvarvil
,
función
,
garbage
,
garbage collector
,
informática
,
internet
,
por: Francisco Vargas
,
sentencias
,
using
,
vb.net
,
visual
,
visual basic
,
with
No hay comentarios
:
Introducción
La sentencia using es muy utilizada al momento de desarrollar aplicaciones en VB .Net, su importancia radica en que libera los recursos al finalizar el bloque, es decir, cuando se ejecute el Garbarge Collector, los espacios en memoria estarán marcados para que este los libere y deje accesibles.
Desarrollo
Para aprender a utilizarlo, vamos a realizar un pequeño ejemplo con una clase persona, el único detalle es que, para una clase ser usada dentro de la sentencia Using y With esta debe implementar la Interfaz IDisposable, tal como se muestra en el siguiente código.
Una vez tenemos nuestra clase, realizaremos una instancia a esta a través de la sentencia Using de la siguiente forma:
Como vemos al implementar la interfaz podremos utilizar la sentencia Using, adicionalmente al utilizar la sentencia With podremos facilitar el uso de nuestro objeto lPerson, es decir, todo lo que esté dentro del bloque With pertence al objeto Person, es por esto que no es necesario establecer lPersona.Name, basta con .Name.
Esto aplica para las demás propiedades o métodos y al finalizar el proceso se liberará el recurso lPerson, por lo cual no podrá se accedido nuevamente.
Esto es útil cuando se cargar archivos o cuando realizamos operaciones sobre base de datos, para liberar los recursos una vez que terminamos de procesar.
Conclusión
La sentencia Using ayuda a liberar recursos de una forma más eficiente, mientra que la sentencia With nos ayudará a manejar características de un objeto de forma sencilla.
La sentencia using es muy utilizada al momento de desarrollar aplicaciones en VB .Net, su importancia radica en que libera los recursos al finalizar el bloque, es decir, cuando se ejecute el Garbarge Collector, los espacios en memoria estarán marcados para que este los libere y deje accesibles.
Desarrollo
Para aprender a utilizarlo, vamos a realizar un pequeño ejemplo con una clase persona, el único detalle es que, para una clase ser usada dentro de la sentencia Using y With esta debe implementar la Interfaz IDisposable, tal como se muestra en el siguiente código.
Public Class Person
Implements IDisposable ' Se implementa la interfaz
Public Property Name As String
Public Property LastName As String
Public Sub Dispose() Implements IDisposable.Dispose
Me.Finalize() ' Se da funcionalidad al método implementado
End Sub
Public Function GetFullName() As String
Return Me.Name & " " & Me.LastName
End Function
End Class
Una vez tenemos nuestra clase, realizaremos una instancia a esta a través de la sentencia Using de la siguiente forma:
Using lPerson As New Person
With lPerson
.Name = "Using"
.LastName = "Statement"
Console.WriteLine(.GetFullName)
End With
End Using
Como vemos al implementar la interfaz podremos utilizar la sentencia Using, adicionalmente al utilizar la sentencia With podremos facilitar el uso de nuestro objeto lPerson, es decir, todo lo que esté dentro del bloque With pertence al objeto Person, es por esto que no es necesario establecer lPersona.Name, basta con .Name.
Esto aplica para las demás propiedades o métodos y al finalizar el proceso se liberará el recurso lPerson, por lo cual no podrá se accedido nuevamente.
Esto es útil cuando se cargar archivos o cuando realizamos operaciones sobre base de datos, para liberar los recursos una vez que terminamos de procesar.
Conclusión
La sentencia Using ayuda a liberar recursos de una forma más eficiente, mientra que la sentencia With nos ayudará a manejar características de un objeto de forma sencilla.
sábado, 2 de mayo de 2020
VB.Net: Entendiendo los punteros
Francisco
12:41
action
,
basic
,
basico
,
clases
,
class
,
franvarvil
,
función
,
informática
,
método
,
por: Francisco Vargas
,
programación
,
tecnologías de información
,
vb.net
,
visual
,
visual basic
No hay comentarios
:
Introducción
En muchas ocaciones tenemos dudas cuando trabajamos con punteros pero, hay un pista que nos ayudará a identificar rápidadmente si el valor se hace por referencia o por valor.
Todos los tipos primitivos (enteros, char, double, etc), son automáticamente por valor, mientras que los objetos complejos (objetos de clases) son por referencia.
Desarrollo
Para ejemplificar esto crearemos el enumerable Genero y la Clase persona:
Ahora crearemos una función que cree dos objetos persona, uno masculino y uno femenino, de la siguiente forma.
Finalmente nuestra salida es:
Conclusión
Siempre es importante ver el comportamiento de los objetos que utilicemos y controlarlos de la forma en que queremos para evitar posibles perdidas de integridad en la información de los objetos durante la ejecución de nuestra aplicación.
En muchas ocaciones tenemos dudas cuando trabajamos con punteros pero, hay un pista que nos ayudará a identificar rápidadmente si el valor se hace por referencia o por valor.
Todos los tipos primitivos (enteros, char, double, etc), son automáticamente por valor, mientras que los objetos complejos (objetos de clases) son por referencia.
Desarrollo
Para ejemplificar esto crearemos el enumerable Genero y la Clase persona:
Public Enum Genero
Femenino = 1
Masculino = 0
End Enum
Public Class Person
Public Property Name As String
Public Property LastName As String
End Class
Ahora crearemos una función que cree dos objetos persona, uno masculino y uno femenino, de la siguiente forma.
Sub Puntero()
Dim persona1 = New Persona(Genero.Femenino)
Dim persona2 = New Persona(Genero.Masculino)
persona1.asignaEdad(persona1, 32)
persona2 = persona1
persona2.asignaEdad(persona2, 25)
Console.WriteLine($"{persona1.Genero},{persona1.Edad},{persona2.Genero},{persona2.Edad}")
End Sub
Como vemos se crea la persona1 y la persona2 con se les asigna espacios en memoria distintos. Luego se le asigna la edad de 32 a la persona1. Y tenemos la parte importante, igualamos la persona2 a la persona1, es decir ahora ambos objetos persona direccionan al mismo espacio en memoria, por lo que al cambiar la edad de la persona2 a 25, ambos, persona1 y persona2 al apuntar al mismo espacio en memoria se ven modificadados.Finalmente nuestra salida es:
Console.WriteLine($"{persona1.Genero},{persona1.Edad},{persona2.Genero},{persona2.Edad}")
'Output: 1,25,1,25
Conclusión
Siempre es importante ver el comportamiento de los objetos que utilicemos y controlarlos de la forma en que queremos para evitar posibles perdidas de integridad en la información de los objetos durante la ejecución de nuestra aplicación.
viernes, 1 de mayo de 2020
JS: Diferencias entre doble y triple igualdad (== vs ===)
Francisco
13:04
==
,
===
,
basic
,
basico
,
diferencia =
,
franvarvil
,
java
,
javascript
,
js
,
script
No hay comentarios
:
Introducción
Muchas veces nos hemos preguntado la diferencia de dos iguales (==) y tres iguales (===) en javascript. La mayoría de las persona no saben cual es su diferencia o tampoco conocen que existe.
Aunque, la verdad, esto es muy sencillo de entender, pero tambíen se puede olvidar si no se utiliza muy amenudo.
Desarrollo
Como se aprecia esta función evaluará una doble igualdad, si por ejemplo llamamos esta función con un valor entero y un string con el valor 4, nos retornará un True.
Sin embargo si modificamos nuestra función con una triple igualdad retornará false, tal como se muestra a continuación:
Conclusión
Es importante conocer esto si necesitamos evaluar tipos de datos y no solo su contenido, recordemos que javascript es muy dinámico por lo que debemos entender como funciona en el fondo.
Muchas veces nos hemos preguntado la diferencia de dos iguales (==) y tres iguales (===) en javascript. La mayoría de las persona no saben cual es su diferencia o tampoco conocen que existe.
Aunque, la verdad, esto es muy sencillo de entender, pero tambíen se puede olvidar si no se utiliza muy amenudo.
Desarrollo
Como sabemos javascript es muy dinámico en muchas de sus estructuras y uso, sin embargo esto nos lleva a desconocer o no dar el cuidado suficiente a su comportamiento.
Uno de estos comportamiento que tiene javascript es utilizar dos y tres iguales, ¿para que se utilizan? ¿en que radica su diferencia?, la respuesta a estas interrogantes las vamos a ver ahora.
En javascript la doble igualdad se utiliza para evaluar si el valor de las variables es el mismo, sin importar el tipo, mientras que por otro lado tenemos la triple igualdad que además de evaluar el valor de las variables, evalúa el tipo de estas.
Para entenderlo de forma más sencilla vamos a un ejemplo.
Creamos la siguiente función:
function eval(valor1, valor2) {
return valor1 == valor2
}
eval(4,"4")
// Output: True
Sin embargo si modificamos nuestra función con una triple igualdad retornará false, tal como se muestra a continuación:
function eval(valor1, valor2) {
return valor1 === valor2
}
eval(4,"4")
// Output: False
Conclusión
Es importante conocer esto si necesitamos evaluar tipos de datos y no solo su contenido, recordemos que javascript es muy dinámico por lo que debemos entender como funciona en el fondo.
Suscribirse a:
Entradas
(
Atom
)