SmartCode
1.06K subscribers
145 photos
2 videos
20 files
130 links
Download Telegram
CHALLENGE


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

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

with (obj1) {
with (obj2) {
name = "Bob";
console.log(name, age);
}
}
یکی از کاربرد های JS :
وب سایتهای بدون سرور :
وب سایتهای بی سرور هنوز مفهومی نسبتاً جدید بوده که می توانند مسیر جدیدی برای میزبانی وب سایت باشند. استفاده از سرویس هایی مانند AWS Lambda ،می تواند روشی نسبتاً کارآمد برای میزبانی وب سایت باشد.

مفهوم وب سایت بدون سرور این است که یک فایل .html از پیش ساخته استاتیک در خدمت کاربران میگزارد. با ارائه یک فایل .html منفرد ، ما زمان بایت اول را کاهش می دهیم (یعنی زمان لازم برای سرور جهت شروع ارسال داده ها) ، و همچنین زمان دسترسی کاربر را به داده ها کاهش می دهیم.

زمانی که مرورگر صفحه ای را به کاربرارائه میدهد ، جاوا اسکریپت برای ارائه کلیه محتوای پویا و رسانه ها از طریق API (برنامه رابط برنامه نویسی) و CDN (شبکه تحویل محتوا) اقدام می کند.
داده های پویا می توانند به محض بارگیری در صفحه متحرک شوند ، تجربه ای روان ارائه می دهند و به کاربران امکان می دهند در حالی که منتظر سایر داده ها هستند ، به برخی داده ها دسترسی پیدا کنند.

یک مورد خوب برای مفهوم وب سایت بدون سرو این است که یک وب سایت می تواند کدگذاری کند تا داده ها را بر اساس مکانی که در صفحه ظاهر می شود بارگذاری کند ، به این معنی که داده ها براساس اسکرول برای کاربر آماده خواهند شد.
وب سایت بدون سرور هنوز هم نسبتاً جدید است ومطوئنا در مورد آن طی سالهای آینده چیزهای بیشتری خواهیم شنید.
CHALLENGE


function* infiniteGenerator() {
let i = 0;
while (true) {
yield i++;
}
}

const weakMap = new WeakMap();
const gen = infiniteGenerator();

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

const result = weakMap.get(gen) + gen.next().value;

console.log(result);
1
وب اسکرپ چیست ؟؟
وب اسکرپینگ فرآیند استخراج داده‌ها از وب‌سایت‌ها است، و این کار معمولاً با استفاده از زبان‌های برنامه‌نویسی انجام می‌شود. یکی از محبوب‌ترین زبان‌ها برای این کار، Python است به خاطر کتابخانه‌های قوی و آسان آن.

### مراحل وب اسکرپینگ:

1. تحلیل وب‌سایت:
- قبل از هر چیز، باید ساختار HTML وب‌سایت مورد نظر را تحلیل کنید. با استفاده از ابزارهایی مانند Chrome Developer Tools می‌توانید به کد HTML دسترسی پیدا کنید.

2. انتخاب ابزار یا زبان برنامه‌نویسی:
- Python یکی از گزینه‌های محبوب است. برای این کار می‌توانید از کتابخانه‌هایی مثل BeautifulSoup و requests استفاده کنید.

3. نوشتن کد:
- حالا می‌توانید کد خود را بنویسید.

### مثال ساده با Python:

در این مثال، از requests برای دریافت محتوا و BeautifulSoup برای تجزیه HTML استفاده می‌شود:

```python
```python
import requests
from bs4 import BeautifulSoup

# URL وب‌سایت
url = 'https://example.com'

# ارسال درخواست
response = requests.get(url)

# چک کردن موفقیت درخواست
if response.status_code == 200:
# تجزیه محتوا
soup = BeautifulSoup(response.text, 'html.parser')

# پیدا کردن عنصر مورد نظر (مثلاً یک عنوان)
titles = soup.find_all('h1')

# چاپ عنوان‌ها
for title in titles:
print(title.text)
else:
print('خطا در بارگذاری وب‌سایت')


### نکات مهم:

- قوانین و شرایط خدمات: هر وب‌سایتی شرایط خاص خود را دارد. مهم است که قبل از انجام وب اسکرپ، شرایط خدمات آن وب‌سایت را مطالعه کنید تا از قانونی بودن عمل خود مطمئن شوید.

- کاهش درخواست‌ها: برای جلوگیری از مسدود شدن IP خود، تعداد درخواست‌های ارسالی را کاهش دهید. می‌توانید از time.sleep() برای ایجاد تأخیر بین درخواست‌ها استفاده کنید.

- User-Agent: برای شبیه‌سازی یک مرورگر واقعی، می‌توانید یک User-Agent به درخواست‌های خود اضافه کنید.

### مثال با User-Agent:

```python
```python
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
}

response = requests.get(url, headers=headers)

``````
روز برنامه نویس مبارک
CHALLENGE

function* gen() {
yield* [1, 2, 3].map(x => x * 2);
}

const iterator = gen();
console.log(iterator.next().value);
console.log(iterator.next().value);
console.log(iterator.next().value);
console.log(iterator.next().value);
CHALLENGE
typeof null 
typeof undefined
function Product(name, price) {
this.name = name;
this.price = price;
}

Product.prototype.discount = function(discount) {
this.price -= discount;
};

const product = new Product('Phone', 500);
product.discount(50);

console.log(product.price);
let obj1 = {"name" : "Amir"};
let obj2 = obj1;
let obj3 = {...obj1};
obj1.age = 120;
console.log(obj1.age,obj2.age,obj3.age);
کتابخانه node-telegram-bot-api یکی از محبوب‌ترین کتابخانه‌ها برای ساخت ربات‌های تلگرام با استفاده از Node.js است. این کتابخانه امکانات متنوعی را برای تعامل با API تلگرام فراهم می‌کند و نوشتن ربات‌های تلگرام را ساده و کارآمد می‌سازد.

### ویژگی‌های کلیدی:

1. سازگار با API تلگرام: این کتابخانه از تمام امکانات API تلگرام مانند ارسال پیام، دریافت پیام‌های جدید، مدیریت کاربر، و تعامل با استیکرها پشتیبانی می‌کند.

2. راحتی در استفاده: با استفاده از این کتابخانه می‌توانید به سرعت ربات‌های خود را راه‌اندازی کرده و آنها را توسعه دهید. این کتابخانه از Promiseها و Callbacks پشتیبانی می‌کند که به برنامه‌نویسان امکانات بیشتری می‌دهد.

3. مدیریت رویدادها: با قابلیت مدیریت رویدادها، می‌توانید به راحتی به انواع مختلف رویدادها (مثل دریافت پیام، کلیک بر روی دکمه‌ها، و غیره) پاسخ دهید.

4. سازماندهی آسان کد: به دلیل ساختار ماژولار و تمیز آن، کد شما سازماندهی شده و خوانا خواهد بود.

5. پشتیبانی از وب‌هوک: این کتابخانه امکان استفاده از وب‌هوک‌ها را فراهم می‌کند که برای ربات‌های دو طرفه و سریع بسیار مناسب است.

### نصب و استفاده:

برای نصب این کتابخانه، می‌توانید از npm استفاده کنید:

npm install node-telegram-bot-api



سپس، می‌توانید ربات خود را با استفاده از کد زیر راه‌اندازی کنید:

const TelegramBot = require('node-telegram-bot-api');

// توکن ربات خود را از BotFather بگیرید
const token = 'YOUR_TELEGRAM_BOT_TOKEN';

// ایجاد یک نمونه از ربات
const bot = new TelegramBot(token, { polling: true });

// گوش دادن به پیام‌های جدید
bot.on('message', (msg) => {
const chatId = msg.chat.id;
bot.sendMessage(chatId, 'Hello World!');
});



با این کد، ربات شما به پیام‌ها پاسخ خواهد داد. می‌توانید قابلیت‌های بیشتری به ربات اضافه کنید و آن را متناسب با نیازهای خود توسعه دهید.
برای یادگیری این پکیج حتما باید js, nodejs , database, از قبل بلد باشید و سپس میتوانید این کتابخانه از داکیومنت https://www.npmjs.com/package/node-telegram-bot-api بخوانید
Audio
console.log(1);
setTimeout(() => console.log(2), 0);
Promise.resolve()
.then(() => {
console.log(3);
return Promise.resolve(4);
})
.then(console.log);
console.log(5);