Skip to content

Instantly share code, notes, and snippets.

@pooooriya
Created January 20, 2024 08:19
Show Gist options
  • Save pooooriya/93dea7a404e2a1649461e8e6e92c9651 to your computer and use it in GitHub Desktop.
Save pooooriya/93dea7a404e2a1649461e8e6e92c9651 to your computer and use it in GitHub Desktop.
// "use strict";
// Command Linux
// ls -> list system
// cd -> change directory
// mkdir -> directory misazad (folder)
// touch -> file misazad
// rm -rf [esm file] -> file ra pak mikonad
// * -> wild card
// object method
// concat
// ...spread ~~~ object.assign =>
// har gah mikhahim 2 object ra ba ham concat konim
// dar soorat yeksan boodan property haie object aval ba object dovom
// tanha meghdar anha update va override mishavad
// badihi ast agr property ee yeksan nabashad
// concat etefagh mioftad
// const information1 = {
// name: "ali",
// age: 18,
// country: "iran"
// };
// const information2 = {
// name: "pouriya",
// age: 20
// };
// console.log(Object.assign(information1, information2));
// senario
// آدمی در ثبت احوال ثبت شده
// سن 18 عه - سن 19
// const information = {
// name: "ali",
// age: 18,
// country: "iran"
// };
// database
// 1.update
// information.age = 19;
// information.country = "usa";
// console.log(information);
// 2.update
// const form ={ age: 19, country: "usa" }
// Object.assign(information, { age: 19, country: "usa" });
// console.log(information);
// 3.spread ~~ Object.assign ~~ React
// const spread = { ...information, age: 20 };
// console.log(spread);
// array methods
// 1.concat
// const arr1 = ["1", "2", "3"];
// const arr2 = ["4", "5", "6"];
// const arr3 = arr1.concat(arr2);
// console.log(arr3);
// 2.length
// const arr1 = ["1", "2", "3"];
// console.log(arr1.length);
// senario
// const data = [];
// if(data.length > 0){ // یعنی اگر دیتایی وجود داشت
// // این کار انجام شود
// return "لیستی وجود ندارد"
// }
// 3. foreach . map
// const arr1 = ["1", "2", "3"];
// 0 1 2
// 3<3
// for (let i = 0; i < arr1.length; i++) {
// const element = arr1[i];
// if (element) {
// console.log(element);
// }
// }
// for (const item of arr1) {
// console.log(item);
// }
// arr1.forEach((element) => {
// console.log(element);
// });
/// ~~~~~~~~~~~~~~~~REACT~~~~~~~~~~~~~~~~~~~
// arr1.map((item)=>{
// console.log(item)
// })
// 4. push
// const arr1 = ["1", "2", "3"];
// const x = [];
// arr1.forEach((item) => {
// if (item === 1) {
// x.push(item);
// }
// });
// console.log(x);
// 5. Pop Shift UnShift
// const arr1 = ["1", "2", "3"];
// arr1.pop(); // khonne akhr -> item hazf mishavad
// console.log(arr1);
// console.log(arr1.pop());
// pop => element ke hazf return
// array asli dochar taghir mishvad (source)
// console.log(arr1.shift());
// console.log(arr1);
// soal hazf 2 ba estefade az shift ya pop
// soal hazf 2 => ba hazf krdn array akhr ya aval
// vorodi const arr1 = ["1", "2", "3"];
// khuruji const result = ["1", "3"];
// 80 % halghe loop
// const arr1 = ["1", "2", "3"];
// const result = [];
// arr1.forEach((item)=>{
// if(item != "2"){
// result.push(item)
// }
// })
// *******************************
// arr1.forEach((item) => {
// const deleteElement = arr1.shift();
// console.log(deleteElement, "d");
// console.log(item, "i");
// // const deleteElement = arr1.shift();
// // //1
// // console.log(item);
// });
// console.log(result);
// unshift ! push
// const arr1 = ["1", "2", "3"];
// console.log(arr1.unshift("0")); // length array
// console.log(arr1);
// flat
// const arr1 = ["1", [["2"]], "3", ["4"]];
// //arr1.flat() => array asli dochar taghir nemishavad
// const arr2 = arr1.flat().flat();
// const result = ["1", "2", "3", "4"];
// reverse
// const arr = ["1", "2", "3", "4"];
// arr.reverse(); // array asli dochar modify mishavad
// console.log(arr.reverse()); // array bedone taghir ra bar migardanad
// console.log(arr);
// sort
// const arr = [12, 43, 52, 1, 3221, 432, 3213, 32, 31];
// 1.method
// desc => نزولی => از بیشترین به کمترین
// asc => صعودی => از کمترین به بیشترین
// arr.sort((a, b) => a - b);
// arr.sort((a, b) => b - a);
// console.log(arr);
// sort => array
// sort => array (arraye khudaman ra sort mikonad)
// 2. khudet benevis bedon method :
// tamrin jalase badd
// pishniaz func
// const array = ["+98", "912", "1234567"];
// // ==>string
// array.join("");
// console.log(array.join(""));
// senario
// otp khud ra vared kunid
// 2 3 4 5
// const otp = [2, 3, 4, 5];
// otp.join("");
// console.log(otp.join("")); //bedon modify kardn array be man string jadid midahad
// server => "2345"
// ex:
// const array = ["12", "1234567"];
// const phone = array.join("");
// // validation
// if (!phone.startsWith("09")) throw new Error("شماره شما نامعتبر است");
// console.log(phone.padStart(11, 0));
// const otp = [2, 3, 4, 4, 4, 5];
// console.log(otp[2]);
// console.log(otp.findIndex((element) => element == 4)); // index
// console.log(otp.findIndex((element) => element == 6)); // -1
// console.log(otp.findLastIndex((element) => element == 6));
// search roie array ha
// const numbers = [2, 3, 4, 4, 4, 5];
// 1. Filter => array (new)
// 1. chandta 4 dakhel numbers
// const fourArrays = numbers.filter((element) => element === 4);
// console.log(fourArrays.length);
// 2. bishtar az 3 hara be man bede
// console.log(numbers.filter((element) => element > 3));
// search karbar benevisam
// const books = ["بهشت گمشده", "ملت عشق", "یو دونت نو جی اس", "تست", "تست2"];
// //"مل" => ملت عشق
// console.log(books.filter((x) => x.startsWith("مل")));
// // عشق
// console.log(books.filter((x) => x.includes("عشق")));
// // گمشده
// console.log(books.filter((x) => x.endsWith("گمشده")));
// find
// const numbers2 = ["912", "12", "4554", "4554", "554848"];
// console.log(numbers2.find((x) => x === "4554")); // value
// avalin chizi ke bebind ba shart ma yeki ast
// const information3 = [
// { id: 1, name: "ali" },
// { id: 2, name: "pouriya" }
// ];
// console.log(information3.find((x) => x.id === 1));
// find => object
// filter => array
// const information32 = [[2], [3], [[4]], [[[[[[[[[12]]]]]]]]]];
// console.log(information32.find((x) => x == 12)); // array
// console.log([[[[[[[[[[[[[[[[[[[[[[12]]]]]]]]]]]]]]]]]]]]]] == 12);
// filter vs find
// 1. filter => array , find => chizike bedst miare
// 2. filter tamami maghadir momken ra barmigardand dar hali ke find avali ro
// 3. filter dar soorat peida nakardn shart ma => [] dar soorati ke find => undefind
// دوز
// 9 ta khune
// jalase badd tamrin mikonid XD
// X 1 => true
// O 0 => false
// const team1 = "X";
// const team2 = "O";
// const square = Array(9).fill(null);
// tamrin alghoritm XO
//team1
//team2
//team1
//team2
// =>team1 winner
// reduce
// سبد خرید
// const checkout = [
// { id: 1, name: "بستنی فررو پلاس", price: 93000, count: 2 },
// { id: 2, name: "بستنی فررو ", price: 60000, count: 3 },
// { id: 2, name: "بستنی فررو ", price: 30000, count: 6 },
// { id: 2, name: "بستنی فررو ", price: 120000, count: 9 }
// ];
// جمع فاکتور را محاسبه کن
// let result = 0;
// checkout.forEach((item) => {
// result += item.price * item.count;
// // result = result + item.price * item.count;
// });
// 0 1 =>
// [0,1] 2
// [0,1,2] 3
// [0,1,2,3] 4
// const sumBasket = checkout.reduce(
// (accumlator, currentValue) =>
// accumlator + currentValue.count * currentValue.price,
// 0
// );
// console.log(result);
// چنتا خریده ؟
// let count = 0;
// checkout.forEach((item) => {
// count += item.count;
// // result = result + item.price * item.count;
// });
// const count = checkout.reduce(
// (accumlator, currentValue) => accumlator + currentValue.count,
// 0
// );
// console.log(count);
// // ex:
// const checkout2 = [
// {
// id: "292536",
// count: 1
// },
// {
// id: "457163",
// count: 1
// },
// {
// id: "657703",
// count: 1
// }
// ];
// const sum = checkout2.reduce(
// (accumlator, currentValue) => accumlator + currentValue.count,
//{}
// );
// group by - reduce (key,{})
// [{
// name:"ali",
// age:20
// }
// ,
// {
// name:"pouriya",
// age:20
// }
// ,
// {
// name:"pouriya2",
// age:23
// }]
// => {20:[{
// {
// name:"pouriya",
// age:20
// },
// {
// name:"ali",
// age:20
// }
// }]}
// console.log(sum);
// function => none premetive ha => تابع
// function sum(a, b) {
// return a + b;
// }
// console.log(sum(5, 10));
// 2 روش تعریف فانکشن
// declaration function
// function sum(a, b) {
// return a + b;
// }
// // expression function
// const sum = function (a, b) {
// return a + b;
// };
// tafavot :
// hoist shudn
// declaration function be bala hoist mishavad
// expresion function => -
// console.log(sum2(5, 10));
// // declaration function
// function sum2(a, b) {
// return a + b;
// }
// hoist be bala !!!!!
// console.log(sum(5, 10));
// const sum = function (a, b) {
// return a + b;
// };
// console.log(sum(5, 10));
// var sum = function (a, b) {
// return a + b;
// };
// const sum = (a, b) => {
// return a + b;
// };
// console.log(sum(5, 10));
// IFEE Immediately Invoked Function Expression
// (() => {
// console.log("Salam");
// })();
// corecion none premetive haaaaa
// premetive => premetive
// tostring();
// toValue();
// console.log([[[[[[[[[[[[[12]]]]]]]]]]]]] == 12);
// JSON
// string => json
// json => string
// const gelato =
// '{"name":"ali","family":"babaali","age":12,"information":{"country":"iran"},"chats":["سلام","چطوری","خوبم؟"]}';
// console.log(JSON.parse(gelato));
// const x = {
// name: "ali",
// family: "babaali",
// age: 12,
// information: {
// country: "iran"
// },
// chats: ["سلام", "چطوری", "خوبم؟"]
// };
// console.log(JSON.stringify(x));
// // api browser
// const sum = (a, b) => a + b;
// clearTimeout() // cancel // ejbari
// const x2 = setTimeout(() => {
// console.log(sum(5, 10));
// }, 5000); //5s
// setInterval(() => {
// console.log("har kas hast salam");
// }, 3000);
// clearInterval(x)
// var x=setInterval(() => {
// console.log("har kas hast salam");
// }, 3000);
// ***************************clearInterval*********************
// single page application => refresh nemikonim
// setintervall ta akhr apllication zendast
// setintervall => clearintervall
// localstorage
// json zakhire konam => [object,object]
// string
// local storage vs session storage vs cookie
// life time
// localstorage -> ya developer an ra pak nakon , madami ke karbar be tor dasti data ra pak nakon
// rooie mroorgr karbar
// session storage -> baz boodn tab
// cookie -> expiration time
// karbar ya developer
// expire at => 23-12-2024
// ++++++++++++
// senario
// app.blubank.com // subdomain app
// blubank.com
// junior.blubank.com
// auth.blubank.com // subdomain app
// cookie mitavand rooie path zakhire shavad
// cookie => *.blubank.com
// **** least 300 cookies with a maximum size of 4096 bytes
// snapp => snappfood , snappdoctor , ....
// how to store ?
// key value(string|number|boolean(premetive))
// "checkout" - "[{id:1,name:"فررو پلاس"}]"
// localstorage
// localStorage.setItem("user", "5");
// localStorage.removeItem("user");
//sessionStorage.setItem("user", "5");
// sessionStorage.removeItem("user");
// cookie
// document.cookie = "username=ali";
// shallow deep copy object
// spread
// 3:17 +++++++ state react
// const person = {
// name: "ali",
// family: "babaali",
// country: {
// name: "iran",
// phone: "+98"
// }
// };
// person.name = "pouriya";
// person.country.name = "usa";
// console.log(person);
// const copy = { ...person };
// copy.name = "mohsen";
// console.log(copy);
// console.log(person);
// const copy = { ...person };
// copy.country.phone = "+0";
// console.log(copy);
// console.log(person);
// function +++
// const deepCopy = JSON.parse(JSON.stringify(person));
// deepCopy.country.phone = "+0";
// console.log(deepCopy);
// console.log(person);
// ex:
// const state = {
// name: "ali",
// country: {
// province: "africa",
// name: {
// info: "iran"
// }
// }
// };
// const deepCopy = JSON.parse(JSON.stringify(state));
// deepCopy.country.name.info = "usa";
// state = deepCopy;
// console.log(state);
// const newState = {
// ...state,
// ...{ country: { name: { info: "usa2222" } } }
// };
// console.log(newState);
// ***************************************
// {
// // id:645412584218541848541854185484 => 64541258421854000
// id:"4544584845848484848484848484" =>
// }
// destructre
// use
// console.log(person.teacher.family);
// console.log(person["teacher"]["family"]);
// destructring
// rest operator
// rest of the other thing
// ...rest => object
// **** har moghe ke man az dakhel objecti chizi ra destruce
// an meghdar ast ke braiaash const sakhte mishavad na kole objecte
// **** har gah az dakhel yek object meghdari destruce shavad
// rest operator dgr ba object kar nadarad va engar ke
// az dakhel boghche avordimesh birun
// name gozashtim jibemon
// baghish andakhtim satl ashghal
// dast be mohre bazie ****
// alias => nam mostaar => taghir name
// har gah didi do ta property mesle ham shodand
// bayd az alias estefade koni ta do moteghiar ba do esm moshabah
// nabini !!!!!
// const {
// name: personName,
// fullname,
// ...rest
// } = {
// name: "john",
// family: "deo",
// age: 20,
// country: "iran",
// numbers: ["09121234567", "09351234567"],
// fullname() {
// return this.name + this.family;
// },
// courses: [
// {
// id: 1,
// name: "ادبیات فارسی"
// }
// ],
// teacher: {
// name: "mostafa",
// family: {
// id: 1,
// name: {
// id: 1,
// name: "ادبیات فارسی"
// }
// }
// }
// };
// console.log(person.fullname());
// spread vs rest
// spread => object =>{id:1}, {name:2} => {...obj1,...obj2} => Object.Assign(obj1,obj2)
// rest => destructring
// const { age, country, courses, family, name, numbers, teacher } = person;
// console.log(age, country, courses, teacher);
// const name2 = "function sum(a,b){ return a+b;}";
// console.log(eval(name2(1, 2)));
// class => syntax suger => function(){}
// class Car {
// name; //property
// color;
// type;
// speed;
// constructor(name, color, type) {
// this.name = name;
// this.color = color;
// this.type = type;
// }
// getCarName() {
// return this.name;
// }
// setCarName(name) {
// this.name = name;
// }
// handleSpeed(){
// if(speed > 120){
// alert("سرعت شما غیر مجاز است")
// }
// }
// }
// class Bird{
// name;
// color;
// type;
// handleLandOnTree(){
// }
// handleFlyOnSky(){
// }
// }
// class besazam ke har bar nakhad new beshe?
// ravash aval => static
// class Car {
// static family;
// constructor() {}
// static getName() {
// console.log("salam dadash");
// }
// }
// Car.getName();
// Car.family;
// static => yekbar new mishavad
// singleton => yekbar new beshavam !!!!!! cache system
// const person = {
// name: "ali"
// };
// person.name = "mohsen";
// person.age = 20;
// console.log(person);
// class Car {
// name2 = "ali";
// constructor() {
// console.log(Car._asghar, "Car._asghar");
// if (!Car._asghar) {
// Car._asghar = this;
// }
// this.name2 = "mohsen";
// }
// }
// // ex:
// const carInstance1 = new Car();
// const carInstance2 = new Car();
// const carInstance3 = new Car();
// console.log(carInstance1.name2, carInstance2.name2, carInstance3.name2);
// // use
// const fariborzCar = new Car("207", "white", "pegout");
// console.log(fariborzCar.getCarName());
// console.log(fariborzCar.setCarName("2008"));
// console.log(fariborzCar.getCarName());
// hof
// const sum = (a, b, onSumCompleted, onSumStarted) => {
// onSumStarted();
// const c = a + b;
// onSumCompleted(c);
// return c;
// };
// console.log(
// sum(
// 10,
// 15,
// (sum) => {
// console.log("عملیات جمع زدن انجام شد");
// },
// () => {
// console.log("عملیات جمع زدن در حال انجام شدن است");
// }
// )
// );
// callback promise async await
// **** MICRO TASK > MACRO TASK
//macro => browser
// setInterval(() => {
// }, interval);
// setTimeout(() => {
// }, timeout);
// console.log()
// event loop
//ex:1
// console.log("1");
// setTimeout(() => {
// console.log("2");
// }, 1000);
// console.log("3");
// ex:2
// console.log("1");
// setTimeout(() => {
// console.log("2");
// }, 0);
// console.log("3");
// macrotask queue
// tasmim 2 -> settimeout -> zaman (event loop)
// console.log(3) -> return
//132
//microtask>macrotask
// console.log("1"); // microtask
// setTimeout(() => {
// // macrotask
// console.log("2"); // microtask
// setTimeout(() => {
// // macrotask
// console.log("3"); // microtask
// }, 0);
// console.log("4"); // microtask
// }, 0);
// console.log("5"); // microtask
// window document
// console.log(document);
// console.log(localStorage);
// console.log(sessionStorage);
// console.log(window.document);
// this (call,bind,apply)
// global scope => window
// console.log(this);
// function vs arrow function
// this
// this dar function dakhel object => object => excution context
// this dar arrow func dakhel object => global scope => window => excution context
// const information3 = {
// name2: "ali",
// getName() {
// console.log(this);
// return information3.getName2(this.name2);
// },
// getName2(name) {
// console.log(name);
// }
// };
// console.log(information3.getName());
// use strict + => undefiend
// use strict - => window
// function test() {
// console.log(this);
// }
// test();
// const s = () => {
// console.log(this);
// };
// this be khudesh eshare mikonad(car)
// class car {
// constructor() {
// // console.log(this);
// }
// getName() {
// //this be khudesh eshare mikonad (car)
// console.log(this);
// }
// getName2 = () => {
// console.log(this);
// };
// }
// console.log(new car().getName2());
// (call,bind,apply) => this ()
// const info = {
// name: "ali",
// family: "babaali"
// };
// function sum2() {
// console.log(this);
// }
// const sum3 = sum2.bind(info); // hichmoghe func asli ra taghir nmidahad balke func jdid ba this jdid misazd
// sum3();
// sum2.apply(info);
// sum2();
// // sum();
// sum.call(info);
// Call vs Bind vs Apply
// Invoke
// sum2.call(info);
// sum2.apply(info);
// const sum3 = sum2.bind(info);
// sum3();
// function sum2(a, b) {
// console.log(this, a + b);
// }
// Parameter
// apply vs call (a) => array | call (c) =>comma
// sum2.apply(info, [5, 10]);
// sum2.call(info, 5, 10);
// const sum3 = sum2.bind(info);
// sum3(10, 5);
// sum3(10, 5);
// const x = () => {
// console.log(this);
// };
// x.call(info);
// const x2 = x.bind(info);
// x2();
// x.apply(info);
// Call + Apply => Invoke | Bind => Invoke Nemishavad
// const x = () => {
// console.log(this);
// };
// x.call(info);
// senario:React 16.8
// class ReactComponent extend React.Component{
// constructor(){
// super();
// this.GetValue = this.GetValue.bind(this);
// }
// GetValue(){
// }
// render(
// <div onClick={this.GetValue}>
// </div>
// )
// }
// closure
// function sum() {
// const x = "pouriya";
// return function sum2(a, b) {
// console.log(x);
// return a + b;
// };
// }
// const sum3 = sum();
// console.log(sum3(10, 5));
// function getFullName(name) {
// return function getFull() {
// console.log(name);
// };
// }
// const asghar = getFullName("ali");
// console.log(asghar);
// ajax
// promise async await cb
// dom maniuplation
// event -> event bubbling
// date
// encode decode
// map waek map
// proxy
// getter setter
// module
// export import required
// continue
// debugger
// try catch
@pooooriya
Copy link
Author

یک آبجکت میسازید و تمامی آبجکت متود هارا روش اجرا میکنید

یک ارایه میسازید و تمامی ارایه متود هارا روش اجرا میکنید

بازیه XO

تمام آبجکت متد ها از قبیل ورودی و خروجی داخل یک برگه آچهار مینویسید و جلوی چشتون میزارید

تمام استرینگ متد ها از قبیل ورودی و خروجی داخل یک برگه آچهار مینویسید و جلوی چشتون میزارید

2. khudet benevis bedon method : tamrin jalase badd pishniaz func

group by - reduce

عواملی که جاوا اسکریپت رو مموری لیک میکنند

GC

desturcring chand level

alias , nested selection , rest

MICRO TASK > MACRO TASK

this mdn call apply bind

closure

Context in javascript ()

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment