Profile

Work

I am a Full-Stack Web & Software Developer with over fifteen years of experience. Over countless hours I have discovered that I have a passion and talent for creating works that are both highly functional and technically sound.

I have also discovered that I have a knack for understanding new theories & concepts – I am an adamant perfectionist when it comes to just about anything I do.

Current Skill set

Web
  • Responsive Mobile first HTML & CSS3 – Bootstrap, SASS
  • JavaScript (Vanilla JS, JQuery, Angular)
  • PHP (Web Server & CRON)
  • CRM / CMS packages – WordPress, OsCommerce, Marketo
  • MySQL
  • Git
  • SEO & PPC
Applications
  • Java
  • Python
Legacy Technology
  • ASP (classic)
  • Visual Basic
  • Adobe Flash
Software Packages
  • Adobe Photoshop
  • MySQL
  • Jet Brains Web Suite
  • Microsoft Word
  • Microsoft Excel
  • Microsoft Access
  • Maya 3d
  • and more…

Study

At the start of 2019, I am entering my 4th year of a 6 year course Studying a Bachelor of
Computer Science with gaming specialisation at Charles Sturt University

Hobbies

Pyrotechnic

A license Pyrotechnician in the state of N.S.W. Australia for over twenty years, performing
professional grade pyrotechnic shows ranging from from Chinese String Crackers, Indoor Close
Proximity Fireworks, Aerial Shells up to 125mm and Aerial Salutes up to 75mm.

A founding member of the Pyrotechnics Industry Association of Australia (PIAA), Based in Sydney
but have performing shows all over NSW for all types of events.

Car Enthusiast

An active member in the Skylines Australia NSW car club I regularly volunteer to help run events.

Social Media

You can connect with me professionally on LinkedIn,
or stalk me through Twitter

Portfolio

Employment

Wizardry Fireworks

PRODOCOM Australia

Hannover Fairs Australia

E-Web Marketing

Freelance Websites

Personal Projects

Tipping Comp

cruizen’

National Pyrotechnics

iblott accessories

Blog

Difference Between var, let, and const in JavaScript

JavaScript is a versatile programming language widely used for web development. With the introduction of ES6 (ECMAScript 2015), new ways to declare variables—let and const—were introduced, alongside the existing var. Understanding the differences between these declarations is essential for writing clean, efficient, and bug-free code.

1. Overview of var, let, and const

  • var: The original way to declare variables in JavaScript, available since the beginning.
  • let: Introduced in ES6, it provides block-level scoping.
  • const: Also introduced in ES6, it declares variables that cannot be reassigned.

2. Scope

  • var:
    • Function-scoped: The scope is confined to the function in which it is declared.
    • Variables declared with var can leak into the global scope if declared outside a function.
    • Example: function testVar() { if (true) { var x = 10; } console.log(x); // Outputs: 10 } testVar();
  • let:
    • Block-scoped: The scope is limited to the block (enclosed by {}) where it is defined.
    • Example: function testLet() { if (true) { let x = 10; } console.log(x); // ReferenceError: x is not defined } testLet();
  • const:
    • Block-scoped: Similar to let, the scope is confined to the block in which it is declared.

3. Reassignment

  • var:
    • Can be reassigned and redeclared within its scope.
    • Example: var x = 10; x = 20; // Reassignment allowed var x = 30; // Redeclaration allowed
  • let:
    • Can be reassigned but cannot be redeclared within the same scope.
    • Example: let x = 10; x = 20; // Reassignment allowed let x = 30; // SyntaxError: Identifier 'x' has already been declared
  • const:
    • Cannot be reassigned or redeclared. The value assigned to a const variable is immutable (though for objects and arrays, their properties or elements can be changed).
    • Example: const x = 10; x = 20; // TypeError: Assignment to constant variable. const x = 30; // SyntaxError: Identifier 'x' has already been declared

4. Hoisting

  • var:
    • Variables declared with var are hoisted to the top of their scope and initialized with undefined.
    • Example: console.log(x); // Outputs: undefined var x = 10;
  • let and const:
    • Variables declared with let and const are also hoisted, but they are not initialized. Accessing them before their declaration results in a ReferenceError due to the “temporal dead zone.”
    • Example: console.log(x); // ReferenceError: Cannot access 'x' before initialization let x = 10;

5. Best Practices

  • Use let for variables that need to be reassigned.
  • Use const for values that should not change.
  • Avoid using var in modern JavaScript to prevent issues with scope and hoisting.

6. Comparison Table

Featurevarletconst
ScopeFunction-scopedBlock-scopedBlock-scoped
ReassignmentAllowedAllowedNot allowed
RedeclarationAllowedNot allowedNot allowed
HoistingYes (initialized to undefined)Yes (temporal dead zone)Yes (temporal dead zone)

Conclusion

Choosing the correct way to declare variables is crucial for maintaining readability and avoiding bugs in your code. By using let and const, you can leverage block scoping and immutability, making your JavaScript code more predictable and easier to debug. Reserve var for legacy codebases or specific use cases where function scoping is essential.

Published by
February 20, 2025 9:44 am

Comments are closed here.


Creative

I studied Digital Media for 12 months at Mt Druitt TAFE. While  doing so we studied The 3D Modeling Program ‘Maya’. During the course I produced a number of 3D scenes and a couple of 3D animated movies.

I have also played in other programs such as Bryce 3D, 3D Studio Max, Lightwave, Vue D’esprit and a few others. However, i have always returned to Maya as a personal preference.

Bellow are a number of works that i have produced from these various programs.

Bryce 3D: Balls

Vue D’esprit: Sulfuric

Maya: Living Room

Maya: Gauntlet

Loading...