A collection of tech notes, personal reflections, and evolving thoughts about whatever’s caught my curiosity.

essay

വീണ്ടുമുണരട്ടെ

28 February 2022
പാതിരാത്രിയിൽ പ്രാന്തിനൊപ്പം കവിത പൂക്കാറുണ്ടുള്ളിൽ പ്രണയത്തോളം മധുരവും പ്രാണനോളം...
notes

undefined and not defined in JS

22 February 2022

undefined

undefined is a property of the global object. That is, it is a variable in global scope. The initial value of undefined is the primitive value undefined.

A variable is ‘declared’, it has its own placeholder (memory is allcoated) but not having the value of itself ‘defined’ hence ‘undefined’. Until the variable has assigned a value, the ‘undefined’ fills that particular placeholder and ‘undefined’ is itself a datatype.

Not Defined

This case comes in error where js engine neither find that particular variable nor its placeholder and cannot find the variable in 1st phase of context (Memory allocation context)

JS is loosely typed language, this means that JavaScript will figure out what type of data you have and make the necessary adjustments so that you don’t have to redefine your different types of data.

References

MDN

notes

Intersection Observer API

20 February 2022

The Intersection Observer API provides a way to asynchronously observe changes in the intersection of a target element with an ancestor element or with a top-level document’s viewport.

Syntax to create Intersection Observer API

const observer = new IntersectionObserver(entries => {
console.log(entries)
})
References

MDN Web Docs
webdevsimplified

notes

Pure functions

20 February 2022

A pure function is a function which:

Given the same input, always returns the same output and the Produces have no side effects.

Preoperties

  • No random values
  • No current date/time
  • No global state
  • No mutation of parameters

Benefits

  • Self-documenting
  • Easily testable
essay

ഓർമ്മകളിലേക്ക്

19 February 2022
ഓർമ്മകളിലേക്ക് വീണ്ടും വീണ്ടും തിരികെപ്പോക്കുന്ന മനുഷ്യരുണ്ട്. രാവിലെയെണ്ണീറ്റ് ഒറ്റക്ക്...
notes

Primitive Data types in JS

18 February 2022

In JavaScript, a primitive (primitive value, primitive data type) is data that is not an object and has no methods or properties. There are 7 primitive data types:

  • string
  • number
  • bigint
  • boolean
  • undefined
  • symbol
  • null

All primitives are immutable; that is, they cannot be altered. It is important not to confuse a primitive itself with a variable assigned a primitive value. The variable may be reassigned to a new value, but the existing value can not be changed in the ways that objects, arrays, and functions can be altered.

References

MDN

notes

Shortest Program in JS

10 February 2022
  1. Shortest Program in JS: Empty file. Still, browsers make global Execution context and global space along with Window object.
  2. Global scope: Anything that is not in a function, is in the global space.
  3. Variables present in a global space can be accessed by a “window” object. (like window.a)
  4. In global scope, (this === window) object. For example refer the below,
var a = 10;

Console.log(windows.a) // 10
Console.log(a)  // 10
Console.log(this.a) // 10
notes

Class and Function Hoisting in JS

2 February 2022

An important difference between function declarations and class declarations is that while functions can be called in code that appears before they are defined, classes must be defined before they can be constructed.

class hoisting

Classes defined using a class declaration are hoisted, which means that JavaScript has a reference to the class. However the class is not initialized by default, so any code that uses it before the line in which it is initialized is executed will throw a ReferenceError.

const p = new Rectangle(); // ReferenceError
class Rectangle {}

This occurs because while the class is hoisted its values are not initialized.

Function and class expression hoisting

Function expressions and class expressions are not hoisted.

References

w3schools

essay

PL/SQL - Explicit Cursors

31 January 2022
As discussed earlier, there are two types of cursors: Implicit cursors and explicit cursors. In this section, we will focus on explicit cursors and their functionality...