en
Feedback
SmartCode

SmartCode

Open in Telegram
251
Subscribers
No data24 hours
+27 days
+1030 days
Posts Archive
یکی از کاربرد های JS : وب سایتهای بدون سرور : وب سایتهای بی سرور هنوز مفهومی نسبتاً جدید بوده که می توانند مسیر جدیدی برای میزبانی وب سایت باشند. استفاده از سرویس هایی مانند AWS Lambda ،می تواند روشی نسبتاً کارآمد برای میزبانی وب سایت باشد. مفهوم وب سایت بدون سرور این است که یک فایل .html از پیش ساخته استاتیک در خدمت کاربران میگزارد. با ارائه یک فایل .html منفرد ، ما زمان بایت اول را کاهش می دهیم (یعنی زمان لازم برای سرور جهت شروع ارسال داده ها) ، و همچنین زمان دسترسی کاربر را به داده ها کاهش می دهیم. زمانی که مرورگر صفحه ای را به کاربرارائه میدهد ، جاوا اسکریپت برای ارائه کلیه محتوای پویا و رسانه ها از طریق API (برنامه رابط برنامه نویسی) و CDN (شبکه تحویل محتوا) اقدام می کند. داده های پویا می توانند به محض بارگیری در صفحه متحرک شوند ، تجربه ای روان ارائه می دهند و به کاربران امکان می دهند در حالی که منتظر سایر داده ها هستند ، به برخی داده ها دسترسی پیدا کنند. یک مورد خوب برای مفهوم وب سایت بدون سرو این است که یک وب سایت می تواند کدگذاری کند تا داده ها را بر اساس مکانی که در صفحه ظاهر می شود بارگذاری کند ، به این معنی که داده ها براساس اسکرول برای کاربر آماده خواهند شد. وب سایت بدون سرور هنوز هم نسبتاً جدید است ومطوئنا در مورد آن طی سالهای آینده چیزهای بیشتری خواهیم شنید.

Output :
Anonymous voting

CHALLENGE

const obj1 = {
  name: "Alice",
  age: 25
};

const obj2 = {
  age: 30,
  city: "Wonderland"
};

with (obj1) {
  with (obj2) {
    name = "Bob";
    console.log(name, age);
  }
}

Output :
Anonymous voting

CHALLENGE

const weakMap = new WeakMap();
const objs = [{}, {}, {}];

objs.forEach((obj, index) => weakMap.set(obj, index + 1));

const result = objs.filter(obj => weakMap.has(obj)).map(obj => weakMap.get(obj) * 2);

console.log(result);

output :
Anonymous voting

CHALLENGE

const weakMap = new WeakMap();
const array = [1, 2, 3];
const obj = {};

weakMap.set(obj, array);

const result = weakMap.get(obj).reduce((acc, val) => acc + val);

console.log(result);

😎
😎

Output
Anonymous voting

CHALLENGE

const weakMap = new WeakMap();
const obj = {};

(function() {
  const internalObj = {};
  weakMap.set(internalObj, 'hidden');
  obj.ref = internalObj;
})();

delete obj.ref;

const result = weakMap.has(obj.ref);

console.log(result);

output :
Anonymous voting

CHALLENGE

const weakMap = new WeakMap();
const array = [{}, {}];

array.forEach(obj => weakMap.set(obj, obj));
const result = array.map(obj => weakMap.get(obj) === obj);

console.log(result);

Output :
Anonymous voting

CHALLENGE

const weakMap = new WeakMap();
const gen = (function* () {
  yield { key: 'value1' };
  yield { key: 'value2' };
})();

const obj1 = gen.next().value;
const obj2 = gen.next().value;

weakMap.set(obj1, 'stored value1');
weakMap.set(obj2, 'stored value2');

const result = [...gen].map(obj => weakMap.get(obj));

console.log(result);

OUTPUT :
Anonymous voting

CHALLENGE

function* evenNumbers() {
  let num = 0;
  while (true) {
    yield num;
    num += 2;
  }
}

const gen = evenNumbers();
const evens = Array.from({ length: 4 }, () => gen.next().value).map(n => n + 1);

console.log(evens);

Output
Anonymous voting

CHALLENGE

const weakMap = new WeakMap();
const obj = {};
const gen = (function* () {
  yield 'value1';
  yield 'value2';
})();

weakMap.set(obj, gen.next().value);

console.log(weakMap.get(obj));
console.log(gen.next().value);

Output?
Anonymous voting

CHALLENGE

const weakMap = new WeakMap();
const obj = {};

(function() {
  const obj1 = { name: 'inner' };
  weakMap.set(obj1, 'inner value');
})();

const result = weakMap.get(obj);

console.log(result);