ECMAScript လက်ဆုံး ပုံစံ
- အရေးတကြီး စား ECMAScript ပုံစံ ပြောင်းလဲ
- နောက်လိုက် စား တစ်ခုခု ပြောင်းလဲသူ
အမျိုးအစား သည် ပုံစံ ဟု ခေါ်ဝေါ်ကြသည်။
ဒီ စာပေအသင်း သည် အက်စ်မာစ်စကာတန် အခြေခံ အမျိုးအစား အများစု ကို ဆွေးနွေးပါလိမ့်မည်။
အမျိုးအစား
အမျိုးအစား သည် ပုံစံ ဟု ခေါ်ဝေါ်ကြသည်။ ထို့ကြောင့် အမှတ်အသား ကို အခြေခံအားဖြင့် အရာဝတ္တဇုံးချုပ် ကို ပြုပြင်ကြသည်။
ဒီ စာပေအသင်း သည် အက်စ်မာစ်စကာတန် အခြေခံ အမျိုးအစား အများစု ကို ဆွေးနွေးပါလိမ့်မည်။
ယခုမှစ၍ အခြား အခြေခံ အမျိုးအစား နှင့် အတူ ပတ်သက်သည့် အမျိုးအစား ကို အခြေခံအားဖြင့် ဆွေးနွေးပါလိမ့်မည်။
注意:တိုင်းစွဲမှုတူကြောင်းအားဖြင့် အက်စ်မာစ်စကာတန်စကား သည် အမှတ်အသား မပါဘဲ။ အမှန်တကယ်အားဖြင့် အက်စ်မာ-၂၆၂ တွင် “အမှတ်အသား” ဟူသော စကား မပါဘဲ။ ECMAScript သည် “အရာဝတ္တဇုံးချုပ်” ဟု အသုံးပြုသည်၊ အကြောင်းအရာအားဖြင့် အခြား ပရိုဂရမ် ပညာရှင် နှင့် အတူ အသုံးပြုသည်။
提示:本教程将使用术语“对象”。
对象是由 new 运算符加上要实例化的对象的名字创建的。例如,下面的代码创建 Object 对象的实例:
var o = new Object();
这种语法与 Java 语言的相似,不过当有不止一个参数时,ECMAScript 要求使用括号。如果没有参数,如以下代码所示,括号可以省略:
var o = new Object;
注意:尽管括号不是必需的,但是为了避免混乱,最好使用括号。
提示:我们会在对象基础这一章中更深入地探讨对象及其行为。
这一节的重点是具有等价的原始类型的引用类型。
Object 对象
Object 对象自身用处不大,不过在了解其他类之前,还是应该了解它。因为 ECMAScript 中的 Object 对象与 Java 中的 java.lang.Object 相似,ECMAScript 中的所有对象都由这个对象继承而来,Object 对象中的所有属性和方法都会出现在其他对象中,所以理解了 Object 对象,就可以更好地理解其他对象。
Object 对象具有下列属性:
- constructor
- 对创建对象的函数的引用(指针)。对于 Object 对象,该指针指向原始的 Object() 函数。
- Prototype
- 对该对象的对象原型的引用。对于所有的对象,它默认返回 Object 对象的一个实例。
Object အရာ သည် အခြား အမျိုးမျိုး အမှုန်းများ ပါဝင်သည်။
- hasOwnProperty(property)
- အရာ၏ အခြေခံ အခြေအနေ ကို အယူအဆ ပြောဆိုရန် အခြေခံ အခြေအနေ ကို အယူအဆ ပြောဆိုရန် အခြေခံ အခြေအနေ ကို အယူအဆ ပြောဆိုရန်
- IsPrototypeOf(object)
- အရာ၏ အခြေခံ အခြေအနေ ကို အယူအဆ ပြောဆိုရန် အခြေခံ အခြေအနေ ကို အယူအဆ ပြောဆိုရန် အခြေခံ အခြေအနေ ကို အယူအဆ ပြောဆိုရန်
- PropertyIsEnumerable
- အခြား အရာ၏ အခြေခံ အခြေအနေ ကို အယူအဆ ပြောဆိုရန် အခြေခံ အခြေအနေ အတွက် အယူအဆ ပြောဆိုရန် အခြေခံ အခြေအနေ အတွက် အယူအဆ ပြောဆိုရန် အခြေခံ အခြေအနေ အတွက် အယူအဆ ပြောဆိုရန်
- ToString
- အရာ၏ အပြင်းအထန် အစားထိုးခြင်း ပြန်လည်ပေးပြီးပြီ။ Object အရာ အတွက် အေဇာ-၂၆၂ မှ အရာအသုံးပြုမှု အသုံးပြုသော အရာ အပြင်းအထန် အသုံးပြုမှု အား အသုံးပြုမှု မပြင်ဆင်ဘဲ ရှိသေးသည်။ အခြား ECMAScript အသုံးပြုမှု အပြင်းအထန် အသုံးပြုမှု အခြားအခြား ဖြစ်နိုင်ပါသည်။
- ValueOf
- အရာအရှိသော အပြင်းအထန် အသုံးပြုရသော အရာကို ပြန်လည်ပေးပြီးပြီ။ အများစု အရာများ အတွက် ဒါ သည် ပြန်လည်ပေးသော အသုံးပြုမှု သည် ToString() အသုံးပြုသော အသုံးပြုမှု နှင့် ညီမျှပါသည်။
注释:上面列出的每种属性和方法都会被其他对象覆盖。
Boolean 对象
Boolean 对象是 Boolean 原始类型的引用类型。
要创建 Boolean 对象,只需要传递 Boolean 值作为参数:
var oBooleanObject = new Boolean(true);
Boolean 对象将覆盖 Object 对象的 ValueOf() 方法,返回原始值,即 true 和 false。ToString() 方法也会被覆盖,返回字符串 "true" 或 "false"。
遗憾的是,在 ECMAScript 中很少使用 Boolean 对象,即使使用,也不易理解。
问题通常出现在 Boolean 表达式中使用 Boolean 对象时。例如:
var oFalseObject = new Boolean(false); var bResult = oFalseObject && true; //输出 true
在这段代码中,用 false 值创建 Boolean 对象。然后用这个值与原始值 true 进行 AND 操作。在 Boolean 运算中,false 和 true 进行 AND 操作的结果是 false。不过,在这行代码中,计算的是 oFalseObject,而不是它的值 false。
正如前面讨论过的,在 Boolean 表达式中,所有对象都会被自动转换为 true,所以 oFalseObject 的值是 true。然后 true 再与 true 进行 AND 操作,结果为 true。
注意:
参阅
Boolean အပေါ်အား အခြေခံ အခွင့်အရေး နှင့် ပတ်သက်၍ ပိုမိုသိရှိသင့်သည်ကို သိကြောင်း သိရသည်။ သို့သော်လည်း Boolean အပေါ်အား အခြေခံ အခွင့်အရေး အသုံးပြုရန် အကောင်းဆုံး ဖြစ်သည်။ အဲ့ဒါ ကြောင်း ဆွေးနွေးခဲ့သေးသည်ကို အန္တရာယ်ကင်းရခြင်း ကို ခံစားပါ။ ဂျပ်တိုး ဘော်လံစ် အပြည့်အဝင် စာရင်း。
Number အပေါ်အား
သင် အကြောင်းပြုလျှင် သိရသည်ကဲ့သို့ Number အပေါ်အား အခြေခံ ပုံစံ အမှတ်သား အပေါ်အား ပြန်လည်ဖြစ်သည်။ Number အပေါ်အား ကို ဖန်တီးရန် အောက်ပါ ကြော်ငြာများ အသုံးပြုပါ။
var oNumberObject = new Number(68);
သင်သည် ယခုအသုံးပြုနေသေးသော အခန်း၏ အစကန်းတွင် အထူး ပုံစံ (ဥပမာ Number.MAX_VALUE) ကို ဆွေးနွေးခဲ့သေးသည်ကို သင်သည် သိကြောင်း သိရသည်။ အထူး ပုံစံ အားလုံး သည် Number အပေါ်အား အခြေခံ ပုံစံ အခြေခံ အခွင့်အရေး ဖြစ်သည်။
ကိုင်းဖြူးလုပ်ရန် စက္ကူးလုပ်ရာတွင် Number အပေါ်အား အရေးသား ပုံစံ ကို သုံးပြီးပြီးနောက် valueOf() စက္ကူး အသုံးပြုပါ။
var iNumber = oNumberObject.valueOf();
当然,Number 类也有 toString() 方法,在讨论类型转换的小节中已经详细讨论过该方法。
除了从 Object 对象继承的标准方法外,Number 对象还有几个处理数值的专用方法。
toFixed() 方法
toFixed() 方法返回的是具有指定位数小数的数字的字符串表示。例如:
var oNumberObject = new Number(68); alert(oNumberObject.toFixed(2)); //输出 "68.00"
在这里,toFixed() 方法的参数是 2,说明应该显示两位小数。该方法返回 "68.00",空的字符串位由 0 来补充。对于处理货币的应用程序,该方法非常有用。toFixed() 方法能表示具有 0 到 20 位小数的数字,超过这个范围的值会引发错误。
အခြား ပုံစံ တစ် ပုံစံ ဖြစ်သည်။ toFixed() စနစ် သည် အချက်အလက် ကို သင့်လျော်သော အရောက် အမှတ် အပေါ် အခြေခံ၍ အမှတ် ကို ထုတ်ပေးသည်။ ဥပမာ။
toExponential() စနစ်
toFixed() စနစ် နှင့် ညီမျှသော်လည်း toExponential() စနစ် သည် အချက်အလက် ကို အစိတ်အပိုင်း ပုံစံ ဖြင့် ထုတ်ပေးသည်။ အချက်အလက် အချက်အလက် ကို သင့်လျော်သော အချက်အလက် အမှတ် ကို သတ်မှတ်ထား သည်။ ဥပမာ။
var oNumberObject = new Number(68); alert(oNumberObject.toExponential(1)); // ထုတ်သွင်း "6.8e+1"
အဆိုပါ ကုလင်အချက် သည် "6.8e+1" ဖြစ်သည်၊ အခြား အကြောင်းအရာ တွင် ဖော်ပြခဲ့သည်၊ ထိုအမှတ် 6.8x10 ကို ကို ကူညီပေးသည်。1သို့သော် အမှတ် ကို သင့်လျော်သော ပုံစံ ကို သိနိုင် မဟုတ် လျှင် ဘယ်လိုဖြစ်သလဲဆိုတာ? အခြား toPrecision() စနစ် ကို အသုံးပြု နိုင်ပါသည်。
toPrecision() စနစ်
toPrecision() စနစ် သည် အမှတ် ကို အရေးပါ ပုံစံ အပေါ် အခြေခံ၍ အမှတ် ကို သတ်မှတ်ထား သော ပုံစံ သို့မဟုတ် အစိတ်အပိုင်း ပုံစံ ကို ထုတ်ပေးသည်။ သို့သော် အမှတ် ကို ကို ကို အသုံးပြု သော အရောက် အမှတ် အချက်အလက် သည် ပါဝင်သည်။ ဥပမာ။
var oNumberObject = new Number(68); alert(oNumberObject.toPrecision(1)); // ထုတ်သွင်း "7e+1"
အဆိုပါ ကုလင်အချက် သည် အမှတ် 68 ကို တစ် ကြောင်း အမှတ် ဖြင့် ကို ကို ကူညီပေးသည်၊ ရလဒ် "7e+1" ဖြစ်သည်၊ အခြား ပုံစံ အနေဖြင့် 70 ဖြစ်သည်။ ဖြစ်သော်လည်း toPrecision() စနစ် သည် အမှတ် ကို ကျသော ပုံစံ ကို ပြန်လည်သိမ်းသည်။ သို့သော် 2 ကြောင်း အမှတ် ဖြင့် 68 ကို ကူညီပေးသည်ကို လုပ်ဆောင် နိုင်ပါသည်:
var oNumberObject = new Number(68); alert(oNumberObject.toPrecision(2)); // ထုတ်သွင်း "68"
မည်မှတ်မှီလည်း၊ ထုတ်သွင်းသော အမှတ် "68" ဖြစ်သည်၊ ထိုအမှတ်သည် အချက်အလက်ဖြစ်သည်။ သို့သော် သင့်လျော်သော နေရာများ အမှတ်ပေါင်း ပိုကြား လျှင် ဘယ်လိုဖြစ်သလဲဆိုတာ?
var oNumberObject = new Number(68); alert(oNumberObject.toPrecision(3)); //输出 "68.0"
在这种情况下,toPrecision(3) 等价于 toFixed(1),输出的是 "68.0"。
toFixed()、toExponential() 和 toPrecision() 方法都会进行舍入操作,以便用正确的小数位数正确地表示一个数。
提示:与 Boolean 对象相似,Number 对象也很重要,不过应该少用这种对象,以避免潜在的问题。只要可能,都使用数字的原始表示法。
参阅
如需更多有关 Number 对象的信息,请访问 ဘော်လံစ် နည်းပါး အပြည့်အဝင် စာရင်း。
String 对象
String 对象是 String 原始类型的对象表示法,它是以下方式创建的:
var oStringObject = new String("hello world");
String 对象的 valueOf() 方法和 toString() 方法都会返回 String 类型的原始值:
alert(oStringObject.valueOf() == oStringObject.toString()); //输出 "true"
如果运行这段代码,输出是 "true",说明这些值真的相等。
注释:String အပိုင်းအစား သည် ECMAScript တွင် ပိုမိုကြီးသော အရင်းအမြစ် အပိုင်းအစား တစ်ခု ဖြစ်သည်။ ထို့ပြင်၊ အဆိုပါ အချိုးချိုး က String အမျိုးအစား အခြေခံ အရာများ သာ သတိပြုထားသည်။ အဆိုပါ အခြေခံ အရာများ အပြီးတွင် အဆိုပါ စနစ်များ အခြေခံ အရာများ ကို ကြည့်ရှုရန် သို့မဟုတ် အဆိုပါ စနစ်များ ကို ကြည့်ရှုရန် သုံးစွဲနိုင်သော စာအုပ်များ ကို ကြည့်ရှုနိုင်ပါ။ ဘော်လံစ် စကား အပြည့်အဝင် စာရင်း。
length အချက်အလက်
String အပိုင်းအစား က length အချက်အလက် ရှိသည်။ အဆိုပါ အချက်အလက် သည် စကားလုံး တွင် စကားလုံး အချိုးချိုး ဖြစ်သည်။
var oStringObject = new String("hello world"); alert(oStringObject.length); //ပြန်သတင်း "11"
အဆိုပါ နေရာမှ ပြန်သတင်းသည် "11" ဖြစ်သည်။ ထို့ကြောင်းနှင့် "hello world" တွင် စကားလုံး အချိုးချိုး ကို အချင်းချင်း အချိုးချိုး အဖြစ် ခွဲခြားထားသည်။ အဆိုပါ စကားလုံး တွင် အချင်းချင်း အချင်းချင်း ပါဝင်သော အချင်းချင်း ပါဝင်သော စကားလုံး ကို အချင်းချင်း အချင်းချင်း အချင်းချင်း ပါဝင်သော စကားလုံး အဖြစ် ခွဲခြားထားသည်။
charAt() နှင့် charCodeAt() စနစ်
String အပိုင်းအစား က အများပြားသော စနစ်များ ရှိသည်။
ပထမပေါင်းတွင်၊ charAt() စနစ် နှင့် charCodeAt() စနစ် သည် စကားလုံး တွင် အချင်းချင်း ပါဝင်သော စကားလုံး ကို ကူညီသော စနစ်ဖြစ်သည်။ အဆိုပါ စနစ်များ သည် သုံးပုံး တစ်ခု ပါဝင်သည်။
charAt() စနစ် က အချင်းချင်း သတ်မှတ်ထားသော စကားလုံး အချိုးချိုး ပါဝင်သော စကားလုံး ပြန်သတင်းသည်။
var oStringObject = new String("hello world"); alert(oStringObject.charAt(1)); //ပြန်သတင်း "e"
在字符串 "hello world" 中,位置 1 处的字符是 "e"。在“ECMAScript 原始类型”这一节中我们讲过,第一个字符的位置是 0,第二个字符的位置是 1,依此类推。因此,调用 charAt(1) 返回的是 "e"。
如果想得到的不是字符,而是字符代码,那么可以调用 charCodeAt() 方法:
var oStringObject = new String("hello world"); alert(oStringObject.charCodeAt(1)); //输出 "101"
这个例子输出 "101",即小写字母 "e" 的字符代码。
concat() 方法
接下来是 concat() 方法,用于把一个或多个字符串连接到 String 对象的原始值上。该方法返回的是 String 原始值,保持原始的 String 对象不变:
var oStringObject = new String("hello "); var sResult = oStringObject.concat("world"); alert(sResult); //输出 "hello world" alert(oStringObject); //输出 "hello "
在上面这段代码中,调用 concat() 方法返回的是 "hello world",而 String 对象存放的仍然是 "hello "。出于这种原因,较常见的是用加号(+)连接字符串,因为这种形式从逻辑上表明了真正的行为:
var oStringObject = new String("hello "); var sResult = oStringObject + "world"; alert(sResult); //输出 "hello world" alert(oStringObject); //输出 "hello "
indexOf() 和 lastIndexOf() 方法
迄今为止,已讨论过连接字符串的方法,访问字符串中的单个字符的方法。不过如果无法确定在某个字符串中是否确实存在一个字符,应该调用什么方法呢?这时,可调用 indexOf() 和 lastIndexOf() 方法。
indexOf() 和 lastIndexOf() 方法返回的都是指定的子串在另一个字符串中的位置,如果没有找不到子串,则返回 -1。
这两个方法的不同之处在于,indexOf() 方法是从字符串的开头(位置 0)开始检索字符串,而 lastIndexOf() 方法则是从字符串的结尾开始检索子串。例如:
var oStringObject = new String("hello world!"); alert(oStringObject.indexOf("o")); 输出 "4" alert(oStringObject.lastIndexOf("o")); 输出 "7"
在这里,第一个 "o" 字符串出现在位置 4,即 "hello" 中的 "o";最后一个 "o" 出现在位置 7,即 "world" 中的 "o"。如果该字符串中只有一个 "o" 字符串,那么 indexOf() 和 lastIndexOf() 方法返回的位置相同。
localeCompare() 方法
下一个方法是 localeCompare(),对字符串进行排序。该方法有一个参数 - 要进行比较的字符串,返回的是下列三个值之一:
- 如果 String 对象按照字母顺序排在参数中的字符串之前,返回负数。
- 如果 String 对象等于参数中的字符串,返回 0
- 如果 String 对象按照字母顺序排在参数中的字符串之后,返回正数。
注释:如果返回负数,那么最常见的是 -1,不过真正返回的是由实现决定的。如果返回正数,那么同样的,最常见的是 1,不过真正返回的是由实现决定的。
示例如下:
var oStringObject = new String("yellow"); alert(oStringObject.localeCompare("brick")); //输出 "1" alert(oStringObject.localeCompare("yellow")); //输出 "0" alert(oStringObject.localeCompare("zoo")); //输出 "-1"
在这段代码中,字符串 "yellow" 与 3 个值进行了对比,即 "brick"、"yellow" 和 "zoo"。由于按照字母顺序排列,"yellow" 位于 "brick" 之后,所以 localeCompare() 返回 1;"yellow" 等于 "yellow",所以 localeCompare() 返回 0;"zoo" 位于 "yellow" 之后,localeCompare() 返回 -1。再强调一次,由于返回的值是由实现决定的,所以最好以下面的方式调用 localeCompare() 方法:
var oStringObject1 = new String("yellow"); var oStringObject2 = new String("brick"); var iResult = oStringObject1.localeCompare(oStringObject2); if(iResult < 0) { alert(oStringObject1 + " comes before " + oStringObject2); } else if (iResult > 0) { alert(oStringObject1 + " comes after " + oStringObject2); } else { alert("The two strings are equal"); }
采用这种结构,可以确保这段代码在所有实现中都能正确运行。
localeCompare() 方法的独特之处在于,实现所处的区域(locale,兼指国家/地区和语言)确切说明了这种方法运行的方式。在美国,英语是 ECMAScript 实现的标准语言,localeCompare() 是区分大小写的,大写字母在字母顺序上排在小写字母之后。不过,在其他区域,情况可能并非如此。
slice() 和 substring()
ECMAScript 提供了两种方法从子串创建字符串值,即 slice() 和 substring()。这两种方法返回的都是要处理的字符串的子串,都接受一个或两个参数。第一个参数是要获取的子串的起始位置,第二个参数(如果使用的话)是要获取子串终止前的位置(也就是说,获取终止位置处的字符不包括在返回的值内)。如果省略第二个参数,终止位就默认为字符串的长度。
သင်္ဂြိုလ် concat() စနစ်နဲ့အတူ ပုံနှိပ် slice() နဲ့ substring() စနစ်များသည် String အပိုင်းအစားကို ပြောင်းလဲမည် မဟုတ်ပါ။ သူတို့သည် အခြေခံ String အပိုင်းအစားကို သာသွင်းပြီး String အပိုင်းအစားကို အစားထိုးမည် မဟုတ်ပါ။
var oStringObject = new String("hello world"); alert(oStringObject.slice("3")); //ပ�န်လည်ပေး "lo world" alert(oStringObject.substring("3")); //ပြန်လည်ပေး "lo world" alert(oStringObject.slice("3", "7")); //ပြန်လည်ပေး "lo w" alert(oStringObject.substring("3", "7")); //ပြန်လည်ပေး "lo w"
အဆိုပါ အကျိုးသတ္တုများတွင် ပြင်းပြောင်း() နှင့် substring() စနစ်များ၏ အသုံးပြုပုံနှင့် ပြန်လည်ပေးပုံလည်း အတူတူပါ၍ ပြန်လည်ပေးသည်။ အကြင်းအဝေး 3 သာ ရှိသော် ပြင်းပြောင်း() နှင့် substring() စနစ်များ ပြန်လည်ပေးသည်မှာ "lo world" ဖြစ်သည်။ "hello" တွင် ဒုတိယ "l" အချိန် 3 ဖြစ်သည်။ အကြင်းအဝေး 3 နှင့် 7 ရှိသော် ပြင်းပြောင်း() နှင့် substring() စနစ်များ ပြန်လည်ပေးသည်မှာ "lo w" ဖြစ်သည်။ "world" တွင် အချိန် 7 ဖြစ်သော အကြင်းအဝေး "o" ကို ပြန်လည်ပေးသည်၊ ထို့ကြောင်းဖြင့် အကြင်းအဝေး 7 မှ ပြန်လည်ပေးသည်။
ဘာကြောင့် အသုံးပြုနိုင်သော အသုံးပြုများ နှစ်ခုရှိသလား။ အမှန်မှာ ထိုနှစ်ခုလည်း အသုံးပြုများ မတူဘဲ အကြင်းအဝေး အားဖြင့် အသုံးပြုပုံက အချိန်ကတည်းက ပြောင်းလဲကြသည်။
အနည်းငယ်အားဖြင့် ပြင်းပြောင်း() စနစ်က စကားလုံး၏ အကွာအဝေးကို ပြင်းပြောင်းပြီး အကြင်းအဝေး() စနစ်က အကြင်းအဝေးကို 0 အား အသုံးပြုသည်(အချိန်ကတည်းက အကြင်းအဝေးကို ခွင့်မပြုသည်)။ ဥပမာပါသည်မှာ:
var oStringObject = new String("hello world"); alert(oStringObject.slice("-3")); //ပြန်လည်ပေး "rld" alert(oStringObject.substring("-3")); //ပြန်လည်ပေး "hello world" alert(oStringObject.slice("3, -4")); //ပြန်လည်ပေး "lo w" alert(oStringObject.substring("3, -4")); //ပြန်လည်ပေး "hel"
ထို့ကြောင်းဖြင့် ပြင်းပြောင်း() နှင့် substring() စနစ်များ၏ အဓိက အမျိုးအစားကို တွေ့နိုင်ပါသည်။
သာ -3 ပြင်းအားဖြင့် ပြင်းပြောင်း() က
同样,使用参数 3 和 -4 时,差别也很明显。slice() 将被转换成 slice(3, 7),与前面的例子相同,返回 "lo w"。而 substring() 方法则将两个参数解释为 substring(3, 0),实际上即 substring(0, 3),因为 substring() 总把较小的数字作为起始位,较大的数字作为终止位。因此,substring("3, -4") 返回的是 "hel"。这里的最后一行代码用来说明如何使用这些方法。
toLowerCase()、toLocaleLowerCase()、toUpperCase() နှင့် toLocaleUpperCase()
နောက်ဆုံး ကျွန်တော်တို့ ဆွေးနွေးသည် အက္ခရာ အမြင့်အတွက် သဘောတူ ပြုလုပ်သည် အကြောင်းကို ဖော်ပြသည်။ အက္ခရာ အမြင့်အတွက် သဘောတူ ပြုလုပ်သည် အမျိုးသား စကားရပ် ဖြစ်သည်။
- toLowerCase()
- toLocaleLowerCase()
- toUpperCase()
- toLocaleUpperCase()
အမည်မှ သိရတဲ့ အသုံးပြုမှုများ ဖြစ်၍ ပထမ နှစ်ခု သည် အကျယ်အဝန်း နောက်ဆုံး သဘောတူ ပြုလုပ်သည် အမျိုးသား စကားရပ် အသုံးပြုပါ။
toLowerCase() နှင့် toUpperCase() စကားရပ်များ အစြောင်းအရာ ဖြစ်ပါ၍ သတ်မှတ်ထားသော နေရာတွင် သဘောတူ ပြုလုပ်သည် (java.lang.String အတူ)။
toLocaleLowerCase() နှင့် toLocaleUpperCase() စကားရပ်များ သတ်မှတ်ထားသော နေရာတွင် သဘောတူ ပြုလုပ်သည် (localeCompare() စကားရပ်များနှင့် အတူ)။ အများစုဆုံး နေရာများတွင် နေရာမှာ သဘောတူ ပြုလုပ်သည် နှင့် နေရာမှာ သဘောတူ ပြုလုပ်သည် အတူ အသုံးပြုသည်။ သို့သော်လည်း အချို့ ဘာသာစကား (ဥပမာ တူရကီ ဘာသာ) မှာ Unicode အက္ခရာ အမြင့်အတွက် သဘောတူ ပြုလုပ်သည် အသုံးပြုသည် အမျိုးသား နည်းလမ်းကို အသုံးပြုသည်။ အထူးသဖြင့် နေရာမှာ သဘောတူ ပြုလုပ်သည် အသုံးပြုပါ
var oStringObject = new String("Hello World"); alert(oStringObject.toLocaleUpperCase()); // ပြန်ပေးသည် "HELLO WORLD" alert(oStringObject.toUpperCase()); // ပြန်ပေးသည် "HELLO WORLD" alert(oStringObject.toLocaleLowerCase()); // ပြန်ပေးသည် "hello world" alert(oStringObject.toLowerCase()); //输出 "hello world"
这段代码中,toUpperCase() 和 toLocaleUpperCase() 输出的都是 "HELLO WORLD",toLowerCase() 和 toLocaleLowerCase() 输出的都是 "hello world"。一般来说,如果不知道在以哪种编码运行一种语言,则使用区域特定的方法比较安全。
提示:记住,String 对象的所有属性和方法都可应用于 String 原始值上,因为它们是伪对象。
instanceof 运算符
在使用 typeof 运算符时采用引用类型存储值会出现一个问题,无论引用的是什么类型的对象,它都返回 "object"。ECMAScript 引入了另一个 Java 运算符 instanceof 来解决这个问题。
instanceof 运算符与 typeof 运算符相似,用于识别正在处理的对象的类型。与 typeof 方法不同的是,instanceof 方法要求开发者明确地确认对象为某特定类型。例如:
var oStringObject = new String("hello world"); alert(oStringObject instanceof String); //ပြန်လည် ပေးသည် "true"
အဆိုပါ ကိုယ်စားပြုသူ oStringObject က ဘော်လံစ် စကား အပြည့်အဝင် အမှုန် ဖြစ်ပါသည်။ ထိုကြောင့် အကျိုးဆက် သည် "true" ဖြစ်ပါသည်။ typeof စနစ် နှင့် နည်းပါး မလွတ်လပ် မဟုတ် သော်လည်း,typeof စနစ် သည် "object" ပြန်လည် ပေးသော အခါတွင်,instanceof စနစ် သည် အသုံးပြုကြသည်。
- အရေးတကြီး စား ECMAScript ပုံစံ ပြောင်းလဲ
- နောက်လိုက် စား တစ်ခုခု ပြောင်းလဲသူ