عملگر double not (!!)

در حوزه برنامه نویسی، عملگرها ابزارهایی هستند که به ما اجازه می دهند تا عملیات روی متغیرها و مقادیر انجام دهیم. یکی از این اپراتورها که اغلب توسعه دهندگان را غافلگیر می کند، عملگر double not است (!!
). این مقاله به این می پردازد که عملگر double not چیست، چه زمانی و چرا باید از آن استفاده کرد و چه زمانی از آن اجتناب کرد. ما همچنین نمونه هایی را در هر دو زبان PHP و جاوا اسکریپت، دو زبانی که این اپراتور می تواند مفید باشد، بررسی خواهیم کرد.
Double Not Operator چیست؟
در هر دو PHP و جاوا اسکریپت (و بسیاری از زبان های دیگر)، !
نماد منطقی است NOT
اپراتور. صدق عملوندی که به دنبال آن است را نفی می کند. اگر مقدار درست باشد (یعنی در یک زمینه بولی به درستی ارزیابی شود)، !
آن را به نادرست و بالعکس تبدیل می کند.
ما در مقاله اپراتور double not (!!) به طور گسترده به آنچه در PHP است پرداخته ایم.
عملگر double not (!!
) به سادگی است !
اپراتور دوبار استفاده شده اولین !
عملوند را به نقطه مقابل بولی خود تبدیل می کند و دومی !
آن را به عقب برمی گرداند. نتیجه مقداری است که صریحاً درست یا نادرست است.
بیایید به یک مثال در جاوا اسکریپت نگاه کنیم:
let truthyValue = 'Hello, world!';
console.log(!!truthyValue); // Outputs: true
let falsyValue = '';
console.log(!!falsyValue); // Outputs: false
و همینطور در PHP:
$truthyValue = 'Hello, world!';
var_dump(!!$truthyValue); // Outputs: bool(true)
$falsyValue = '';
var_dump(!!$falsyValue); // Outputs: bool(false)
چرا و زمان استفاده از Double Not Operator
عملگر double not راهی سریع و مختصر برای تبدیل هر مقدار به معادل بولی آن است. این به ویژه در شرایطی مفید است که شما نیاز به اطمینان از درستی یا نادرستی یک متغیر و نه ارزش واقعی آن دارید.
در جاوا اسکریپت، به دلیل تایپ آزاد زبان و به دلیل اینکه مقادیر مختلف را می توان “نادرست” در نظر گرفت، می تواند مفید باشد (به عنوان مثال، null
، undefined
، 0
، NaN
، رشته خالی و غیره). استفاده كردن !!
می تواند به عادی سازی این مقادیر به یک بولی مناسب کمک کند.
در اینجا یک مثال است که در آن !!
می تواند به طور موثر در جاوا اسکریپت استفاده شود:
let user = {
name: 'John Doe',
// isAdmin property is missing
};
if (!!user.isAdmin) {
console.log('User is an admin');
} else {
console.log('User is not an admin');
}
در این مورد، به دلیل isAdmin
گم شده است، !!user.isAdmin
بر خواهد گشت false
، و “کاربر مدیر نیست” چاپ خواهد شد.
در PHP، !!
عملگر همچنین میتواند در بررسیهای شرطی مفید باشد، بهویژه زمانی که با مقادیری سروکار داریم که میتوانند مانند «نادرست» در نظر گرفته شوند 0
، null
، false
، رشته خالی و غیره
$isAdmin = 0;
if (!!$isAdmin) {
echo 'User is an admin';
} else {
echo 'User is not an admin';
}
چه زمانی از اپراتور Double Not اجتناب شود
در حالی که !!
می تواند مفید باشد، همچنین می تواند خواندن کد را دشوارتر کند، به خصوص برای کسانی که با این اپراتور آشنا نیستند. این به اندازه استفاده از روش هایی مانند صریح نیست Boolean()
در جاوا اسکریپت یا (bool)
ریخته گری در PHP که به همین نتیجه می رسند.
در اینجا نمونه های معادل بدون !!
:
جاوا اسکریپت:
let truthyValue = 'Hello, world!';
console.log(Boolean(truthyValue)); // Outputs: true
PHP:
$truthyValue = 'Hello, world!';
var_dump((bool)$truthyValue); // Outputs: bool(true)
اگر خوانایی و وضوح در اولویت هستند، یا اگر با توسعه دهندگانی کار می کنید که ممکن است با آن آشنا نباشند !!
، شاید بهتر باشد از این روش های صریح تر برای تبدیل مقادیر به آنها استفاده کنید boolean
معادل.
عملگر double not (!!
) یک راه سریع، اگر تا حدودی رمزآلود، برای تبدیل هر مقدار به یک بولی در زبان هایی مانند جاوا اسکریپت و PHP است. در حالی که این یک ترفند هوشمندانه است و می تواند مفید باشد، به یاد داشته باشید که ممکن است به قیمت خوانایی تمام شود. هنگام تصمیم گیری در مورد استفاده از آن در کد خود، از قضاوت خود استفاده کنید و آشنایی تیم خود با چنین نکات ظریفی را در نظر بگیرید.
اگر یک توسعه دهنده باتجربه هستید و قبلاً با اپراتور double not مواجه شده اید، ممکن است به گواهینامه اصول PHP و گواهینامه اصول جاوا اسکریپت علاقه مند شوید.