ECMAScript အမှန် အကြောင်းအရာ

一元运算符只有一个参数,即要操作的对象或值。它们是 ECMAScript 中最简单的运算符。

delete

delete 运算符删除对以前定义的对象属性或方法的引用。例如:

var o = new Object;
o.name = "David";
alert(o.name);	//输出 "David"
delete o.name;
alert(o.name);	//输出 "undefined"

在这个例子中,删除了 name 属性,意味着强制解除对它的引用,将其设置为 undefined(即创建的未初始化的变量的值)。

delete 运算符不能删除开发者未定义的属性和方法。例如,下面的代码将引发错误:

delete o.toString;

အချက်အလက်သည် toString ဘက်က အချက်အလက် မပြုလိုတဲ့ အချက်အလက် ကို ကာကွယ်ရန် အသုံးပြုသည်။ ဤအချက်အလက်သည် အချက်အလက် ကို ကို ကာကွယ်သည်။ သို့သော် ပုံစံအရ အချက်အလက် ကို ကာကွယ်ရန် အသုံးပြုသည်။

void

void ဘက်က အပြန်တင် အလိုရှိ အနည်းငယ် undefined ကို ပြန်တင်သည်။ ဤ ဘက်က အသုံးပြုသည် အချက်အလက် အပြန်တင် မပြုလိုတဲ့ အချက်အလက် ကို ကာကွယ်ရန် အသုံးပြုသည်။ ဥပမာ။

<a href="javascript:window.open('about:blank')">Click me</a>

ဤအချက်အလက်ကို HTML စာကြမ်း ပါသည်။ အချက်အလက် ပါးကို စွပ်စွဲ အသိမ်းကို ဖြန်းချိန် လုပ်ချင်ရာ၌ ဖော်ပြလား။TIY

ဤအချက်အလက်သည် window.open() ဘက်က အချက်အလက် အပြန်တင်သည်။ ထို အချက်အလက် သည် ပြုပြင်ထားသော အချက်အလက် အပြန်တင်သည်။

ဤအချက်အလက်ကို ရှေးမှ ရှိသောအခါ အလွယ်တကူ ရှိသည်။ ဤအချက်အလက်ကို အသုံးပြုလား။

<a href="javascript:void(window.open('about:blank'))">Click me</a>

ဤအချက်အလက်သည် window.open() ခေါ်ဆိုင် ကို undefined ကို ပြန်တင်သည်။ အခြား အကျိုးသက်ရှိ အပြည့်အဝါ မပြုပါ။

အကြောင်းအရာသတိပြုပါ။ မရင်းဆိုသော အပြန်တင် ဘွ数လုပ်ငန်း အားလုံး သည် undefined ကို အပြန်တင်သည်。

အရှေ့လိုက်/အရှေ့လျှော့ အစီအစဉ်သတ်မှတ်သူ

C (နှင့် Java) ကို ခေါ်ခွဲထားသော အထိပ်လိုက် အစီအစဉ်သတ်မှတ်သူ နှစ်ခု ဖြစ်သည်。

အရှေ့လိုက် တိုးလှည့်သတ်မှတ်သူ ဟူသည် အနည်းငယ် 1 ကို တိုးပေးသည်။ ပုံစံသည် အလိုရှိ အချက်အလက် အနည်းငယ် ချီးထုတ်ထားခြင်း ဖြစ်သည် (++)။

var iNum = 10;
++iNum;

ပထမအချက်အလက်ပါးတွင်၊ iNum သည် 11 ထိ တိုးခဲ့သည်။ သို့သော် အခြေခံအစီအစဉ် သည် ++iNum; နှင့် အတူ အမျိုးအစား ပြတ်သတ်သည်။

var iNum = 10;
iNum = iNum + 1;

လည်းပဲ၊ အရှေ့လိုက် လျှော့လှည့်သတ်မှတ်သူ သည် အလိုရှိ အနည်းငယ် 1 ကို လျှော့ချသည်။ ပုံစံသည် အလိုရှိ အချက်အလက် အနည်းငယ် ချီးထုတ်ထားခြင်း ဖြစ်သည် (--)။

var iNum = 10;
--iNum;

အချက်အလက်ပါးတွင်၊ iNum သည် 9 ထိ လျှော့ချသည်။

အစားထိုးလိုက်ပြီး အထိပ်လိုက် အစီအစဉ်သတ်မှတ်သူများ ကို အသုံးပြုလား။ အချက်အလက်တစ်ခု ကြည့်လေ့ရှိပါ။

var iNum = 10;
--iNum;
alert(iNum);	//ပြောကြားပါ "9"
alert(--iNum);	//输出 "8"
alert(iNum);	//ပြောကြားပါ "8"

第二行代码对 iNum 进行减量运算,第三行代码显示的结果是("9")。第四行代码又对 iNum 进行减量运算,不过这次前减量运算和输出操作出现在同一个语句中,显示的结果是 "8"。为了证明已实现了所有的减量操作,第五行代码又输出一次"8"。

在算术表达式中,前增量和前减量运算符的优先级是相同的,因此要按照从左到右的顺序计算之。例如:

var iNum1 = 2;
var iNum2 = 20;
var iNum3 = --iNum1 + ++iNum2;	//ကို  "22"
var iNum4 = iNum1 + iNum2;		//ကို  "22"

အထဲတွင် ရှိသော အခြေခံ အချက်အလက် တွင်၊ iNum3 22 ဖြစ်သည်၊ အမှုအသုံးမှု 1 + 21 ကို အရာကို တိုးပြီး လျှော့ပြီး ပြီး ဒါ ကဲ့သို့ ဖြစ်သည်။ ဒါ ကဲ့သို့ ဖြစ်သည်။

နောက်ကျသော တိုးချဲ့/လျှော့ချဲ့ အမှုအသုံးမှု

နှင့် C(နှင့် Java)ထဲကို အသုံးပြုသော နှစ်ခုသော အမှုအသုံးမှု ဖြစ်သည်၊ နှစ်ခုသော နောက်ကျသော တိုးချဲ့မှု နှင့် နောက်ကျသော လျှော့ချဲ့မှု ဖြစ်သည်။

နှင့် နောက်ကျသော တိုးချဲ့မှု အမှုအသုံးမှု သည် အရာ 1 ကို တိုးပြီး ပြီး အသုံးပြုသည်။ အသုံးပြုသည် အနက် နောက်ကျသော တိုးချဲ့မှု အမှုအသုံးမှု ဖြစ်သည်။

var iNum = 10;
iNum++;

အကြောင်းကြားချက် မပြတ် ဘဲ၊ နောက်ကျသော လျှော့ချဲ့မှု အမှုအသုံးမှု သည် အရာ 1 ကို လျှော့ပြီး ပြီး အသုံးပြုသည်။ အသုံးပြုသည် အနက် နောက်ကျသော လျှော့ချဲ့မှု အမှုအသုံးမှု ဖြစ်သည်။

var iNum = 10;
iNum--;

ဒါ ကဲ့သို့ ဖြစ်သည်၊ ဒါ ကဲ့သို့ ဖြစ်သည်။

နှင့် ပြားသွား အမှုအသုံးမှု အဆင့်အတန်း မဟုတ် ဘဲ၊ နောက်ကျသော အမှုအသုံးမှု သည် ပါဝင်သော အမှုအသုံးမှု ကို အရာကို တိုးချဲ့ပြီး လျှော့ပြီး ပြီးနောက် တိုးချဲ့မှု နှင့် လျှော့ချဲ့မှု ပြုလုပ်သည်။ ဥပမာပါ:

var iNum = 10;
iNum--;
alert(iNum);	//ပြောကြားပါ "9"
alert(iNum--);	//ပြောကြားပါ "9"
alert(iNum);	//ပြောကြားပါ "8"

ပုံစံအမှုအသုံးမှုများ တွင် နောက်ကျသော တိုးချဲ့မှု နှင့် နောက်ကျသော လျှော့ချဲ့မှု အဆင့်အတန်း အတူတူ ဖြစ်သည်၊ အရာကို ဆိုခဲ့တာ ကဲ့သို့ ဆိုခဲ့တာ ကဲ့သို့ အရာကို အရာကို တိုးချဲ့ပြီး လျှော့ပြီး တွင် ပြောကြားပါ။ ဥပမာပါ:

ပုံစံအမှုအသုံးမှုများ တွင်၊ နောက်ကျသော တိုးချဲ့မှု နှင့် နောက်ကျသော လျှော့ချဲ့မှု အဆင့်အတန်း အတူတူ ဖြစ်သည်၊ အရာကို ဆိုခဲ့တာ ကဲ့သို့ ဆိုခဲ့တာ ကဲ့သို့ အရာကို အရာကို တိုးချဲ့ပြီး လျှော့ပြီး တွင် ပြောကြားပါ။ ဥပမာပါ:

var iNum1 = 2;
var iNum2 = 20;
var iNum3 = iNum1-- + iNum2++;	//ကို  "22"
var iNum4 = iNum1 + iNum2;		//ကို  "22"

在前面的代码中,iNum3 等于 22,因为表达式要计算的是 2 + 20。变量 iNum4 也等于 22,不过它计算的是 1 + 21,因为增量和减量运算都在给 iNum3 赋值后才发生。

一元加法和一元减法

大多数人都熟悉一元加法和一元减法,它们在 ECMAScript 中的用法与您高中数学中学到的用法相同。

一元加法本质上对数字无任何影响:

var iNum = 20;
iNum = +iNum;
alert(iNum);	//输出 "20"

这段代码对数字 20 应用了一元加法,返回的还是 20。

尽管一元加法对数字无作用,但对字符串却有有趣的效果,会把字符串转换成数字。

var sNum = "20";
alert(typeof sNum);	//输出 "string"
var iNum = +sNum;
alert(typeof iNum);	//输出 "number"

这段代码把字符串 "20" 转换成真正的数字。当一元加法运算符对字符串进行操作时,它计算字符串的方式与 parseInt() 相似,主要的不同是只有对以 "0x" 开头的字符串(表示十六进制数字),一元运算符才能把它转换成十进制的值。因此,用一元加法转换 "010",得到的总是 10,而 "0xB" 将被转换成 11。

另一方面,一元减法就是对数值求负(例如把 20 转换成 -20):

var iNum = 20;
iNum = -iNum;
alert(iNum);	//输出 "-20"

与一元加法运算符相似,一元减法运算符也会把字符串转换成近似的数字,此外还会对该值求负。例如:

var sNum = "20";
alert(typeof sNum);	//输出 "string"
var iNum = -sNum;
alert(iNum);		//输出 "-20"
alert(typeof iNum);	//输出 "number"

在上面的代码中,一元减法运算符将把字符串 "-20" 转换成 -20(一元减法运算符对十六进制和十进制的处理方式与一元加法运算符相似,只是它还会对该值求负)。