جاوااسکریپت عملگری به شکل ~~ نداره.
پس عدد بالا چه اتفاقی براش افتاده که رند شده؟
جواب سوال: چهارشنبه ۱۵ آبان ساعت ۱۳ در کانال رقصنده با کد:
https://t.iss.one/alithecodeguy
#js #javascript #programming
@alithecodeguy
پس عدد بالا چه اتفاقی براش افتاده که رند شده؟
جواب سوال: چهارشنبه ۱۵ آبان ساعت ۱۳ در کانال رقصنده با کد:
https://t.iss.one/alithecodeguy
#js #javascript #programming
@alithecodeguy
رقصنده با کد
جاوااسکریپت عملگری به شکل ~~ نداره. پس عدد بالا چه اتفاقی براش افتاده که رند شده؟ جواب سوال: چهارشنبه ۱۵ آبان ساعت ۱۳ در کانال رقصنده با کد: https://t.iss.one/alithecodeguy #js #javascript #programming @alithecodeguy
جواب این سوال رو میخواستم فردا بذارم ولی دلم نیومد الان نذارم اذیت نشید. ندونستنش یه دردسره ، دونستنش هزارتا دردسر 😈
دلیل اینکه چرا دو بار “بیت وایز نات” کردن یک عدد اعشاری باعث حذف قسمت اعشاری میشه رو مرحله به مرحله توضیح میدم: (بیت وایز نات همون عملگر ~ هستش که میاد اعداد رو به باینری تبدیل میکنه سپس هر صفر رو بک یک و هر یک رو به صفر تبدیل میکنه.)
۰- بخشی از دلیل این اتفاق ، به ریاضیات و نحوه برخورد کامپیوتر با اعداد مرتبطه و مختص زبان برنامهنویسی خاصی نیست. به خاطر همین توی توضیحات کلمههای متمم۱ و متمم۲ رو خواهید دید که مفهومی ریاضی هستند که دلیل رفتار متمم۲ هم خودش به مفهوم ریاضی دیگهای به نام “همنهشتی” مرتبطه.
۱- علامت ~~ در واقع دو تا عملگر ~ هستش که بهش میگن عملگر “بیت وایز نات”. وقتی عملگر “بیت وایز نات” اول رو روی هر عددی انجام بدید (در جاواااسکریپت) ، اون عدد باید به فرم ۳۲ بیتی علامتدار تبدیل بشه پس از همینجا میتونیم متوجه بشیم این عملگر میاد قسمت اعشاری رو کلا حذف میکنه و قسمت صحیح عدد رو هر بیتشو معکوس میکنه (اصطلاحا متمم۱ میگیره).
۲- برای مثال عدد ۵.۳ ابتدا به ۵ تبدیل میشه سپس به فرم باینری زیر درمیاد:
00000000000000000000000000000101
حالا اگر “متمم ۱” ازش بگیریم به شکل زیر درمیاد: (نات کنیم)
11111111111111111111111111111010 (*)
که این عدد تولید شده ، خودش “متمم۲” یک عدد دیگهایه. چرا؟ چون این عدد منفیه (به خاطر اولین بیت سمت چپ که ۱ هستش) حالا این عدد دیگه رو چه جوری محاسبه کنیم؟ یک متمم ۲ دیگه ازش میگیریم. برای اینکار اول میایم متمم ۱ میگیریم :
00000000000000000000000000000101
بعد عدد ۱ رو بهش اضافه میکنیم:
00000000000000000000000000000110
که اگر به فرمت دسیمال تبدیلش کنیم عدد ۶ به دست میاد و از اونجا که منفی بود میدونیم پس عدد منفی ۶ رو نشون میداده. ( این عدد منفی ۶ رو محاسبه کردیم که عملگر تنهای ~ رو هم دیده باشیم که چرا ~5.3 = -6 میشه )
۳-حالا وقتی عملگر نات دوم رو دوباره روی عدد باینری (*) بالا پیاده کنیم ، عدد زیر بدست میاد:
00000000000000000000000000000101
که این عدد باینری رو هم اگر به فرم دهدهی تبدیل کنیم ، عدد ۵ بدست میاد.
حالا این کجاش به جاوااسکریپت مرتبط بود؟ 😄
#js #javascript #programming #tip #tricks @alithecodeguy
دلیل اینکه چرا دو بار “بیت وایز نات” کردن یک عدد اعشاری باعث حذف قسمت اعشاری میشه رو مرحله به مرحله توضیح میدم: (بیت وایز نات همون عملگر ~ هستش که میاد اعداد رو به باینری تبدیل میکنه سپس هر صفر رو بک یک و هر یک رو به صفر تبدیل میکنه.)
۰- بخشی از دلیل این اتفاق ، به ریاضیات و نحوه برخورد کامپیوتر با اعداد مرتبطه و مختص زبان برنامهنویسی خاصی نیست. به خاطر همین توی توضیحات کلمههای متمم۱ و متمم۲ رو خواهید دید که مفهومی ریاضی هستند که دلیل رفتار متمم۲ هم خودش به مفهوم ریاضی دیگهای به نام “همنهشتی” مرتبطه.
۱- علامت ~~ در واقع دو تا عملگر ~ هستش که بهش میگن عملگر “بیت وایز نات”. وقتی عملگر “بیت وایز نات” اول رو روی هر عددی انجام بدید (در جاواااسکریپت) ، اون عدد باید به فرم ۳۲ بیتی علامتدار تبدیل بشه پس از همینجا میتونیم متوجه بشیم این عملگر میاد قسمت اعشاری رو کلا حذف میکنه و قسمت صحیح عدد رو هر بیتشو معکوس میکنه (اصطلاحا متمم۱ میگیره).
۲- برای مثال عدد ۵.۳ ابتدا به ۵ تبدیل میشه سپس به فرم باینری زیر درمیاد:
00000000000000000000000000000101
حالا اگر “متمم ۱” ازش بگیریم به شکل زیر درمیاد: (نات کنیم)
11111111111111111111111111111010 (*)
که این عدد تولید شده ، خودش “متمم۲” یک عدد دیگهایه. چرا؟ چون این عدد منفیه (به خاطر اولین بیت سمت چپ که ۱ هستش) حالا این عدد دیگه رو چه جوری محاسبه کنیم؟ یک متمم ۲ دیگه ازش میگیریم. برای اینکار اول میایم متمم ۱ میگیریم :
00000000000000000000000000000101
بعد عدد ۱ رو بهش اضافه میکنیم:
00000000000000000000000000000110
که اگر به فرمت دسیمال تبدیلش کنیم عدد ۶ به دست میاد و از اونجا که منفی بود میدونیم پس عدد منفی ۶ رو نشون میداده. ( این عدد منفی ۶ رو محاسبه کردیم که عملگر تنهای ~ رو هم دیده باشیم که چرا ~5.3 = -6 میشه )
۳-حالا وقتی عملگر نات دوم رو دوباره روی عدد باینری (*) بالا پیاده کنیم ، عدد زیر بدست میاد:
00000000000000000000000000000101
که این عدد باینری رو هم اگر به فرم دهدهی تبدیل کنیم ، عدد ۵ بدست میاد.
حالا این کجاش به جاوااسکریپت مرتبط بود؟ 😄
#js #javascript #programming #tip #tricks @alithecodeguy
این یک تکه کد جاوااسکریپت هست که دو فانکشن متفاوت رو با اسم یکسان ایجاد کرده و این فانکشنها رو از طریق این اسم ، یک بار در ایتدای اسکریپت و بار دوم در انتهای اسکریپت صدا زده و هر دفعه فانکشن متفاوتی، کال شده.
عجیبه نه؟ اتفاقا اصلا عجیب نیست وقتی جاوااسکریپت رو بشناسی.
توی دوره عمیق جاوااسکریپت درباره دلیل عمیق و ساختاری همچین موضوعاتی صحبت میکنیم.
(بعضی از مطالب از جمله همین تصویر رو ، به صورت شرت یوتیوب در گذر زمان توضیح میدم)
#js #javascript #programming
@alithecodeguy
عجیبه نه؟ اتفاقا اصلا عجیب نیست وقتی جاوااسکریپت رو بشناسی.
توی دوره عمیق جاوااسکریپت درباره دلیل عمیق و ساختاری همچین موضوعاتی صحبت میکنیم.
(بعضی از مطالب از جمله همین تصویر رو ، به صورت شرت یوتیوب در گذر زمان توضیح میدم)
#js #javascript #programming
@alithecodeguy
تشخیص صحت کد ملی در جاوااسکریپت
مطالب بیشتر در کانال رقصنده با کد:
https://t.iss.one/alithecodeguy
#js #programming #code #javascript
مطالب بیشتر در کانال رقصنده با کد:
https://t.iss.one/alithecodeguy
#js #programming #code #javascript
تشخیص صحت شماره کارت بانکی در جاوا اسکریپت
مطالب بیشتر در کانال رقصنده با کد :
https://t.iss.one/alithecodeguy
و همچنین کانال یوتیوب:
https://www.youtube.com/alithecodeguy
#js #javascript #programming #جاوااسکریپت
مطالب بیشتر در کانال رقصنده با کد :
https://t.iss.one/alithecodeguy
و همچنین کانال یوتیوب:
https://www.youtube.com/alithecodeguy
#js #javascript #programming #جاوااسکریپت
فراخوانی متدهای Number روی اعداد صحیح با دو dot notation در جاوااسکریپت
مطالب بیشتر در کانال رقصنده با کد :
https://t.iss.one/alithecodeguy
و همچنین کانال یوتیوب:
https://www.youtube.com/alithecodeguy
#js #javascript #ts #programming
مطالب بیشتر در کانال رقصنده با کد :
https://t.iss.one/alithecodeguy
و همچنین کانال یوتیوب:
https://www.youtube.com/alithecodeguy
#js #javascript #ts #programming
جاوااسکریپت (مشابه همه زبانهایی که دارن از استاندارد IEEE754 استفاده میکنن) حاصل جمع 0.2 + 0.1 رو به شکل زیر نشون میده:
0.30000000000000004
حالا چرا همچین اتفاقی میفته؟ چون طبق معیارهای استاندارد بالا ، همه اعداد به مبنای باینری تبدیل میشن و کمی تقریب پیش میاد. توضیح کامل ترش رو میتونید توی لینک زیر بخونید:
https://en.wikipedia.org/wiki/Double-precision_floating-point_format
دلیلش ممکنه برامون خیلی مهم نباشه ولی قطعا راه حلش مهمه.
حالا چطوری میتونیم موقع محاسبات از این خطا (اگر بشه بهش گفت خطا) جلوگیری کنیم؟
راه اول : استفاده از کتابخانه جانبی مثل دسیمال جیاس:
import Decimal from 'decimal.js';
console.log(new Decimal(0.1).plus(new Decimal(0.2)).toNumber());
راه دوم: استفاده از اینستنس متدهای نامبر:
console.log((0.1 + 0.2).toFixed(2));
راه سوم:استفاده از تقریب ثابت:
const precision = 1000
console.log((0.1 * precision + 0.2 * precision) / precision)
مطالب بیشتر در کانال رقصنده با کد :
https://t.iss.one/alithecodeguy
و همچنین کانال یوتیوب:
https://www.youtube.com/alithecodeguy
#js #programming #tip #es
0.30000000000000004
حالا چرا همچین اتفاقی میفته؟ چون طبق معیارهای استاندارد بالا ، همه اعداد به مبنای باینری تبدیل میشن و کمی تقریب پیش میاد. توضیح کامل ترش رو میتونید توی لینک زیر بخونید:
https://en.wikipedia.org/wiki/Double-precision_floating-point_format
دلیلش ممکنه برامون خیلی مهم نباشه ولی قطعا راه حلش مهمه.
حالا چطوری میتونیم موقع محاسبات از این خطا (اگر بشه بهش گفت خطا) جلوگیری کنیم؟
راه اول : استفاده از کتابخانه جانبی مثل دسیمال جیاس:
import Decimal from 'decimal.js';
console.log(new Decimal(0.1).plus(new Decimal(0.2)).toNumber());
راه دوم: استفاده از اینستنس متدهای نامبر:
console.log((0.1 + 0.2).toFixed(2));
راه سوم:استفاده از تقریب ثابت:
const precision = 1000
console.log((0.1 * precision + 0.2 * precision) / precision)
مطالب بیشتر در کانال رقصنده با کد :
https://t.iss.one/alithecodeguy
و همچنین کانال یوتیوب:
https://www.youtube.com/alithecodeguy
#js #programming #tip #es
برای مقایسه رشتهها در جاوااسکریپت ، سعی کنید از راههای مطمئن استفاده کنید مخصوصا اگر دارید با زبانهایی غیر از لاتین کار میکنید.
@alithecodeguy
#js #javascript #es #programming
@alithecodeguy
#js #javascript #es #programming
همچنان معتقدم که ریداکس با اختلاف زیادی از بقیه استیت منیجرها بهتره که بخشی از این مزیتش به خاطر ابزارهای جانبیشه از جمله آرتیکی-کویری.
ولی اگر فقط به چشم استیت منیجر بخوایم بهش نگاه کنیم ، توی یک سناریوی خاص (که کم ممکنه براتون پیش بیاد) از زوستند (یا هر تلفط دیگهای که ازش میگن) کم میاره و اون وقتیه که دیتاهاتون مرتبا و احتمالا سرعت بالایی آپدیت میشه. مثلا وقتی که یک جدول کارگزاری ایجاد میکنید ممکنه توی یک ثانیه تا دهها آپدیت دریافت کنید. عملا ریداکس شدید کم میاره و فریز میشه چند ثانیه (اگر نخواید دستی تغییرش بدید یا خود جدولی که استفاده میکنید آپشنشو نداشته باشه) ولی همونجور که توی داکیومنتهای زوستند مشاهده میکنید ، راه حل این موضوع وجود داره.
لینک:
https://lnkd.in/dU6T2ehe
#zustand #redux #react #js #programming
ولی اگر فقط به چشم استیت منیجر بخوایم بهش نگاه کنیم ، توی یک سناریوی خاص (که کم ممکنه براتون پیش بیاد) از زوستند (یا هر تلفط دیگهای که ازش میگن) کم میاره و اون وقتیه که دیتاهاتون مرتبا و احتمالا سرعت بالایی آپدیت میشه. مثلا وقتی که یک جدول کارگزاری ایجاد میکنید ممکنه توی یک ثانیه تا دهها آپدیت دریافت کنید. عملا ریداکس شدید کم میاره و فریز میشه چند ثانیه (اگر نخواید دستی تغییرش بدید یا خود جدولی که استفاده میکنید آپشنشو نداشته باشه) ولی همونجور که توی داکیومنتهای زوستند مشاهده میکنید ، راه حل این موضوع وجود داره.
لینک:
https://lnkd.in/dU6T2ehe
#zustand #redux #react #js #programming
از معجزات جاوااسکریپت تشریف دارن!
البته خیلی به خودش هم ربط نداره. بیشتر مرتبط با انکدینگش هست. توی امدیان قسمت استرینگ توضیحشو پیدا میکنید.
جهت تست:
[...'👩💻']
#js #es #javascript #programming
البته خیلی به خودش هم ربط نداره. بیشتر مرتبط با انکدینگش هست. توی امدیان قسمت استرینگ توضیحشو پیدا میکنید.
جهت تست:
[...'👩💻']
#js #es #javascript #programming
آیا از پارامتر دوم و سوم جیسون استرینگفای اطلاع داری؟
پارامتر دوم برای فیلتر یا جایگزینی و پارامتر سوم برای اسپیسگذاری هستش.
#js #javascript #programming
پارامتر دوم برای فیلتر یا جایگزینی و پارامتر سوم برای اسپیسگذاری هستش.
#js #javascript #programming
دوره مقدماتی و یک روزه ریکت
اطلاعات بیشتر در تصویر
(دوره نکست جیاس مقدماتی ، بعد از این دوره تشکیل خواهد شد)
آدرس کانال رقصنده با کد:
https://t.iss.one/+6qj3zj0u8bw5M2I0
#react #js #nextjs #programming #course #free
اطلاعات بیشتر در تصویر
(دوره نکست جیاس مقدماتی ، بعد از این دوره تشکیل خواهد شد)
آدرس کانال رقصنده با کد:
https://t.iss.one/+6qj3zj0u8bw5M2I0
#react #js #nextjs #programming #course #free
چهار کد جاوااسکریپت که دیر یا زود نیازت میشه :
-۱ تشخیص صحت کد ملی
۲- تشخیص صحت شناسه ملی افزاد حقوقی
۳- بررسی صحت شماره کارت بانکی
۴- بررسی صحت شماره موبایلهای ایران
پاورقی : مشابه این پست رو داخل لینکدین هم گذاشتم. ممنون میشم توی لینکدین repost کنید.
آدرس پست لینکدین:
https://www.linkedin.com/posts/alithecodeguy_js-javascript-es-activity-7173394244382932992-KWmj?utm_source=share&utm_medium=member_desktop
#js #javascript #es #programming
-۱ تشخیص صحت کد ملی
۲- تشخیص صحت شناسه ملی افزاد حقوقی
۳- بررسی صحت شماره کارت بانکی
۴- بررسی صحت شماره موبایلهای ایران
پاورقی : مشابه این پست رو داخل لینکدین هم گذاشتم. ممنون میشم توی لینکدین repost کنید.
آدرس پست لینکدین:
https://www.linkedin.com/posts/alithecodeguy_js-javascript-es-activity-7173394244382932992-KWmj?utm_source=share&utm_medium=member_desktop
#js #javascript #es #programming
توی فارسی برای تبلت ، کلمه رایانک مالشی رو انتخاب کردن. با همین فرمون ، این هم میشه دکمه مالشی برای ریکت 😁
فقط برای ایده گرفتن گذاشتمش. به سلیقه خودتون تغییرش بدید.
سورس روی گیتهاب:
https://github.com/alithecodeguy/react_swipe_button
مطالب بیشتر در کانال رقصنده با مد:
https://t.iss.one/+6qj3zj0u8bw5M2I0
#react #programming #css
فقط برای ایده گرفتن گذاشتمش. به سلیقه خودتون تغییرش بدید.
سورس روی گیتهاب:
https://github.com/alithecodeguy/react_swipe_button
مطالب بیشتر در کانال رقصنده با مد:
https://t.iss.one/+6qj3zj0u8bw5M2I0
#react #programming #css
۱۰۰ کانسپت اصلی جاوااسکریپت در ۱۲ دقیقه که برای یادگیری کاملشون حداقل به یکی دو سال مطالعه و کار عملی نیاز دارید.
https://www.youtube.com/watch?v=lkIFF4maKMU
پیشنهاد میکنم ببینید.
https://www.youtube.com/watch?v=lkIFF4maKMU
پیشنهاد میکنم ببینید.
YouTube
100+ JavaScript Concepts you Need to Know
The ultimate 10 minute JavaScript course that quickly breaks down over 100 key concepts every web developer should know. Learn the basics of JS and start building apps on the web, mobile, desktop, and more.
#javascript #programming #code
🚨 BLACK FRIDAY…
#javascript #programming #code
🚨 BLACK FRIDAY…