标签:
ECMASCRIPT 中有4种基本数据类型:
Undefined, Boolean,Number和String
Typeof
关键字typeof可以获取一个变量的类型。
<script type="text/javascript" > var a = 100; var b = 3.14; var c = true; var d = ‘a‘; var e = "hello"; var f; document.write(a + "<br/>"); document.write(b + "<br/>"); document.write(c + "<br/>"); document.write(d + "<br/>"); document.write(e + "<br/>"); document.write(f + "<br/>"); document.write("<hr/>"); document.write( typeof a + "<br/>"); document.write( typeof b + "<br/>"); document.write( typeof c + "<br/>"); document.write( typeof d + "<br/>"); document.write( typeof e + "<br/>"); document.write( typeof f + "<br/>"); </script>
类型的总结:
所有的数值都是number类型
字符和字符串都是string类型
布尔是boolean类型
如果一个变量没有初始化值的时候,其类型为undefined类型。表示没有定义。
JavaScript中数值的表示形式:
<script type="text/javascript" > var a = 12; var b = 012; //八进制 10 var c = 0x12; //十六进制 18 document.write(a + "<br/>"); document.write(b + "<br/>"); document.write(c + "<br/>"); </script>
使用细节:
1、八进制中如果数据超过0~7,默认解析为十进制数据。
<script type="text/javascript" > var a=09; //无效的八进制 document.write(a+"<br/>"); </script>
浮点数:
要定义浮点值,必须包括小数点和小数点后的一位数字(例如,用 1.0 而不是 1)。这被看作浮点数字面量。例如:
<script type="text/javascript" > var a = 3.14;//浮点数 var b = 1.//合法,小数点后面没有数字,解析为1 var c = 10.0//整数,解析为10。 document.write(a + "<br/>"); document.write(b + "<br/>"); document.write(c + "<br/>"); </script>
由于保存浮点数需要的内存空间是保存正数值的两倍,因此ECMAScrip会将浮点数值转换为整数值。如果小数点后没有跟任何数字和浮点数本身就是一个整数就会被转换为整数。
转换成数字
ECMAScript 提供了两种把非数字的原始值转换成数字的方法,即 parseInt() 和 parseFloat()。只有对 String 类型调用这些方法,它们才能正确运行;对其他类型返回的都是 NaN。
在判断字符串是否是数字值前,parseInt() 和 parseFloat() 都会仔细分析该字符串。
parseInt() 方法首先查看位置 0 处的字符,判断它是否是个有效数字;如果不是,该方法将返回 NaN,不再继续执行其他操作。但如果该字符是有效数字,该方法将查看位置 1 处的字符,进行同样的测试。这一过程将持续到发现非有效数字的字符为止,此时 parseInt() 将把该字符之前的字符串转换成数字。
例如,如果要把字符串 "12345red" 转换成整数,那么 parseInt() 将返回 12345,因为当它检查到字符 r 时,就会停止检测过程。
<script type="text/javascript" > var num = parseInt("1234abc"); document.write(num); //1234 </script>
字符串中包含的数字字面量会被正确转换为数字,比如 "0xA" 会被正确转换为数字 10。不过,字符串 "22.5" 将被转换成 22,因为对于整数来说,小数点是无效字符。
<script type="text/javascript" > var num1 = parseInt("12345red"); //返回 12345 var num2 = parseInt("0xA"); //返回 10 var num3 = parseInt("56.9"); //返回 56 var num4 = parseInt("red"); //返回 NaN document.write(num1 + "<br/>"); document.write(num2 + "<br/>"); document.write(num3 + "<br/>"); document.write(num4 + "<br/>"); </script>
<script type="text/javascript" > alert( parseFloat("123") ); // 可以 alert( parseFloat("123.53") ); // 可以 alert( parseFloat("012") ); // 12 alert( parseFloat("000012") ); // 12 alert( parseFloat("0x20") ); // 结果为0 alert( parseFloat("-59") ); // 负数 alert( parseFloat("abc123") ); // NaN (Not a Number),表示不是一个数字。 alert( parseFloat("123ab2c") ); // 结果是123,即会解析前面正确的数字,直到遇到不正确的数字。 </script>
判断是否是一个有效的数值.
isNaN
isNaN( 表达式 ),返回的结果是否为NaN(非数值)
<script type="text/javascript" > document.write(isNaN("abc")+"<br/>"); //true document.write(isNaN("123")+"<br/>"); //false </script>
加法运算符
加法运算符由加号(+)表示:
ECMAScript 中的加法也有一些特殊行为:
某个运算数是 NaN,那么结果为 NaN。
字符串拼接
如果两个运算数都是字符串,把第二个字符串连接到第一个上。
如果只有一个运算数是字符串,把另一个运算数转换成字符串,结果是两个字符串连接成的字符串。
例如:
var result = 5 + 5; //两个数字
alert(result); //输出 "10"
var result2 = 5 + "5"; //一个数字和一个字符串
alert(result); //输出 "55"
注意:
var a = 5; var b = true; alert(a + b); //6
注意:变量是布尔类型的时候,true=1, false=0;
var a = 5; var b = false; alert(a + b);//5
乘法运算符
乘法运算符由星号(*)表示,用于两数相乘。
ECMAScript 中的乘法语法与 Java语言中的相同:
注释:如果运算数是数字,那么执行常规的乘法运算,即两个正数或两个负数为正数,两个运算数符号不同,结果为负数。
除法运算符
除法运算符由斜杠(/)表示,用第二个运算数除第一个运算数:
var iResult = 88 /11;
注意:
var a = 10; var b = 3; alert(a / b); //3.3333333333333335
比较运算符小于、大于、小于等于和大于等于执行的是两个数的比较运算
var bResult1 = 2 > 1 //true
var bResult2 = 2 < 1 //false
比较数字和字符串
var bResult = "25" < "3";
alert(bResult); //输出 "true"
上面这段代码比较的是字符串 "25" 和 "3"。两个字符串在比较的时候 比较的是两个字符串 对应的字符顺序.
注意: 如果字符串与比较,会把字符串转成数字再进行比较。
如果把某个运算数改为数字,那么结果就不一样了:
var bResult = "25" < 3;
alert(bResult); //输出 "false"
这里,字符串 "25" 将被转换成数字 25,然后与数字 3 进行比较,结果不出所料。
无论何时比较一个数字和一个字符串,ECMAScript 都会把字符串转换成数字,然后按照数字顺序比较它们。
&& 与
|| 或
! 非
逻辑 AND 运算符
在 ECMAScript 中,逻辑 AND 运算符用双和号(&&)表示:
var bTrue = true; var bFalse = false; var bResult = bTrue && bFalse;
与 Java 中的逻辑 AND 运算相似,ECMAScript 中的逻辑 AND 运算也是简便运算,即如果第一个运算数决定了结果,就不再计算第二个运算数。对于逻辑 AND 运算来说,如果第一个运算数是 false,那么无论第二个运算数的值是什么,结果都不可能等于 true。
考虑下面的例子: var bTrue = true; var bResult = (bTrue && bUnknown); //发生错误 alert(bResult); //这一行不会执行 这段代码在进行逻辑 AND 运算时将引发错误,因为变量 bUnknown 是未定义的。变量 bTrue 的值为 true,因为逻辑 AND 运算将继续计算变量 bUnknown。这样做就会引发错误,因为 bUnknown 的值是 undefined,不能用于逻辑 AND 运算。
逻辑 OR 运算符
ECMAScript 中的逻辑 OR 运算符与 Java 中的相同,都由双竖线(||)表示
var bTrue = true; var bFalse = false; var bResult = bTrue || bFalse;
与逻辑 AND 运算符一样,逻辑 OR 运算也是简便运算。对于逻辑 OR 运算符来说,如果第一个运算数值为 true,就不再计算第二个运算数。
逻辑 运算符NOT。
在 ECMAScript 中,逻辑 NOT 运算符与Java 中的逻辑 NOT 运算符相同,都由感叹号(!)表示。
通常,该运算符用于控制循环: var bFound = false; var i = 0; while (!bFound) { if (aValue[i] == vSearchValues) { bFound = true; } else { i++; } }
简单的赋值运算符由等号(=)实现,只是把等号右边的值赋予等号左边的变量。
例如:
var iNum = 10;
复合赋值运算是由乘性运算符、加性运算符或位移运算符加等号(=)实现的。这些赋值运算符是下列这些常见情况的缩写形式:
var iNum = 10; iNum = iNum + 10;
可以用一个复合赋值运算符改写第二行代码:
var iNum = 10; iNum += 10;
每种主要的算术运算以及其他几个运算都有复合赋值运算符:
乘法/赋值(*=) 除法/赋值(/=) 取模/赋值(%=) 加法/赋值(+=) 减法/赋值(-=)
运算符是 ECMAScript 中功能最多的运算符,它的形式与 Java 中的相同。
variable = boolean_expression ? true_value : false_value;
该表达式主要是根据 boolean_expression 的计算结果有条件地为变量赋值。如果 Boolean_expression 为 true,就把 true_value 赋给变量;如果它是 false,就把 false_value 赋给变量。
例如:
var iMax = (iNum1 > iNum2) ? iNum1 : iNum2;
在这里例子中,iMax 将被赋予数字中的最大值。表达式声明如果 iNum1 大于 iNum2,则把 iNum1 赋予 iMax。但如果表达式为 false(即 iNum2 大于或等于 iNum1),则把 iNum2 赋予 iMax。
标签:
原文地址:http://www.cnblogs.com/cxspace/p/5770537.html