شما اینجا هستید

جاوا اسکریپت دارای هر دو نوع مقایسه محض و تبدیل نوع میباشد.

مقایسه محض (مانند ===) فقط هنگامی درست است که عملوندها از یک نوع باشند. عملگر مقایسه ای که خیلی مورد استفاده قرار میگیرد (مانند ==) قبل از اینکه عملوندها را با هم مقایسه کند، آنها را به یک نوع تبدیل میکند.

رشته ها بر اساس ترتیب واژه های استاندارد با استفاده از مقادیر یونیکد با هم مقایسه میشوند.

ویژگی های مقایسه :

  • دو رشته در صورتیکه دارای ترتیب یکسان از کاراکترها، طول یکسان و جایگاه متناظر باشند باهم به طور محض مساوی هستند.
  • دو عدد در صورتیکه دارای مقدار یکسانی باشند به طور محض با هم مساوی هستند. NaN با هیچ چیزی مساوی نیست. صفر مثبت و منفی با یکدیگر مساوی هستند.
  • دو عملگر منطقی در صورتیکه هر دو دارای مقادیر مثبت باشند یا هر دو دارای مقادیر منفی باشند، با هم یکسان هستند.
  • دو شی متفاوت چه با استفاده از مقایسه محض و چه تبدیل نوع، هرگز با هم مساوی نمیشوند.
  • عبارت مقایسه اشیا فقط زمانی true میشود که هملوندها دارای شی مرجع یکسان باشند.
  • نوع های Undefined و Null با خودشان به صورت محض مساوی هستند و با یکدیگر به صورت تبدیل نوع یکسان میباشند.

عملگرهای تساوی

مساوی (==)

اگر عملوندها از یک نوع نباشند، عملگر مساوی آنها را تبدیل میکند و سپس مقایسه را انجام میدهد.

سینتکس عملگر مساوی

x == y

 

مثالها

 

1   ==  1        // true

"1"  ==  1        // true

1   == '1'       // true

0   == false     // true

0   == null      // false


0   == undefined // false

null  == undefined // true

 

نامساوی (=!)

 

اگر عملگرها با هم مساوی نباشند عملگر نامساوی مقدار true را بر میگرداند. اگر عملوندها از یک نوع نباشند، جاوا اسکریپت برای انجام مقایسه آنها را به نوع مناسب تبدیل میکند.

سینتکس عملگر نا مساوی

x != y

مثالها

1 !=   2     // true

1 !=  "1"    // false

1 !=  '1'    // false

1 !=  true   // false

0 !=  false  // false

 

هویت یا مساوی محض

 

عملگر هویت هنگامی که عملگرها به طور محض مساوی هستند مقدار true را برمیگرداند.

سینتکس عملگر مساوی محض

x === y

 

مثالها

 

3 === 3   // true

3 === '3' // false

 

نامساوی محض (==!)

 

عملگر نامساوی محض هنگامی دو عملگر از یک نوع باشند اما با هم مساوی نباشند مقدار true را برمیگرداند.

سینتکس عملگر نا مساوی محض

x === y

 

مثالها

 

3 !== '3' // true

4 !== 3   // true

 

عملگرهای رابطه ای

 

عملگر بزرگتر (<)

عملگر بزرگتر هنگامی مقدار درست را برمیگرداند که عملوند چپ بزرگتر از عملوند راست باشد.

سینتکس عملگر بزرگتر

x > y

مثال

4 > 3 // true

عملگر بزرگتر مساوی (=<)

عملگر بزرگتر یا مساوی هنگامی که عملوند سمت چپ بزرگتر یا مساوی عملوند سمت راست باشد مقدار true را برمیگرداند.

سینتکس عملگر بزرگتر یا مساوی

x >= y

 

مثالها

 

4 >= 3 // true

3 >= 3 // true

 

عملگر کوچکتر (>)

 

عملگر کوچکتر هنگامی که عملوند سمت چپ کوچکتر از عملوند سمت راست باشد مقدار true را برمیگرداند.

سینتکس عملگر کوچکتر

x < y

مثالها

3 < 4 // true

عملگر کوچکتر مساوی (=>)

عملگر کوچکتر یا مساوی هنگامی که عملوند چپ کوچکتر یا مساوی عملوند راست باشد مقدار true را برمیگرداند.

سینتکس عملگر کوچکتر یا مساوی

x <= y

 

مثالها

 

3 <= 4 // true

 

استفاده از عملگرهای تساوی

 

عملگرهای تساوی استاندارد (== و =!) برای مقایسه دو عملوند از الگوریتم مقایسه تساوی استفاده میکنند. اگر عملوندها از دو نوع مختلف باشند، این الگوریتم پیش از اینکه مقایسه ای انجام بدهد اقدام به تبدیل آنها به یک نوع میکند. به عنوان نمونه عبارت 5 == '5' را در نظر بگیرید در این عبارت رشته ای که در سمت راست قرار دارد قبل از انجام مقایسه به عدد تبدیل میشود.

عملگرهای تساوی محض (=== و ==!) از الگوریتم مقایسه تساوی محض استفاده میکنند و برای اعمال مقایسه تساوی بودن بر روی عملوندهای هم نوع بکار میروند. اگر عملوندها دارای نوع متفاوت از هم باشند، نتیجه مقایسه 5 ==! '5' همیشه false است.

هنگامی که با استفاده از تبدیل نوع کار مقایسه را انجام میدهیم، جاوااسکریپت نوع رشته، عدد ومنطقی را به روش زیر تبدیل میکند:

  • هنگامی که یک عدد و یک رشته مقایسه میشوند، رشته به یک مقدار عددی تبدیل میگردد.
  • اگر یکی از عملوندها منطقی باشد، عملوند منطقی (Boolean) اگر true باشد به 1 و اگر false باشد به 0 تبدیل میگردد.

افزودن دیدگاه جدید

دیدگاه

  • تگ‌های HTML مجاز: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • خطوط و پاراگراف‌ها بطور خودکار اعمال می‌شوند.
  • نشانی صفحه‌ها وب و پست الکترونیک بصورت خودکار به پیوند تبدیل می‌شوند.

Plain text

  • تگ‌های HTML مجاز نیستند.
  • نشانی صفحه‌ها وب و پست الکترونیک بصورت خودکار به پیوند تبدیل می‌شوند.
  • خطوط و پاراگراف‌ها بطور خودکار اعمال می‌شوند.
كد امنيتي
این پرسش برای جلوگیری از ارسال اسپمهای اتوماتیک است.