https://github.com/agent-006/javascript-god-level
https://github.com/agent-006/javascript-god-level
Last synced: about 4 hours ago
JSON representation
- Host: GitHub
- URL: https://github.com/agent-006/javascript-god-level
- Owner: Agent-006
- Created: 2024-02-16T20:35:52.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-02-23T18:29:42.000Z (over 2 years ago)
- Last Synced: 2025-02-27T12:38:42.605Z (over 1 year ago)
- Language: JavaScript
- Size: 7.81 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# π― let, const and var β
πͺ We have three kinds of variables -
1. const - used for declaring constants
2. let - used for declaring values that might change in future
3. var - also used for declating values that might change in future
πNote: Prefer not to use var because of issue in block scope and functional scope
const accountId = 144553
let accountEmail = "sagarghosh0610@gmail.com"
var accountPassword = "12345"
accountCity = "Kolkata"
let accountState
// accountId = 2 // This will throw an error as you cannot assign a new value to a constant.
// console.log(accountId)
accountEmail = "sg@sg.com"
accountPassword = "21212121"
accountCity = "Bangaluru"
/*
Prefer not to use var
because of issue in block scope and functional scope
*/
console.table([accountId, accountEmail, accountPassword, accountCity, accountState])
# π― Datatypes and ECMA standards β
πͺ In JavaScript we have 7 datatypes-
1. number
2. bigint
3. string
4. boolean
5. null
6. undefined
7. symbol
```
"use strict"; // treat all JS code as newer version
// alert(3 + 3) // we are using nodejs, not browser
console.log(3 + 3)
console.log("Sagar")
let name = "sagar"
let age = 22
let isLoggedIn = true
let state = null
// Premitive Datatypes
// number => 2^53
// bigint
// string => "" or ''
// boolean => true or false
// null => stand-alone value
// undefined => value is not assigned yet
// symbol => unique
// object
console.log(typeof name) // string
console.log(typeof age) // number
console.log(typeof isLoggedIn) // boolean
console.log(typeof undefined) // undefined
console.log(typeof null) // object
```
# π― Conversion Operations β
Conversions:
```
let score = 33;
let score = "33";
let score = "33abc";
let score = null;
let score = true;
let score = false;
let score = undefined;
let score = "sagar"
console.log(typeof score);
console.log(typeof score)
let valueInNumber = Number(score);
console.log(typeof valueInNumber);
console.log(valueInNumber)
```
"33" => 33\
"33abc" => NaN => typeof NaN => number\
ture => 1\
false => 0
```
let isLoggedIn = 1;
let isLoggedIn = "";
let isLoggedIn = "sagar"
let booleanIsLoggedIn = Boolean(isLoggedIn);
console.log(booleanIsLoggedIn)
```
1 => true\
0 => false\
"" => false\
"sagar" => true
```
let someNumber = 33;
let stringNumber = String(someNumber);
console.log(stringNumber);
console.log(typeof stringNumber);
```
Operations:
```
let value = 3;
let negValue = -value;
// console.log(negValue)
// console.log(2 + 2);
// console.log(2 - 2);
// console.log(2 * 2);
// console.log(2 ** 3);
// console.log(2 / 3);
// console.log(2 % 3);
// let str1 = "Hello";
// let str2 = " Sagar";
// let str3 = str1 + str2;
// console.log(str3);
// console.log("1" + 2);
// console.log(1 + "2");
// console.log("1" + 2 + 2);
// console.log(1 + 2 + "2");
// console.log(true);
// console.log(+true);
// console.log(+"");
// let num1, num2, num3;
// num1 = num2 = num3 = 2 + 2;
// console.log(num1);
// console.log(num2);
// console.log(num3);
// let gameCounter = 100
// gameCounter++
// console.log(gameCounter)
```
# π― Comparisons β
These are very basic
```
// console.log(2 > 1);
// console.log(2 >= 1);
// console.log(2 <= 1);
// console.log(2 == 1);
// console.log(2 != 1);
// console.log("2" > 1)
// console.log("02" > 1)
```
The main confusion begins here
```
console.log(null > 0);
console.log(null < 0);
console.log(null == 0);
console.log(null >= 0);
console.log(null <= 0);
console.log(undefined == 0);
console.log(undefined >= 0);
console.log(undefined <= 0);
```
πNote: The reason is that an equality check `==` and comparisons\
`>`,`<`,`>=`,`<=` work differently.\
Comparisons convert `null` to a number, treating it as `0`.\
That's why `null >= 0 ` is `true` and `null > 0` is `false`.
This checks the datatype of both the values
```
console.log("2" === 2)
```
# π― Datatypes summary β
There are two main categories of datatypes in JavaScript:
1. Primitive Datatypes, and
2. Non-Primitive Datatypes (Reference)
β Primitive Datatypes:
1. String
2. Number
3. Boolean
4. null
5. undefined
6. Symbol
7. BigInt
β Non-Primitive Datatypes (Reference)
1. Arrays
2. Objects
3. Functions
# π― Stack and Heap memory in javascript β
Every primitive datatypes goes to stack memory and every non-primitive datatypes\
goes to heap memory.