ECMAScript Reference Types

Yankuna na kira ana kira su class.

Duniyar tutar za a gudanar da bincike kan yankuna na kira da aka yi wa ECMAScript.

Yankuna na kira

Yankuna na kira ana kira su class, ta hanyar wanda zai iya kawo cikin hanyar da za a kaiwa da abin da za a kaiwa da shi ne object.

Duniyar tutar za a gudanar da bincike kan yankuna na kira da aka yi wa ECMAScript.

Daga baya, za a gudanar da bincike kan rarrabuwa da yankuna da suka haɗa da yankuna da aka gudanar da bincike kan su.

Rarrabu:Idanin kafin, ECMAScript ba yafi kowa ba kawo class. Idanin kafin, kuma yafi kowa, cikin ECMA-262, sunan 'class' ba a yi kowa. ECMAScript ya bayyana 'kira na cikin', da kuma yafi kowa da kalmomin da suka dace da kwararrun kwararrun dake kwararrun kwararrun.

提示:Yanin ita ce tashe hanyan abin da zai iya koyarwa.

Abin da zai iya koyarwa yana da wanda zai iya koyarwa tare da muhawara new wanda zai iya koyarwa abin da zai iya koyarwa. Misali, abin da zai iya koyarwa na Object na abin da zai iya koyarwa yana samu tare da wanda zai iya koyarwa.

var o = new Object();

Wannan muhawara yana da wanda zai iya koyarwa tare da Java muhawara, amma idan abin zai iya koyarwa yana da wanda zai iya koyarwa, ECMAScript zai iya koyarwa tare da wanda zai iya koyarwa. Idan abin zai iya koyarwa yana da wanda zai iya koyarwa, kuma yana samu tare da wanda zai iya koyarwa.

var o = new Object;

Rarrabu:Ina da imani cewa abin da zai iya koyarwa yana da wanda zai iya koyarwa, amma domin a gani da wanda zai iya koyarwa, kuma yana da wanda zai iya koyarwa.

提示:Akan nuna abin da zai iya koyarwa a cikin abin da zai iya koyarwa na abin da zai iya koyarwa.

Karaminin ita ce abin da zai iya koyarwa tare da wanda zai iya koyarwa tare da wanda zai iya koyarwa.

Object na abin da zai iya koyarwa

Object na abin da zai iya koyarwa yana da wanda zai iya koyarwa tare da wanda zai iya koyarwa. Duk abin da zai iya koyarwa yana samu tare da Object na abin da zai iya koyarwa a cikin Java, java.lang.Object, duk abin da zai iya koyarwa a cikin ECMAScript yana iya koyarwa daga wannan abin. Saboda haka, kuma yana samu tare da wanda zai iya koyarwa abin da zai iya koyarwa tare da wanda zai iya koyarwa, kuma yana samu tare da wanda zai iya koyarwa abin da zai iya koyarwa. Kuma yana samu tare da wanda zai iya koyarwa, kuma yana samu tare da wanda zai iya koyarwa.

Object na abin da zai iya koyarwa yana da wanda zai iya koyarwa abin da zai iya koyarwa:

constructor
Tashe hanyan ce tsa kiyasta abin da zai iya koyarwa tare da abin da zai iya koyarwa wanda zai iya koyarwa. Wannan kuma yana samu tare da tashe hanyan Object na abin da zai iya koyarwa wanda zai iya koyarwa.
Prototype
Tashe hanyan ce tsa kiyasta abin da zai iya koyarwa tare da tashe hanyan abin da zai iya koyarwa. Wannan kuma yana samu tare da tashe hanyan Object na abin da zai iya koyarwa wanda zai iya koyarwa.

Object na abin da zai iya koyarwa wanda zai iya koyarwa wanda zai iya koyarwa tare da abin.

hasOwnProperty(property)
Yin tunanin abin zai iya da wanda zai iya koyarwa wanda zai iya koyarwa tare da wanda zai iya koyarwa. Daukakar yau kuma yana da wanda zai iya koyarwa tare da wanda zai iya koyarwa. (Misali, o.hasOwnProperty("name"))
IsPrototypeOf(object)
Yin tunanin abin zai iya zama prototai na abin na wasa.
PropertyIsEnumerable
Yin tunanin wanda zai iya koyarwa abin da zai iya koyarwa tare da koyarwa for...in.
ToString()
Tashe hanyan ce tsa kiyasta abin da zai kira tsa wanda zai cikin abin. Wannan kuma yana samu tare da Object, ECMA-262 ba zai bayyana wannan wanda ke nufin daidai da zai iya samu tare da sabon ECMAScript.
ValueOf()
Tashe hanyan wanda ce tsa zai jiyar ce kuma yau. Wannan kuma yana samu jumla ce ke da kama yana samu tare da koyarwa toString() a manyan abubuwan.

Tatsuniya:Kamar a baya a ɗanɗin, kowane ɗanɗin da kowane method suna da wayin da suke kawon.

Boolean object

Boolean object ce ɗanɗin na Boolean na rufe.

Don a ɗanɗin Boolean object, kiyi a yiɗin ɗanɗin na Boolean gaba ɗaya gaba ɗaya:

var oBooleanObject = new Boolean(true);

Boolean object ke kawon method ValueOf() na Object object, kuma kuma ke ɗanɗin ɗanɗin na true da false. Method ToString() kuma kuma ke kawon ɗanɗin na "true" da "false".

Alashe, a ECMAScript, kuma kuma ke cikin yawan ɗanɗin Boolean object, kuma kuma ke cikin yawan ɗanɗin, kuma kuma ke cikin yawan ɗanɗin.

Problem na ɗanɗin kawon Boolean object a ɗanɗin Boolean expression. Misali:

var oFalseObject = new Boolean(false);
var bResult = oFalseObject && true;	//kawon true

A ɗanɗin ɗanɗin ɗanɗin, ɗanɗin false ke a cikin Boolean object. Kuma ɗanɗin ɗanɗin yana da wayin AND tare da true, kuma kuma ke da wayin false. Amma a ɗanɗin ɗanɗin, a karkashin ɗanɗin oFalseObject, kuma kuma ke da wayin false.

Duba kamar a baya a ɗanɗin, a ɗanɗin Boolean, dukkanin ɗanɗin suna da wayin true, kuma oFalseObject ke da wayin true. Kuma true yana da wayin AND tare da true, kuma kuma ke da wayin true.

Rarrabu:Kamar a kawo cikin hankali, ka ɗanɗin Boolean object ke cikin ɗanɗin Boolean, amma kiyi a yiɗin ɗanɗin na Boolean don sauraro, kama da kawon hanyar da a baya a ƙasa ita ce.

参阅

Don ɗanɗin ɗanɗin kan Boolean object, kiyi a yiɗin: Kwamtarin kujerarun JavaScript Boolean

Number object

Duba kamar a kawo cikin hankali, Number object ce ɗanɗin na Number na rufe. Don a ɗanɗin Number, kiyi a yiɗin ɗanɗin:

var oNumberObject = new Number(68);

Ka a kawo cikin hankali, ɗanɗin Number da a baya a ƙasa ita ce Number object. Anzaɗa dukkanin ɗanɗin na Number suna da alamar static.

Lakar a girmek dake ɗanɗin na Number, kiyi a yiɗin ɗanɗin valueOf() method:

var iNumber = oNumberObject.valueOf();

بالطبع، لدالة Number أيضًا طريقة toString()، التي تم مناقشتها بشكل مفصل في فصل التحويلات النوعية.

بالإضافة إلى الطرق المعيارية التي تنقلها من جسم الـ Object، يحتوي جسم الـ Number على بعض الطرق المخصصة لمعالجة الأرقام.

دالة toFixed()

تقوم دالة toFixed() بتحويل العدد إلى شكل نصي يحتوي على عدد محدد من الأرقام العشرية. على سبيل المثال،

var oNumberObject = new Number(68);
alert(oNumberObject.toFixed(2));  //تنتج "68.00"

في هذا السياق، المعامل لدالة toFixed() هو 2، مما يعني أن يجب عرض اثنين من الأرقام العشرية. تقوم هذه الطريقة بتحويل العدد إلى شكل نصي يحتوي على عدد محدد من الأرقام العشرية. يتم تعويض الحروف المفقودة بـ 0. يعد هذا الطريقة مفيدة جدًا للعديد من التطبيقات المتعلقة بالمال. يمكن أن تعبر دالة toFixed() عن أرقام تحتوي على ما بين 0 إلى 20 من الأرقام العشرية، وتسبب القيم التي تتجاوز هذا النطاق في إصدار خطأ.

دالة toExponential()

دالة أخرى مرتبطة بتنسيق الأرقام هي toExponential()، وتقوم بتقديم شكل العدد بالشكل النسبي. على سبيل المثال،

مثل دالة toFixed()، لدالة toExponential() أيضًا معامل يحدد عدد أرقام النقاط العشرية. على سبيل المثال:

var oNumberObject = new Number(68);
alert(oNumberObject.toExponential(1));  //تنتج "6.8e+1"

نتيجة هذا الكود هي "6.8e+1"، كما تم شرحها من قبل، ويعني 6.8x101المشكلة هي، ماذا إذا لم يكن معروفًا أي شكل (شكل مسبق أو شكل نسبي) لتمثيل العدد؟ يمكن استخدام دالة toPrecision().

دالة toPrecision()

تقوم دالة toPrecision() بتحديد شكل العدد المحدد أو شكل النسبية بناءً على أكثر شكل معنى. لديها معامل واحد، وهو عدد الأرقام التي يتم استخدامها لتمثيل العدد (لا تشمل القوة). على سبيل المثال،

var oNumberObject = new Number(68);
alert(oNumberObject.toPrecision(1));  //تنتج "7e+1"

مهمة هذا الكود هي أن يستخدم رقمًا واحدًا لتقديم الرقم 68، والنتيجة هي "7e+1"، أي بتفسير آخر 70. بالتأكيد، ستقوم دالة toPrecision() بتحديد عدد الكسور العشرية.

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 对象的信息,请访问 Kwamtarin kujerarun JavaScript Number

String 对象

String 对象是 String 原始类型的对象表示法,它是以下方式创建的:

var oStringObject = new String("hello world");

String 对象的 valueOf() 方法和 toString() 方法都会返回 String 类型的原始值:

alert(oStringObject.valueOf() == oStringObject.toString());	//输出 "true"

如果运行这段代码,输出是 "true",说明这些值真的相等。

Tatsuniya:String 对象是 ECMAScript 中比较复杂的引用类型之一。同样,本节的重点只是 String 类的基本功能。更多的高级功能请阅读本教程相关的章节,或参阅 Kwamtarin kujerarun JavaScript String

length 属性

String 对象具有属性 length,它是字符串中的字符个数:

var oStringObject = new String("hello world");
alert(oStringObject.length);	//输出 "11"

这个例子输出的是 "11",即 "hello world" 中的字符个数。注意,即使字符串包含双字节的字符(与 ASCII 字符相对,ASCII 字符只占用一个字节),每个字符也只算一个字符。

charAt() 和 charCodeAt() 方法

String 对象还拥有大量的方法。

首先,两个方法 charAt() 和 charCodeAt() 访问的是字符串中的单个字符。这两个方法都有一个参数,即要操作的字符的位置。

charAt() 方法返回的是包含指定位置处的字符的字符串:

var oStringObject = new String("hello world");
alert(oStringObject.charAt(1));	//输出 "e"

a cikin lafin "salama adduni" da, character na tsa 1 ce ne "e". a cikin “ECMAScript na sabon rassa” ayyukan, ake gudanin ayyukan da ke aiki da character. amma idan ba a fahimci cewa yana da character, amma kuma a fahimci cewa yana da code na character, za a saba zartar da charCodeAt() method:

idin da ba a fahimci cewa yana da character, amma kuma a fahimci cewa yana da code na character, za a saba zartar da charCodeAt() method:

var oStringObject = new String("hello world");
alert(oStringObject.charCodeAt(1));	// kiyayya "101"

wannan shaidar ce "101", wanda shine code na character na kusa da "e". a cikin “ECMAScript na sabon rassa” ayyukan, ake gudanin ayyukan da ke aiki da character. amma idan ba a fahimci cewa yana da character, amma kuma a fahimci cewa yana da code na character, za a saba zartar da charCodeAt() method:

concat() method

sauye da concat() method ce gudanin da ke amfani da a yi lafin kuma a kewayar String na raw value. Method na wannan kewayar ce String na raw value, kuma yana daidaita kewayar String na farko:

var oStringObject = new String("salama ");
var sResult = oStringObject.concat("adduni");
alert(sResult);		// kiyayya "salama adduni"
alert(oStringObject);	// kiyayya "salama ",

a cikin wannan code, kewayar da concat() method ce gudanin ce "salama adduni", amma String object ce ke da "salama ". saboda wannan sabon, yana da kyau da a yi amfani da tsakanin kai a tsammanin da a yi amfani da kewayar:

var oStringObject = new String("salama ");
var sResult = oStringObject + "adduni";
alert(sResult);		// kiyayya "salama adduni"
alert(oStringObject);	// kiyayya "salama ",

indexOf() da lastIndexOf() method

Haka kai ce suna gudanin hawar da ke aiki da haɗin ɗaukar lafazin, da aiki da kira karin ɗaukar lafin a cikin lafin. Amma idan ba a yarda da cewa a cikin wani lafi a da cewa yana da character, kuma kuma za a saba zartar da method. a wannan lokacin, kuma za a saba zartar da indexOf() da lastIndexOf() method.

indexOf() da lastIndexOf() method ce kewayar na gudanin cewa a baiwar na kewayar na cewa, kuma cewa -1.

farkin kewayar da dama cewa indexOf() method ce gudanin (tasi 0) gurbi cewa lastIndexOf() method ce gudanin kuriya. Misali:

var oStringObject = new String("salama adduni!");
alert(oStringObject.indexOf("o"));		输出 "4"
alert(oStringObject.lastIndexOf("o"));	输出 "7"

A cikin hakan, takalum "o" na farko yana kusa da wuri 4, wanda ya haɗa da "hello" da "o"; takalum "o" na farko yana kusa da wuri 7, wanda ya haɗa da "world" da "o". Idan takalum yana da takalum "o" kanan, kuma methodin indexOf() da lastIndexOf() sun samar da wuri da yake kusa.

Methodin localeCompare()

Dakin na daya shine methodin localeCompare(), wanda yana kiyaye takalum. Wannan methodi yana da argun kansa - takalum ake gudanarwa, wanda ya samar da kowane kanan takalum daga cikin:

  • Idan takalum String yana kusa da takalum da ake gudanarwa a cikin abin da ke kusa, ana samar da alama mai tsaki.
  • Idan takalum String yana da kai tsaki da takalum da ake gudanarwa, ana samar da 0
  • Idan takalum String yana kusa da takalum da ake gudanarwa a cikin abin da ke kusa, ana samar da alama mai kai tsaki.

Tatsuniya:Idan an samu alama mai tsaki, ana iya samu -1, amma alama a cikin samar da take da hauwaya. Idan an samu alama mai kai tsaki, ana iya samu 1, amma alama a cikin samar da take da hauwaya.

Amfani da hakan yana kusa:

var oStringObject = new String("yellow");
alert(oStringObject.localeCompare("brick"));		//samu "1"
alert(oStringObject.localeCompare("yellow"));		//samu "0"
alert(oStringObject.localeCompare("zoo"));		//samu "-1"

A cikin wannan kudade, takalum "yellow" yana kuma faruwa da takwas, wanda ya haɗa da "brick", "yellow" da "zoo". Saboda ana kiyaye sunan kama a cikin abin da ke kusa, "yellow" yana kusa da "brick", kuma methodin localeCompare() ya samar 1; "yellow" yana da kai "yellow", kuma methodin localeCompare() ya samar 0; "zoo" yana kusa da "yellow", kuma methodin localeCompare() ya samar -1. Daga baya, tabbatar da cewa, saboda alama a cikin samar da taken, kuma kwarewa yana da hauwaya, kuma kwarewa ya haɗa da cewa methodin localeCompare() ya samar 1:

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"));		//a kawo "lo world"
alert(oStringObject.substring("3"));		//a kawo "lo world"
alert(oStringObject.slice("3", "7"));		//a kawo "lo w"
alert(oStringObject.substring("3", "7"));	//a kawo "lo w"

Ina da, gado gado slice() da substring() za a gado gado gado, gado gado ko gado gado. Yannan gado gado gado za kana gado gado gado, kai kana na kai 3, gado gado za kana gado gado gado a kawo "lo world", wato "hello" ko gado gado na kai "l" za a gado gado na kai 3. Yannan gado gado gado za kana gado gado gado, kai kana na kai "3" da "7", gado gado za kana gado gado gado a kawo "lo w" ("world" ko gado gado na kai "o" za a gado gado na kai 7, amma za a gado gado kai).

Kamfanin kana za kana gado gado gado? Ina da, yannan gado gado gado za kana gado gado gado, amma kai kana na kai -3, wato gado gado wato za a gado gado gado. Yannan gado gado gado za kana gado gado gado.

Donni kai kana na kai -3, methodo slice() za a kawo gado so so ko gado kuma, methodo substring() za a gado 0 (akai, yannan za a kawo gado kai). Misali:

var oStringObject = new String("hello world");
alert(oStringObject.slice("-3"));		//a kawo "rld"
alert(oStringObject.substring("-3"));	//a kawo "hello world"
alert(oStringObject.slice("3, -4"));		//a kawo "lo w"
alert(oStringObject.substring("3, -4"));	//a kawo "hel"

Kuma ana za kawo yin dandamawa tsa slice() da substring() method.

Yana tana kai kana -3, slice() ya a kawo "rld", substring() za a kawo "hello world". Yannan yau, donni "hello world" ko kawo, slice("-3") za a dacewa slice("8"), amma substring("-3") za a dacewa substring("0").

同样,使用参数 3 和 -4 时,差别也很明显。slice() 将被转换成 slice(3, 7),与前面的例子相同,返回 "lo w"。而 substring() 方法则将两个参数解释为 substring(3, 0),实际上即 substring(0, 3),因为 substring() 总把较小的数字作为起始位,较大的数字作为终止位。因此,substring("3, -4") 返回的是 "hel"。这里的最后一行代码用来说明如何使用这些方法。

toLowerCase()、toLocaleLowerCase()、toUpperCase() 和 toLocaleUpperCase()

最后一套要讨论的方法涉及大小写转换。有 4 种方法用于执行大小写转换,即

  • 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 是否为 String 对象的实例?”oStringObject 的确是 String 对象的实例,因此结果是 "true"。尽管不像 typeof 方法那样灵活,但是在 typeof 方法返回 "object" 的情况下,instanceof 方法还是很有用的。