Noticias

* Completa este formulario para conocer los temas de tu interes, te tomará unos segundos.

* Contenido actualizado diariamente!!

* Nueva categoría JavaScript!, aprender javascript está en tus manos!

* Nueva categoría VB .Net!, aprender VB .NET fácilmente con franvarvil!

* Sigue a la página para seguir creciendo!!
Mostrando entradas con la etiqueta franvarvil. Mostrar todas las entradas

miércoles, 6 de mayo de 2020

JS: Scope en Javascript

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

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.

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

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:

    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 ===)

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 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
}
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.

    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.