计算机的世界中就只有数据,没有数据计算机就不存在。所有的数据实际上都是由bit序列构成的(bit序列通常是由0和1两个数字排列组合而成。 二进制数系统中,每个0或1就是一个位(bit)。),因此基本上都是相似的。虽然构成相同,但每一个数据都在计算机中扮演着自己的角色,在高级编程语言中,为了让计算机更好的运行程序,往往都会将数据有序的分成各种值,每种值都赋予一种数据类型,用于确定它所扮演的角色。js中有6中基本类型的值:number,string,boolean,object,function和undefined。

 

数字

   标准js数字描述是64位浮点类型,也就是说,数字表示其实是有bit数量限制的,也就是有精度限制的。64个0或1的值只能表示2的64次方,这个数字已经很大了,但js中使用的数据不仅仅可以是正数,还可以是负数,因此要分出一个bit来存放数字符号。更大的难题是:必须将非整数表示出来,为此,还需要使用11个bit来存储小数点的位置,这样就剩余52个bit,任何小于2的52次方都可以安全的写成js数字,但小数计算的精确度一般不高,比如π,就无法通过有限的小数数字来精确表示,了解这一点很重要,因此应将小数视为近似值而不是精确值。

 

算术

   也就是通过运算符操作数据,和小学数学一样,没什么好说的;有一个运算符可能不太熟悉,“%”表示余数,其优先级与乘除法相同;

字符串

和java不同,字符串在js中就是种基本类型;几乎任何字符都可以放到引号里,js都会将其解析为string,但有些比较复杂,比如引号里面的引号,引号里面的换行等;js规定,当文字中发现反斜杠\,就以为着它后面的字符有着特殊的意义。

比如\n表示新的一行,如果确实需要的是反斜杠本身,可以用两个连续的\\来表示;

更多的转义字符请百度。

JavaScript转义符

 

转义序列字符\b退格\f走纸换页\n换行\r回车\t横向跳格 (Ctrl-I)\'单引号\"双引号\\反斜杠 

 

一元操作符

   并不是所有的运算符都是符号,有些运算符是单词,例如typeof运算符,它产生一个表示某个特定值的类型的字符串值;

使用两个值的运算符是二元运算符,而使用一个值的运算法称为一元运算符,就理解一下,会使用就好。

 

布尔值、比较和布尔逻辑

   布尔类型大家都知道,就是true和false;

比较有意思的是 ‘字符串的比较’。字符串基本也是按照字母顺序来比较的。大写字母始终小于小写字母,所以“Z”<“z”是true;非字母字符(!@)等也包括在此序列中。比较这些字符的实际方式是基于Unicode标准,该标准为每一个字符赋予一个数字(包括希腊语、阿拉伯语、日语等),这么做的目的主要是在计算机中使用数字储存字符串,可以将一堆字符表示成数据。比较字符串的时候,js实际上是从左向右逐个比较每个字符所对应的数字代码。

还有一些运算可以作用于布尔值本身,三种逻辑运算符(与或非)。&&是与,是个二元运算符,当两个值都是true的情况下才是true;  ||是或,任何一个值为true,就为true; !是非,一元运算符,能够反转给定的值;

 

表达式和语句

   表达式的范围很广泛,每一个直接写出来的值是表达式,括号之间的表达式也是表达式,有任意大小和难度的表达式。。。有一个比表达式更大的单位,称为语句。一个程序是由一组语句构成的,大多数语句都是以分号结束,最简单的语句就是一个表达式加上后面的分号构成,比如  1; 这样的程序是没有任何意义的,一个表达式可以仅仅用于创建一个值,但一个语句只有发挥“改变世界”的作用的时候,才称之为有用的语句;比如将某个值输出到屏幕上,或者改变程序的内部状态以此来影响后面的语句。这些统称为‘side effect’。刚才的例子  1;仅仅是创建一个值1,然后立即又将他们扔回bit库,一点‘影响世界’的痕迹都没有,因此它不是一个 side effect;

 

   到这里 , 值 这个东西我们大概都了解了,好好消化下,我们下次学习js中另外一个重要的知识:‘变量’

 

 posted on 2013-10-27 23:41  vincent2d  阅读(197)  评论(0编辑  收藏  举报