成峰

学以致用,实践中学习,学习后实践……
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

从零开始javascript(1):js基础知识

Posted on 2009-02-18 23:21  成峰  阅读(2094)  评论(1编辑  收藏  举报

1、javascript语法

a、javascript的变量名、函数、运算符是区分大小写的

b、变量是弱类型的,ECMAScript不像Java,C++。ECMAScript中的变量无特定的类型。定义变量用var。

c、每行结尾的“;”可以有也可以没有

d、javascript注释是"/*js content */"

2、javascript变量

a、javascipt中定义变量是:var test="hello js";(其中var 是 variable的缩写。)并且给test变量初始值为“hello js”

b、ECMAjavascipt中定义变量可以不初始化。如:var test;

c、javascipt的变量是弱类型的,所以变量可以存储不同类型的值。如:var test="hello js"; test=123;这是可以的

d、变量名规则:第一个字符必须是字母、下划线、或者是美无符号($)

e、变量名的命名规则

》Camel标记法--首字母小写的,接下来的单词都以大写字母开头

例:var myTestValue; var myResult;

》Pascal标记法--首字母是大写的,接下来的单词都以大写字母开头

例:var MyTestValue; var MyResult;

》匈牙利标记法--在以Pascal标记法的基础上,在变量前面添加一个小写字母说明该变量的类型。

例:var iMyTestValue =55; var sMyResult="Hello js";

3、原始值,引用值

a、原始值

primitive value 是存储在栈(Stack)中的简单数据段,也就是说它们的值是直接存储在变量访问的位置。

b、引用值

reference value 是存储在堆(herp)中的对象,也就是说存储变量处的值是一个指针(point),指向对象的内存处

ECMAScript原始类型有:Undefined、Null、Boolean和String.

4、几个重要的原始类型

a、Undefined 类型

此类型只有一个值即:undefined。当声明变量未初始化时,该变量的值为undefined。

即:var test;alert(test);则输出undefined。

注意:值undefined并不同于未定义的值。但是:typeof运算符并不真正的区分这两种值请关注以下代码:

var oTemp;

alert(typeof oTemp); 输出 “undefined”;

alert(typeof oTemp2); /*没有任何地方定义oTemp2*/ 输出"undefined";

但是在没有定义变量的情况下却不可以这样使用:alert(oTemp2 == undefined);//这会产生一个错误:变量未定义

当函数没有明确返回值,那么这个函数的返回值默认为:undefined。

b、Null类型

Null类型也只有一个专用值null,值undefined其实是从null派生来的,因此:

alert(null == undefined); //输出true

此二值虽然相等,但是其含义并不相同。undefined是声明了变量但未对其初始化时赋予该变量的值,null则用于表示

尚未存丰的对象。如果函数的返回值为对象,那么当找不着对象时则返回的通常是null。

c、Boolean类型

Boolean类型有两个值true/false。

在类型转换过程中:空字符串 == false;数字 0==false ;非零数字和非空字符串== true;

默认情况下:"null==true/false"均返回false,"undefined==true/false"也返回false

var oFalseObject = new Boolean(false);

var result = oFalseObject && true;//此处最终结果是 true,因为此处and 操作会自动将oFalseObject对象转换

为true,而不是取此对象的值。所以此处返回值是true;

强类型转换时:var b = new Boolean(null); 则b的最终结果是false; var b = new Boolean(undefined);亦然

5、函数

函数是一组随时随地可以运行的语句,由关键字function、一组参数、以及置于括号内的代码组成的。

如果函数未使用return 语句或者使用了空的return;语句那么此函数的返回值是undefined.

在ECMAScript中函数是不可以重载的,如果在同一区域有两个函数使用了相同的名称,不会引发错误,但是当代码 执行的时候真正使用的是第二个函数。

arguments对象:代函数代码中,可以使用特殊对象,开发者不用明确指出此参数名,就能访问他们。arguments 便是整个函数的所有参数列表数组。