Javascript学习笔记(二)Javascript核心之数据类型与值

JavaScript包括三种基本数据类型——数字、文字字符串和布尔值,两种小数据类型null(空)和undefined(未定义),支持复合数据类型-对象(已命名的值的无序集合和数组),定义了一种特殊对象-函数,还定义了一些专用对象(对象类class),Date类,RegExp类, Error类
  1、数字:
  JavaScript不同于其他语言的一个特点是它不区分整型数值和浮点型数值,所有的数字都由浮点型表示。它采用IEEE754标准定义的64位浮点格式表示数字。
  整型直接量
  八进制和十六进制的直接量(并非所有的JavaScript都支持八进制数值)
  浮点型直接量
  数字的使用(除运算符外还采用了大量的算术函数,这些函数都被保存在Math对象中,作为Math对象的属性使用)
  特殊的数值常量列表如下

Constant

Meaning

Infinity

Special value to represent infinity

NaN

Special not-a-number value

Number.MAX_VALUE

Largest representable number

Number.MIN_VALUE

Smallest (closest to zero) representable number

Number.NaN

Special not-a-number value

Number.POSITIVE_INFINITY

Special value to represent infinity

Number.NEGATIVE_INFINITY

Special value to represent negative infinity

2、字符串
  JavaScript中的字符串包含在单引号或双引号中,在JavaScript中没有char字符类型,而是用长度为1的字符串来表示字符。
  字符串直接量
  字符串直接量中的转义序列(字符串本身包含了单引号或双引号的情况,就要用到转义字符,如“\'”或“\"”)
JavaScript的转义序列

Sequence

Character represented

\0

The NUL character (\u0000).

\b

Backspace (\u0008).

\t

Horizontal tab (\u0009).

\n

Newline (\u000A).

\v

Vertical tab (\u000B).

\f

Form feed (\u000C).

\r

Carriage return (\u000D).

\"

Double quote (\u0022).

\'

Apostrophe or single quote (\u0027).

\\

Backslash (\u005C).

\xXX

The Latin-1 character specified by the two hexadecimal digits XX.

\uXXXX

The Unicode character specified by the four hexadecimal digits XXXX.

\XXX

The Latin-1 character specified by the octal digits XXX, between 1 and 377. Not supported by ECMAScript v3; do not use this escape sequence.

  字符串的使用(连接字符串+,字符串长度length属性从0开始索引)
  数字转换为字符串
   数字对象的toString()方法,默认按十进制转换,可以指定参数转化为二进制,八进制,十六进制等.如:

var n = 17;
binary_string = n.toString(2); //所求值为 "10001"
octal_string = "0" + n.toString(8); // 所求值为 "021"
hex_string = "0x" + n.toString(16); // 所求值为 "0x11"

数字对象的toFixed()方法,toExponential()方法,toPrecision()方法的使用请看例子:

var n = 123456.789;
n.toFixed(0); // "123457"
n.toFixed(2); // "123456.79"
n.toExponential(1); // "1.2e+5"
n.toExponential(3); // "1.235e+5"
n.toPrecision(4); // "1.235e+5"
n.toPrecision(7); // "123456.8"   

  字符串转换为数字:parseInt(),parseFloat方法的使用请参考以下例子,比较直观.

parseInt("3 blind mice"); // Returns 3
parseFloat("3.14 meters"); // Returns 3.14
parseInt("12.34"); // Returns 12
parseInt("0xFF"); // Returns 255

parseInt("11", 2); // Returns 3 (1*2 + 1)
parseInt("ff", 16); // Returns 255 (15*16 + 15)
parseInt("zz", 36); // Returns 1295 (35*36 + 35)
parseInt("077", 8); // Returns 63 (7*8 + 7)
parseInt("077", 10); // Returns 77 (7*10 + 7)

parseInt("eleven"); // Returns NaN
parseFloat("$72.47"); // Returns NaN

3、布尔值(true和false,必要时可以转换为1和0)

  4、函数:
     函数(function)是一个可执行的JavaScript代码段,包括用户自定义函数和JavaScript预定义函数。
  JavaScript中的函数是一个真正的数据类型,这就意味着函数可以被存储在变量、数组和对象中,而且还可以作为参数传递个其它函数。
  除了用函数定义如:function square(x) { return x*x; }
  还可以用函数直接量来定义如:var square = function(x) { return x*x; }
  另外一种定义函数的方法很少用,即把参数列表和函数体作为字符串传递给构造函数.如var square = new Function("x", "return x*x;");

  5、对象:
  对象就是数据的集合。要引用一个对象的属性就必须引用这个对象。如访问image对象的width和height属性:iamge["width"];image ["height"]
  ECMAScript v3定义了对象直接量的语法,使你能够创建对象并定义它的属性。对象直接量由一个由花括号中的列表构成,这个列表的元素是用冒号分隔的属性/值对,元素之间用逗号隔开。
  如定义一个point对象:var point={x:2.3,y=1.3}
  对象直接量也可以嵌套,如:var rectangle = {upperleft:{x:2,y:2},lowerright:{x:4,y:4}}
  对象直接量中的属性值不必是常量,也可以是任意的JavaScript表达式。如:
  var square = { "upperLeft": { x:point.x, y:point.y }, 'lowerRight': { x:(point.x + side), y:(point.y+side) }};

6、数组:
   在JavaScript中,数组可 以存放任何一种JavaScript数据类型,包括其它数组、对象或函数的引用。由于JavaScript是一种无类型语言,因此数组元素不必具有相同的 数据类型。
  数组的创建方法如下:
  var a = new Array();  
  a[0] = 1.2;
  a[1] = "JavaScript";
  a[2] = true;
  a[3] = {x:1,y:3};
  var a = new Array(1.2,"JavaScript",true,{x:1,y:3});
  var a = new Array(10);
  上面数组的创建可以使用如下代码实现:
  var  a = [1.2,"JavaScript",true,{x:1,y:3}];
  数组直接量可以被嵌套如:var matrix = [[1,2,3], [4,5,6], [7,8,9]];
  而且数组直接量中还可以存放未定义的元素:
  var sparseArray = [1,,,,5];

  7、null:表示“无值”。常常被看作对象类型的一个特殊值,即代表“无对象”的值。

8、undefined:使用未声明的变量或已声明未赋值的变量,又或使用不存在的对象属性时返回的就是这个值。虽然和null值不同,但是==运算符却将两者看作相等。如果必须区分两者,可以用==或typeof运算符。

  9、日期对象Date 
  用Date( )来创建如:var xmas = new Date(2006, 11, 25);(注意其表示12月,月份从0开始计算)
  使用Date对象的方法,可以得到并设置日期和时间的值,还可以将Date对象转换成一个字符串如:
  xmas.setFullYear(xmas.getFullYear( ) + 1); //把日期改为下一个圣诞节
  var weekday = xmas.getDay( );//设置2006年的圣诞节是星期二
  document.write("Today is: " + now.toLocaleString( )); //当前的日期/时间
  10、正则表达式对象  由RegExp对象来表示,可以使用RegExp()构造函数来创建它。

  11、错误对象Error 每个Error 对象具有一个message属性。预定义的错误对象类型有:Error,EvalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError.
  12、类型转换概述
数据类型自动转换表

Value

Context in which value is used


String

Number

Boolean

Object

Undefined value

"undefined"

NaN

false

Error

null

"null"

0

false

Error

Nonempty string

As is

Numeric value of string or NaN

TRue

String object

Empty string

As is

0

false

String object

0

"0"

As is

false

Number object

NaN

"NaN"

As is

false

Number object

Infinity

"Infinity"

As is

true

Number object

Negative infinity

"-Infinity"

As is

TRue

Number object

Any other number

String value of number

As is

true

Number object

true

"true"

1

As is

Boolean object

false

"false"

0

As is

Boolean object

Object

toString( )

valueOf( ), toString( ), or NaN

true

As is

13、基本数据类型的包装对象
  Javascript不仅支持数字,字符串,布尔值,还支持Number,String,Boolean类,这些类是基本数据类型的包装,所以包装不仅具有和基本类型一样的值,还定义了用来运算数据的属性和方法。
如:var s = "These are the times that try people's souls.";
  var last_word = s.substring(s.lastIndexOf(" ")+1, s.length);
  14、对象到基本类型的转换

 

posted on 2007-07-09 17:21  蹲在路边写代码  阅读(324)  评论(0编辑  收藏  举报

导航