您的位置:首页 > Web前端 > JavaScript

JavaScript学习笔记(1)基础知识

2013-03-22 19:27 886 查看

JavaScript学习笔记(1)基础知识

内容摘要:

基本语法

运算符

流程控制

函数

对象

数组

一.脚本语言JavaScript

脚本语言是一种解释性的语言,脚本语言不需要编译,他们一般需要解释器才能运行,

JavaScript是一种脚本语言,它可以被嵌入HTML的文件之中。通过JavaScript可以做到响应用户的需求事件(如表单的输入)。

二.JavaScript的基本语法

1.JavaScript脚本代码的位置

·放置在<script></script>标签对之间.

<script language="javascript">

<!--

alert(new Date());

-->

</script>

·放置在一个单独的文件中

html文件内容:

<html>

<script src="script.js" language="javascript"></script>

</html>

script.js文件内容:

alert(new Date());

·将脚本程序代码作为属性值.

<a href="javascript: alert(new Date());">javascript</a>

<input type=button value=test onclick="alert(new Date())">

2.保留关键字

abstract,boolean,break,byte,case,catch,char,class,const,continue,default,do,double,else,

extends,false,final,finally,float,for,function,goto,if,implements,import,in,instanceof,

int,interface,long,native,new,null,package,private,proteted,public,return,short,static,

super,switch,synchronized,this,throw,throws,transient,true,try,var,void,while,with

3.标识符

标识符是指JavaScript中定义的符号,例如:变量名、函数名,数组名等.

标识可以由任意顺序的大小写字母、数字、下划线和美元符号组成,但标识符不能以数字开头,不能是保留关键字。

合法的标识符举例: indentifier、username、user_name、_userName、$username

非法的标识符举例: int、98.3、Hello World

4.表达式与注释

JavaScript大小写敏感

每条功能执行语句的最后必须用分号结束,每个词之间用空格、制表符、换行符或大括号、小括号这样的分隔符隔开.

JavaScript程序注释: /*...*/中可以嵌套//注释,但不能嵌套/*...*/

5.基本数据类型与常量

常量

·整型常量

十六进制以0x或0X开头,例如: 0x8a

八进制以0开头,例如: 0123

十进制的第一位不能是0(数字0除外),例如: 123

·实型常量

12.32、193.98、5E7、4e5等.

·布尔值:

ture和false

·字符串常量

"abc"、"a"

字符串中的特殊字符,需要以反斜杠(\)后跟一个普通字符来表示,例如: \r、\n、\t、\b、\'、\"、\\

·null常量

·undefined常量

变量

·变量:

定义一个变量,系统就会为之分配一块内存,程序可以用变量名来表示这块内存中的数据.

·声名变量:

使用var关键字,例如: var name;

·变量赋值

声名变量的同时可以为其赋值,例如: var name = "zhangsan";

对已赋值的变量赋予一个其他类型的数据,例如: name = 123;

可以不事先声明变量而直接使用,例如: x = 1234;

6.运算符

算术运算符

+ 加法或正值运算符,还能实现字符串连接.

- 减法或负值运算符

* 乘法运算符

/ 除法运算符

% 模运算符,求余数

++ 自增,将变量加1后再将结果赋给这个变量. ++x:先赋值再自增,x++:先自增再赋值.

-- 自减,将变量减1后再将结果赋给这个变量.

赋值运算符

= 赋值

+= 将变量与所赋的值相加后的结果再赋值给该变量.

-= 将变量与所赋的值相减后的结果再赋值给该变量.

*= 将变量与所赋的值相乘后的结果再赋值给该变量.

/= 将变量与所赋的值相除后的结果再赋值给该变量.

%= 将变量与所赋的值求模后的结果再赋值给该变量.

比较运算符

> 大于

< 小于

>= 大于等于

<= 小于等于

== 等于

!= 不等于

逻辑运算符

&& 逻辑与

|| 逻辑或

! 逻辑非

位运算符

& 与运算符,两个位都为1,结果才为1,否则为0

| 或运算符,两个位都为0,结果才为0,否则为1

^ 异或运算符,两个位不同,结果才为1,否则为0

>> 右移,二进制位右移n位,左边移空部分补上原来的最高位值,相当于除以2的n次方

<< 左移,二进制位左移n位,右边移空部分补0,相当于乘以2的n次方

>>> 二进制位右移n位,左边补0,

7.程序流程控制

顺序结构

if条件选择语句

·if(条件语句){执行语句}

多学两招: if(x == null)或if(typeof(x) == "undefined")可以简写成if(!x).

·if(条件语句){执行语句块1} else{执行语句块2}

多学两招: 变量 = 布尔表达式?语句1:语句2,例如: var y = x>0?x:-x;

·if(条件语句1){执行语句块1} else if(条件语句n){执行语句块n} else{执行语句块n+1}

switch选择语句

switch(表达式)

{

case 取值1:

语句块1

break;

...

case 取值n:

语句块n

break;

default:

语句块n+1

break;

}

while循环语句

while(条件表达式语句)

{

执行语句块

}

do while语句

do

{

执行语句块

}while(条件表达式语句);

for循环语句

for(初始化表达式;循环条件表达式;循环后的操作表达式)

{

执行语句块

}

break与continue语句

break:

st:while(true)

{

while(true)

{

break st;

}

}

continue:跳过本次循环进入下一轮循环.

8.函数

函数的定义与调用

function 函数名 (参数列表)

{

程序代码

return 表达式;

}

函数的调用

·函数名(参数1,参数2,...)

·变量 = 函数名(参数1,参数2,...)

·在程序中直接使用返回结果: alert("sum=" + square(2,3));

全局变量与局部变量

参数个数可变的函数

在函数内部使用arguments对象来访问调用程序传递的所有参数.

function testparams()

{

var params = "";

for(var i=0;i<arguments.length;i++)

params = params + "" + arguments[i];

alert(params);

}

testparams("abc",123);

创建动态函数

var varName = new Function(argument1,...lastArgument);

所有的参数都必须是字符串类型,最后的参数必须是这个动态函数的功能程序代码.例

var square = new Function("x","y","var sum;sum=x*x + y*y;return sum;");

Javascript的系统函数

·encodeURI: 返回对一个URI字符串编码后的结果.

·decodeURI: 将一个已编码的URI字符串解码成最初始的字符串并返回.

·parseInt(numString,[radix]): 将一个字符串按指定的进制转换成整数.

·parseFloat: 将一个字符串转换成对应的小数.

·isNaN: 用于检测parseInt和parseFloat方法的返回值是否为NaN.

·escape: 返回对一个字符串进行编码后的结果字符串.

·unescape: 将一个用escape方法编码的结果字符串解码成原始字符串并返回.

·eval: 将其中的参数字符串作为一个JavaScript表达式执行.

9.对象

对象与对象实例

·对象中所包含的变量就是对象的属性

·对象中所包含的对属性进行操作的函数就是对象的方法

·对象的属性和方法都叫对象的成员

·对象是对某一类事物的描述,是抽象上的概念,而对象实例是一类事物中的具体个例.

·能够被用来创建对象实例的函数就叫做对象的构造函数,只要定义了一个对象的构造函数,就等于定义了一个对象。

使用new关键字和对象的构造函数就可以创建对象实例,语法格式如下:

var objInstance = new ObjName(传递给该对象的实际参数列表);

·成员变量访问: 对象实例.成员变量 或 对象实例["成员变量"]

<script>

function Person()

{

}

var person1 = new Person();

person1.age = 18;

person1.name = "zxx";

function sayFunc()

{

alert(person1.name + ":" + person1.age);

}

person1.say = sayFunc;

person1.say();

</script>

构造方法与this关键字

·为一个对象实例新增加的属性和方法,不会增加到同一个对象所产生的其它对象实例上.

·所有的实例对象在创建后都会自动调用构造函数,在构造函数中增加的属性和方法会被增加到每个对象实例上.

·对象实例是用new关键字创建的,在构造方法中不要有返回结果的return语句.

·调用对象的成员方法时,需要使用"对象实例.成员方法"的形式,很显然,用作成员方法的函数被调用时,一定伴随有某个对象实例.

所以,this关键字一般只在用作对象成员方法的函数中出现.

<script>

function Person(name,age)

{

this.age = age;

this.name = name;

this.say = sayFunc;

}

function sayFunc()

{

alert(this.name + ":" + this.age);

}

var person1 = new Person("张三",18);

person1.say();

</script>

函数中参数传递,在函数中修改参数值的情况

·基本类型以值传递参数

·对象实例以引用传递参数

10.Javascript的内部对象

对象分类

·动态对象

使用"对象实例名.成员"的格式来访问其属性和方法.

·静态对象

直接使用"对象名.成员"的格式来访问其属性和方法.

内部对象

·Object对象

Object对提供了一种创建自定义对象的简单方式,不需要程序员再定义构造函数.

var person = new Object();

·String对象

·length属性: string.length

·anchor方法: string.anchor("para1")效果: <A NAME="para1">string</A>

·big方法: string.big()效果: <BIG>string</BIG>

·bold方法: string.bold()效果: <B>string</B>

·fontcolor方法: string.fontcolor("red")效果: <FONT COLOR="red">string</FONT>

·link方法: string.link(URL)效果: <A HREF="URL">string</A>

·charAt方法: 获取索引位置的字符. 例string.charAt(3).

注意: 一个字符串中的第一个字符的索引位置为0.

·charCodeAt方法: 获取索引位置的字符的unicode编码. 例string.charAt(3).toString(16).

·indexOf方法: 获取字符串的索引位置: string.indexOf("substring");

·lastindexOf方法: 获取字符串的索引位置,从后向前搜索

·match,search方法

·replace,split方法

·slice方法

·substr,substring方法

·Math对象

·Math对象静态对象,不能使用new关键字创建对象实例,应直接使用"对象名.成员"的格式来访问其属性或方法.

例如:var num = Math.random();

·Date对象

toString方法

toString方法是JavaScript中的所有内部对象的一个成员方法,它的主要作用就是将对象中的数据转换成某种格式的字符串来表示,具体的转换方式取决于对象的类型.

11.对象专用语句

with语句

for...in语句

12.数组

数组列表

·数组列表用于表示一组数据的集合,它由一对方括号包围,列表中的每个元素用逗号分隔,数组元素可以是任意类型的数据(包括其他数组).

·对于每个数组变量,都有一个length属性,表示该数组中元素的个数.

·使用"数组变量名[索引号]"的格式来访问每个数组元素。数组列表中的第一个元素的索引号为0.

·数组列表的每个元素既可以是有效的JavaScript表达式,也可以为空,空元素的值为undefined.

·熟组元素本身又是数组,这就叫数组的数组.使用"数组变量名[子数组索引号][子数组中的元素索引号]"的格式来访问数组的数组中的元素.

var arr = ["zs",123,'li',3.5];

for(var i=0;i<arr.length;i++)

{

alert(arr[i]);

}

Array对象,三种构造方法形式:

·Array()

·Array(4)

·Array(3.5,"abc",3)

程序示例:

var x,str = "";

var arr = new Array();

arr[0] = 3.5;

arr[1] = "abc";

arr[2] = 3;

arr.sort();

for(x in arr)

{

str = str + x + ":" + arr[x] + "\n";

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: