ECMAScript మూల రకాలు
- ముందస్తు పేజీ ECMAScript విలువలు
- తదుపరి పేజీ ECMAScript రకాల మార్పిడి
ECMAScript 有 5 种原始类型(primitive type),即 Undefined、Null、Boolean、Number 和 String。
typeof 运算符
typeof 运算符有一个参数,即要检查的变量或值。例如:
var sTemp = "test string"; alert (typeof sTemp); //输出 "string" alert (typeof 86); //输出 "number"
对变量或值调用 typeof 运算符将返回下列值之一:
- undefined - 如果变量是 Undefined 类型的
- boolean - 如果变量是 Boolean 类型的
- number - 如果变量是 Number 类型的
- string - 如果变量是 String 类型的
- object - 如果变量是一种引用类型或 Null 类型的
注释:您也许会问,为什么 typeof 运算符对于 null 值会返回 "Object"。这实际上是 JavaScript 最初实现中的一个错误,然后被 ECMAScript 沿用了。现在,null 被认为是对象的占位符,从而解释了这一矛盾,但从技术上来说,它仍然是原始值。
Undefined 类型
如前所述,Undefined 类型只有一个值,即 undefined。当声明的变量未初始化时,该变量的默认值是 undefined。
var oTemp;
ముంది లైన్ వ్యవస్థాపకి oTemp ని అభివృద్ధి చేసింది, కానీ మొదటి విలువ ఇచ్చలేదు. ఈ వ్యవస్థాపకిని undefined రకం విలువను ఇచ్చబడుతుంది, అనగా undefined లాంచింగ్. ఈ వ్యవస్థాపకి విలువ సమానంగా undefined అని పరీక్షించడానికి క్రింది కోడ్ వినియోగించవచ్చు:
var oTemp; alert(oTemp == undefined);
ఈ కోడ్ ప్రదర్శిస్తుంది "true", అనగా ఈ రెండు విలువలు నిజంగా సమానంగా ఉన్నాయి. typeof ఆపరేటర్ దీనిని ప్రదర్శించగలదు అని ప్రదర్శిస్తుంది అని ప్రదర్శిస్తుంది:
var oTemp; alert(typeof oTemp); //అవుట్పుట్ "undefined"
提示:విలువ undefined అనేది అనిర్దిష్ట విలువలు వ్యత్యాసంగా ఉన్నాయి. typeof ఆపరేటర్ అనేది ఈ రెండు విలువలను నిజంగా వ్యత్యాసంచేయకపోతుంది. క్రింది కోడ్ పరిగణనలో ఉంది:
var oTemp; alert(typeof oTemp); //అవుట్పుట్ "undefined" alert(typeof oTemp2); //అవుట్పుట్ "undefined"
ముంది కోడ్ రెండు వ్యవస్థాపకులకు అవుట్పుట్ "undefined" అవుతుంది, అయితే కేవలం oTemp2 వ్యవస్థాపకి ఎక్కడా చెప్పలేదు. మరొక ఆపరేటర్ వాడినప్పుడు అప్రమత్తంగా విషమం కలిగిస్తుంది, ఎందుకంటే ఇతర ఆపరేటర్లు మాత్రమే అభివృద్ధి చేయబడిన వ్యవస్థాపకులపై ఉపయోగించబడతాయి.
ఉదాహరణకు, క్రింది కోడ్ విషమం కలిగిస్తుంది:
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 లాంచింగ్స్).
即使 false 不等于 0,0 也可以在必要时被转换成 false,这样在 Boolean 语句中使用两者都是安全的。
var bFound = true; var bLost = false;
Number 类型
ECMA-262 中定义的最特殊的类型是 Number 类型。这种类型既可以表示 32 位的整数,还可以表示 64 位的浮点数。
直接输入的(而不是从另一个变量访问的)任何数字都被看做 Number 类型的字面量。例如,下面的代码声明了存放整数值的变量,它的值由字面量 86 定义:
var iNum = 86;
ఆక్టల్ సంఖ్యలు మరియు హెక్సడ్క్స్ సంఖ్యలు
పదార్థిక సంఖ్యలను ఆక్టల్ (ప్రాధాన్యత 8) లేదా హెక్సడ్క్స్ (ప్రాధాన్యత 16) లక్షణంగా ప్రస్తావించవచ్చు. ఆక్టల్ లక్షణంలో మొదటి అంకెలు ముందుకు పెట్టబడిన 0 ఉండాలి, తరువాత అంకెలు ఏదైనా ఆక్టల్ అంకెలు (0-7) ఉండాలి. క్రింది కోడ్ ప్రకారం:
var iNum = 070; //070 అనేది దశాంశ 56 కు సమానం
హెక్సడ్క్స్ లక్షణాన్ని సృష్టించడానికి, మొదటి అంకెలు ముందుకు పెట్టబడిన 0 ఉండాలి, తరువాత అక్షరం x ఉండాలి, తరువాత ఏదైనా హెక్సడ్క్స్ అంకెలు (0 నుండి 9 మరియు A నుండి F) ఉండాలి. ఈ అక్షరాలు పెద్ద అక్షరాలు లేదా చిన్న అక్షరాలు ఉండవచ్చు. ఉదాహరణకు:
var iNum = 0x1f; //0x1f అనేది దశాంశ 31 కు సమానం var iNum = 0xAB; //0xAB అనేది దశాంశ 171 కు సమానం
提示:అన్ని పదార్థిక సంఖ్యలను ఆక్టల్ లేదా హెక్సడ్క్స్ లక్షణంగా ప్రస్తావించవచ్చు, కానీ అన్ని గణిత కార్యకలాపాలు దశాంశ ఫలితాలను అందిస్తాయి
ఫ్లోటింగ్ పద్ధతి సంఖ్యలు
ఫ్లోటింగ్ పద్ధతి విలువను నిర్వచించడానికి అంకెలను చేర్చవలసిన అవసరం ఉంది, అంకెల తర్వాత ఒక అంకె ఉండాలి (ఉదాహరణకు, 1.0 నుండి 1 ను ఉపయోగించకుండా). ఇది ఫ్లోటింగ్ పద్ధతి లిటెరల్ అని పరిగణించబడుతుంది. ఉదాహరణకు:
var fNum = 5.0;
ఫ్లోటింగ్ పద్ధతి లిటెరల్స్ యొక్క ఆసక్తికరమైన పక్షం ఈము గణన పూర్వం నిజంగా స్ట్రింగ్స్ ని నిల్వ చేస్తాయి
వైజ్ఞానిక సంఖ్యాలక్షణం
చాలా పెద్ద లేదా చాలా చిన్న సంఖ్యలను వైజ్ఞానిక సంఖ్యాలక్షణం ద్వారా ప్రస్తావించవచ్చు, ఒక సంఖ్యను అంకెలు (పదార్థిక అంకెలు సహా) మరియు e (లేదా E) తో ప్రస్తావించవచ్చు, తరువాత అంకెలు ముందుకు పెట్టబడిన 10 యొక్క గుణకం. ఉదాహరణకు:
var fNum = 5.618e7
ఈ సంకేతం సంఖ్య 56180000 ని ప్రతినిధీకరిస్తుంది. వైజ్ఞానిక సంఖ్యాలక్షణాన్ని గణిత సమీకరణంగా మార్చినప్పుడు ఈ విలువ లభిస్తుంది: 5.618 x 107。
కానీ చాలా చిన్న సంఖ్యలను వైజ్ఞానిక సంఖ్యాలక్షణం ద్వారా ప్రస్తావించవచ్చు, ఉదాహరణకు 0.00000000000000008 అనే సంఖ్యను 8-e అని ప్రస్తావించవచ్చు17(这里,10 被升到 -17 次冥,意味着需要被 10 除 17 次)。ECMAScript 默认把具有 6 个或 6 个以上前导 0 的浮点数转换成科学计数法。
提示:也可用 64 位 IEEE 754 形式存储浮点值,这意味着十进制值最多可以有 17 个十进制位。17 位之后的值将被裁去,从而造成一些小的数学误差。
特殊的 Number 值
几个特殊值也被定义为 Number 类型。前两个是 Number.MAX_VALUE 和 Number.MIN_VALUE,它们定义了 Number 值集合的外边界。所有 ECMAScript 数都必须在这两个值之间。不过计算生成的数值结果可以不落在这两个值之间。
当计算生成的数大于 Number.MAX_VALUE 时,它将被赋予值 Number.POSITIVE_INFINITY,意味着不再有数字值。同样,生成的数值小于 Number.MIN_VALUE 的计算也会被赋予值 Number.NEGATIVE_INFINITY,也意味着不再有数字值。如果计算返回的是无穷大值,那么生成的结果不能再用于其他计算。
事实上,有专门的值表示无穷大,(如你猜到的)即 Infinity。Number.POSITIVE_INFINITY 的值为 Infinity。Number.NEGATIVE_INFINITY 的值为 -Infinity。
由于无穷大数可以是正数也可以是负数,所以可用一个方法判断一个数是否是有穷的(而不是单独测试每个无穷数)。可以对任何数调用 isFinite() 方法,以确保该数不是无穷大。例如:
var iResult = iNum * some_really_large_number; if (isFinite(iResult)) { alert("finite"); } else { alert("infinite"); }
చివరి ప్రత్యేక విలువ అనగా NaN ఉంది, ఇది నంబర్ (Not a Number) అని అర్థం. NaN ఒక విశేషమైన ప్రత్యేక విలువ. సాధారణంగా, ఈ పరిస్థితి రకం (స్ట్రింగ్, బుల్లెన్ మొదలైనవి) మార్పిడి విఫలమైనప్పుడు జరుగుతుంది. ఉదాహరణకు, బుల్లెన్ బ్లూ అనే పదాన్ని సంఖ్యగా మార్చడం విఫలం కాగలదు, ఎందుకంటే అది సమానమైన సంఖ్య లేదు. అనంతం తో పాటు, NaN కూడా గణిత గణనలలో ఉపయోగించబడలేదు. NaN యొక్క మరొక విశేషమైన అంశం దానికి స్వయంగా తక్కువ అని అర్థం, అంటే ఈ కోడు ఫలితంగా false తెచ్చుతుంది:
alert(NaN == NaN); //输出 "false"
出于这个原因,不推荐使用 NaN 值本身。函数 isNaN() 会做得相当好:
alert(isNaN("blue")); //输出 "true" alert(isNaN("666")); //输出 "false"
String 类型
String 类型的独特之处在于,它是唯一没有固定大小的原始类型。可以用字符串存储 0 或更多的 Unicode 字符,有 16 位整数表示(Unicode 是一种国际字符集,本教程后面将讨论它)。
స్ట్రింగ్ లో ప్రతి అక్షరం ప్రత్యేక స్థానం ఉంది, మొదటి అక్షరం స్థానం 0 నుండి మొదలుకు, రెండవ అక్షరం స్థానం 1 నుండి మొదలుకు, మరియు ఇలా సరిహద్దు కొలతలు కొనసాగుతాయి. ఇది అర్థం కాకుండా, స్ట్రింగ్ లో చివరి అక్షరం స్థానం స్ట్రింగ్ యొక్క పొడవు నుండి 1 తగ్గింది ఉంటుంది:

స్ట్రింగ్ పద్యాలు కేవలం డబుల్ కౌట్ లేదా సింగిల్ కౌట్ ద్వారా ప్రకటించబడతాయి. అయితే Java డబుల్ కౌట్ ద్వారా స్ట్రింగ్ ని ప్రకటించి, సింగిల్ కౌట్ ద్వారా అక్షరాన్ని ప్రకటించింది. కానీ ECMAScript లో అక్షర రకం లేదు కాబట్టి ఈ రెండు ప్రకటనలలో ఏది ఉపయోగించవచ్చు. ఉదాహరణకు, క్రింది రెండు పంక్తులు చాలా చాలా చెల్లనివి:
var sColor1 = "red"; var sColor2 = 'red';
స్ట్రింగ్ రకంలో కొన్ని అక్షర పద్యాలు ఉన్నాయి, Java, C మరియు Perl అభివృద్ధికర్తలు దానిని చాలా తెలుసుకున్నారు.
సిఫార్సు చేస్తున్నాము ఈ ECMAScript అక్షర పద్యాలు జాబితా:
పద్యం | అర్థం |
---|---|
\n | న్యూ లైన్ |
\t | టేబుల్ స్పేస్ |
\b | స్పేస్ |
\r | కార్సెల్ బేక్ |
\f | పేజీ బేక్ |
\\\\ | బ్యాక్ స్లాష్ |
\' | సింగిల్ కౌట్ స్కోప్ |
\" | డబుల్ కౌట్ స్కోప్ |
\0nnn | ఆక్టల్ కోడ్ nnn ప్రతినిధిస్తుంది అక్షరం (n 0 నుండి 7 వరకు ఒక ఆక్టల్ సంఖ్య |
\xnn | హెక్సడెసిమల్ కోడ్ nn ప్రతినిధిస్తుంది అక్షరం (n 0 నుండి F వరకు ఒక హెక్సడెసిమల్ సంఖ్య |
\unnnn | హెక్సడెసిమల్ కోడ్ nnnn ప్రతినిధిస్తుంది యూనికోడ్ అక్షరం (n 0 నుండి F వరకు ఒక హెక్సడెసిమల్ సంఖ్య |
- ముందస్తు పేజీ ECMAScript విలువలు
- తదుపరి పేజీ ECMAScript రకాల మార్పిడి