JavaScript 程序操作值(value),这些值都有各自的类型,JavaScript 的类型包括:
数字字符串布尔函数对象
好像还少东西哦,还有未定义(Undefined )和空(Null)(这俩略微有些怪)。还有作为一类特殊对象的数组。以及预定义好的对象:日期 和 正则表达式。另外,从技术上来严格定义的话,函数(function)也只是一种特殊类型的对象。那么,现在这个“类型”图,就应该变成下面这样了:
数字字符串布尔对象函数数组日期正则空(Null)未定义(Undefined)

数字

根据定义,JavaScript 中的数值类型是指“IEEE 754中的双精度64位格式”。这里有一些有趣的推理。在JavaScript 中不存在整数值(integer),所以,当习惯了C或java中的数学算法时,你不得不在 Javascript中更加小心一点。看看下面的例子:
0.1 + 0.2 = 0.30000000000000004
标准的数字操作符是被支持的,包括加、减、取模(或取余)等等。还有一个我之前忘记提到的内置对象 Math,它可以处理更多的高级数学函数和常量值:
Math.sin(3.5); d = Math.PI * r * r;
你已可以通过内置函数parseInt()将字符串转换为整型。这个函数中的第二个变量表示数值的进制,可选填,通常这样写:
parseInt("123", 10) 123 parseInt("010", 10) 10
如果你没有提供进制信息,你会得到一个意外的结果:
parseInt("010") IE9+,Chrome:10 IE8:8
这是因为,函数parseInt根据开头的0来决定将那个字符串转换为八进制数字。
如果你想使用2进制来转换,则更改进制信息为2:
parseInt("11", 2) 3
如果待转换的字符串不存在数值形式,函数就会返回一个特殊的值NaN(是not a number的缩写):
parseInt("hello", 10) NaN
NaN是不好的:如果你把它作为输入数值传给任何一个数学操作,结果都会返回一个NaN:
NaN + 5 NaN
你还可以使用内置函数isNaN()来检测一个变量是否为NaN:
isNaN(NaN) true
JavaScript还有两个特殊值:正无穷and负无穷:
1 / 0 Infinity -1 / 0 -Infinity

字符串

JavaScript中的字符串是一些字符序列。更准确的说,他们是Unicode字符序列,每一个字符由一个16位数字表示。这个信息应该会让那些需要国际化的网页的开发者感到高兴。
如果你想表示一个单独的字符,你只需使用长度为1的字符串即可。
通过读取它的长度属性,可以得到一个字符串的长度。
"hello".length 5
这就是我们第一次使用到javascript对象了,前面我已经提到过字符串类型变量实际上也是一个对象了吧,他们也拥有方法:
"hello".charAt(0) h "hello, world".replace("hello", "goodbye") goodbye, world "hello".toUpperCase() HELLO

其他类型

JavaScript区分null和undefined,前者是“对象”类型的对象,表示一个空值(non-value),后者是“未定义(undefined)”类型的对象,表示一个还没有被分配的值。我们将要在后面讨论变量,但在javascript中,声明一个变量却不赋予值是可以的。如果你这样做了,那么这个变量的类型就是undefined。
JavaScript有一个布尔类型,可能的值是true和false(两个都是关键字)。通过如下的规则,任何值都可以被转换成布尔型:
false,0, 空字串(""),NaN,null, 和undefined都被转换为false其他值会被转换为true
你可以使用函数Boolean()来进行明确的转换:
Boolean("") false Boolean(234) true
不过通常并不需要这么做,因为javaScript会在希望一个布尔型值的时候,隐含地执行这个转换操作,比如在if的条件语句。由于这个原因,我们通常所说的"true values"和"false values"分别代表那些转换为布尔值后为true和false的,或者,将这些值分别称为"truthy"(真值)和"falsy"(伪值)。
javascript中支持布尔操作符。比如:&&(逻辑与),||(逻辑或),和!(逻辑非)。

变量

在javascript中声明一个新变量的方法是使用关键字var:
var a; var name = "simon";
如果你声明了一个变量却没有给他赋任何值,那么它的类型就是undefined

操作符

javascript的数字操作符包括+,-,*,/和%(模除)。赋值操作符=,以及一些复合操作符,如+=和-=,它们可以被展开为x = x操作符 y的形式。
x += 5 x = x + 5
你可以使用++和--来分别实现自增和自减。这两个可以作为前缀或后缀操作符使用。
+操作符还可以用来连接字符串:
"hello" + " world" hello world
如果你用一个字符串加上一个数字(或其他值),那么每一个操作数都会被首先转换为字符串。如下所示:
"3" + 4 + 5 345 3 + 4 + "5" 75
也就是说,可以通过给一些值前面加上一个空字符串的方法来转换它的类型。
JavaScript中的比较操作使用