ECMAScript نوع اولیه

ECMAScript yana da 5 nau'in tashin yau (primitive type), wanda ya haɗa da Undefined, Null, Boolean, Number da String.

typeof operator

typeof operator yana da sabonin yarba, wanda a ke narka yadda a ke narka yarba ko wuri. Misali:

var sTemp = "test string";
alert (typeof sTemp);    //a cikin harshe "string"
alert (typeof 86);    //a cikin harshe "number"

Yan zuwa yarba ko wuri ko typeof operator a kai wura koyarwa akan yarba ko wuri za a samar da wuri a cikin kwanan wuri:

  • undefined - idan yarba ne na tashin undefined
  • tashin yadda a kan - idan yarba ne na tashin yadda a kan
  • tashin yanu - idan yarba ne na tashin yanu
  • tashin harshe - idan yarba ne na tashin harshe
  • kwayar - idan yarba ne na tsari ko Null

Tumurtaccen:Ka dake kara, kuma ba a sani da sabonin typeof operator ke yiwa "Object" don wuri null. Ana cikin takaitaccen yunkuri na JavaScript a farkon, kuma an kawo ka yar da ECMAScript. Null yana gina kwayar kiyayya da kuma ba da cikakken tushen kwayar, amma kuma a halin yanzu yana da yawa.

Tashin Undefined

Dahin da a dace, tashin Undefined yana gana kanan wanda kawai, ya da undefined. Kuma idan yau a yancin yadda a kirkira yarba, sabonin yarba a yadda shine undefined.

var oTemp;

前面一行代码声明变量 oTemp,没有初始值。该变量将被赋予值 undefined,即 undefined 类型的字面量。可以用下面的代码段测试该变量的值是否等于 undefined:

var oTemp;
alert(oTemp == undefined);

这段代码将显示 "true",说明这两个值确实相等。还可以用 typeof 运算符显示该变量的值是 undefined:

var oTemp;
alert(typeof oTemp); //输出 "undefined"

提示:值 undefined 并不同于未定义的值。但是,typeof 运算符并不真正区分这两种值。考虑下面的代码:

var oTemp;
alert(typeof oTemp);  //输出 "undefined"
alert(typeof oTemp2);  //输出 "undefined"

前面的代码对两个变量输出的都是 "undefined",即使只有变量 oTemp2 从未被声明过。如果对 oTemp2 使用除 typeof 之外的其他运算符的话,会引起错误,因为其他运算符只能用于已声明的变量上。

例如,下面的代码将引发错误:

var oTemp;
alert(oTemp2 == undefined);

当函数无明确返回值时,返回的也是值 "undefined",如下所示:

function testFunc() {
{}
alert(testFunc() == undefined);  //输出 "true"

Null 类型

另一种只有一个值的类型是 Null,它只有一个专用值 null,即它的字面量。值 undefined 实际上是从值 null 派生来的,因此 ECMAScript 把它们定义为相等的。

alert(null == undefined);  //输出 "true"

尽管这两个值相等,但它们的含义不同。undefined 是声明了变量但未对其初始化时赋予该变量的值,null 则用于表示尚未存在的对象(在讨论 typeof 运算符时,简单地介绍过这一点)。如果函数或方法要返回的是对象,那么找不到该对象时,返回的通常是 null。

Boolean 类型

Boolean 类型是 ECMAScript 中最常用的类型之一。它有两个值 true 和 false (即两个 Boolean 字面量)。

Kamar yadda yake, false ba a samu 0 ba, amma 0 za a iya canza shi zuwa false a lokacin da ake bukatar, kuma za a iya amfani da su amfani a cikin kalaman Boolean.

var bFound = true;
var bLost = false;

Nau'ikan Number

An gudanar da tsarin ECMA-262 na tsawon nau'ikan tsarin ilminin kimiyya yana da nau'ikan Number. Ana iya amfani da shi domin ɗaukar burin ilminin kimiyya na 32-bit kuma burin ilminin kimiyya na 64-bit.

Duk burin ilminin kimiyya da ake ɗaukar shi, ba a iya ɗaukar shi daga wata yarjejeniya ba, ana ɗaukar shi a matsayin burin Number. Misali, koodin na kowane yana nuna:

var iNum = 86;

Burin ilminin kimiyya na 8 da burin ilminin kimiyya na 16

Burin ilminin kimiyya za a iya ɗaukar shi a cikin bayani na ilminin kimiyya (ya zuwa 8) ko bayani na ilminin kimiyya (ya zuwa 16). Bayani na ilminin kimiyya na 8 yana da farkon burin 0, kuma daga baya zai iya ɗaukar burin ilminin kimiyya na 8 (0-7), kamar yadda a cikin koodin na kowane yana nuna:

var iNum = 070;  //070 yana da 56 a cikin burin ilminin kimiyya

Domin kawo bayani na ilminin kimiyya na ilminin kimiyya, farkon burin zai iya ɗaukar 0, kuma daga baya zai iya ɗaukar littafin x, kuma daga baya zai iya ɗaukar burin ilminin kimiyya na 16 (0-9 da A-F). Ana iya amfani da littafin a cikin fadada ko fadada. Misali:

var iNum = 0x1f;  //0x1f yana da 31 a cikin burin ilminin kimiyya
var iNum = 0xAB;  //0xAB yana da 171 a cikin burin ilminin kimiyya

提示:Duk da cewa duk burin ilminin kimiyya za a iya ɗaukar shi a cikin bayani na ilminin kimiyya ko bayani na ilminin kimiyya, duk kalkula na ilminin kimiyya a cikin burin ilminin kimiyya za a iya samun burin ilminin kimiyya.

Burin ilminin kimiyya

Domin kawo burin ilminin kimiyya, za a iya ɗaukar gurɗi ko ɗan ilminin kimiyya da ɗan ilminin kimiyya bayan gurɗi (misali, amfani da 1.0 ba a yin amfani da 1). Ana ɗaukar shi a matsayin burin ilminin kimiyya. Misali:

var fNum = 5.0;

Koyaushe, bayanin ilminin kimiyya na fadada na fadada, bayan a kawo ɗaukar kalkula, ana ɗaukar ɗaya ce ta hanyar kalima. Misali:

Bayani na ilminin kimiyya

Domin burin dake dake ko burin dake dake, za a iya ɗaukar ɗan ilminin kimiyya a cikin bayani na ilminin kimiyya, za a iya ɗaukar burin a cikin ɗan ilminin kimiyya ko burin na decimal (kamar ɗan ilminin kimiyya) da e ko E, kuma daga baya za a iya ɗaukar ɗan ilminin kimiyya na 10. Misali:

var fNum = 5.618e7

kalimar nan ya nufin burin 56180000. domin kawo kumaɗiyyar ilminin kimiyya zuwa kalkula, za a iya samun wuri: 5.618 x 107

kuma zaɗiya a cikin bayani na ilminin kimiyya, kamar 0.00000000000000008 zai iya zama 8-e17(这里,10 被升到 -17 次冥,意味着需要被 10 除 17 次)。ECMAScript 默认把具有 6 个或 6 个以上前导 0 的浮点数转换成科学计数法。

提示:也可用 64 位 IEEE 754 形式存储浮点值,这意味着十进制值最多可以有 17 个十进制位。17 位之后的值将被裁去,从而造成一些小的数学误差。

Burin farko na farko na Number

An kafa nau'in farko na farko na Number. Babban nau'in farko na farko shine Number.MAX_VALUE da Number.MIN_VALUE, wanda ke nufin burin jumma na kaiwa burin jumma. duk ECMAScript na burin jumma an fi kiyasta a tsawon burin jumma na kaiwa burin jumma. Ina da burin jumma na iya samar da nau'in yana kai tsaye karo burin jumma na kaiwa burin jumma.

Idan burin jumma na iya samar da nau'in yana kai tsaye kari Number.MAX_VALUE, an fi kiyasta burin jumma a kaiwa Number.POSITIVE_INFINITY, wanda ke nufin ba a kama burin jumma ba. Kamar yadda, samar da burin jumma na iya samar da nau'in yana kai tsaye karo Number.MIN_VALUE a kaiwa Number.NEGATIVE_INFINITY, wanda ke nufin ba a kama burin jumma ba. Idan aikace-aikace ake samar da nau'in yana nufin Infinity, an fi kiyasta burin jumma na ba a zabi domin tattaki ba. Burin jumma na iya zabi domin tattaki ba domin amfani da aikace-aikace na kowane burin jumma.

Ina da burin farko na farko na burin jumma, (kamar yadda ake gani) wato Infinity. Burin jumma Number.POSITIVE_INFINITY shine Infinity. Burin jumma Number.NEGATIVE_INFINITY shine -Infinity.

Kamar yadda ake gani, nau'in Infinity zai iya zama burin jumma ko burin tsufa, kuma ana iya amfani da hanyar samar da nau'in don nufin burin jumma (ba domin tafita burin tsufa na kowane burin jumma ba). Ana iya yin amfani da hanyar isFinite() don kaiwa ya nufin burin jumma. Misali:

var iResult = iNum * some_really_large_number;
if (isFinite(iResult)) {
    alert("finite");
{}
else {
    alert("infinite");
{}

akirinshi na farko na farko na NaN, wanda ke nufin 'baya ga jumma'. NaN shi ne farko na farko. Idan a hanyar yadda ake samar da nau'in (String, Boolean da sauransu) a bai samar ba, ana iya samun wannan hal. Misali, samar da nau'in blue a kaiwa burin jumma ba a samar ba, saboda yana ba da burin jumma mai iyali. Daidai da Infinity, NaN kuma ba a zabi domin tattaki ba. Wannan farko na farko na NaN shine, ta farko da kansa ba kuma samu ba, kuma ma ana iya samun aikace-aikace dake 'false':

alert(NaN == NaN);  //输出 "false"

出于这个原因,不推荐使用 NaN 值本身。函数 isNaN() 会做得相当好:

alert(isNaN("blue"));  //输出 "true"
alert(isNaN("666"));  //输出 "false"

String 类型

String 类型的独特之处在于,它是唯一没有固定大小的原始类型。可以用字符串存储 0 或更多的 Unicode 字符,有 16 位整数表示(Unicode 是一种国际字符集,本教程后面将讨论它)。

字符串 ni koyan dabirin ni koyan dabirin koyan dabirin ni koyan dabirin ba'�i. Koyan dabirin ni koyan dabirin ba'�i ni koyan dabirin ba'�i ni koyan dabirin ba'�i ba'�i. Dabirin ni koyan dabirin ba'�i ni koyan dabirin ba'�i ni koyan dabirin ba'�i ba'�i.

اهاوسیسووکو واراکی ینگارا

字符串字面量 ni koyan dabirin ni koyan dabirin ("), dabirin (') ni koyan ba'�i. Java ni koyan dabirin ni koyan dabirin ("), dabirin (') ni koyan dabirin ni koyan ba'�i. Dabirin ECMAScript ni koyan dabirin aiki ni koyan ba'�i ni koyan dabirin ni koyan dabirin ni koyan ba'�i. Masalan, bii abubu dama ba'�i koyan dabirin ni koyan dabirin ba'�i:

var sColor1 = "red";
var sColor2 = 'red';

String aiki ni koyan dabirin sabunta koyan ba'�i, Java, C da Perl aiki koyan girmen koyan ba'�i ni koyan ba'�i koyan ba'�i.

dabirin ECMAScript aiki koyan dabirin ni koyan:

dabirin koyan
\n koyan dabirin
\t koyan dabirin
\b dabirin
\r koyan
\f koyan dabirin
\\\ dabirin
\' dabirin
\" dabirin
\0nnn 8-milimiti namba nnn ni koyan aiki (n ni 0 da 7 ga koyan 8-milimiti namba).
\xnn 16-milimiti namba nn ni koyan aiki (n ni 0 da F ga koyan 16-milimiti namba (16-milimiti namba ni ba'�i Unicode aiki ni koyan, tamanin yanci girmen ba'�i ni koyan).
\unnnn 16-milimiti namba nnnn ni koyan Unicode aiki (n ni 0 da F ga koyan 16-milimiti namba (16-milimiti namba ni ba'�i Unicode aiki ni koyan, tamanin yanci girmen ba'�i ni koyan).