JAVAscript学习笔记
- HTML只是描述网页长相的标记语言,没有计算能力、判断能力,如果所有计算、判断(比如文本框是否为空,判断两次密码是否输入一致)都放都服务器端执行的网页的话,页面会非常的慢、用起来也很难用,对服务器的压力也很大,因此要求能在浏览器中执行、判断。JAVAScript是一种浏览器段语言!不需要进入服务器端就能执行!这样网页运行速度也就快了许多!即是一种纯前端的解释语言!
- Javascript是一个不需要编译就可以直接运行的语言,那怕有语法错误,没有语法错误的部分还是能正常运行!
- 弹出一个年月日窗口:
<script type="text/javascipt">
Alert(new Date().toLocaleDateString());
<script>
- Script可以写在<head>或<body>任意一个位置!
- 在标签中使用javascript代码:
如下:
<a href="javascript:alert('hello')">点点</a>
<a href="1.html" onclick="alert('hello')">点点</a>
除了在href中要有"javascript"关键字,其它的不需要!
- Javascript中既可以使用双引号声明字符串,又可以单引号使命字符串。主要是为了方便与html集成,避免转义符的麻烦。
- Javascript中有null、undefined两种,null表示变量的值为空,undefined表示变量还没有指向任何的对象,未初始化。
- Javascript是弱类型,声明变量的时候无法:int i=0;也就是说没有类型这么一说。只能通过var i=10;来声明变量,和c#中的var不一样,不是C#中那样的类型判断!
下面情况是允许的:
Var i=10;
I="123";
当i为10时,i指向的是int 类型,当i为"123时,i指向的是string类型。"
- Javascript可以不用var来声明变量,直接用,这样的变量是"全局变量",因此除非确实想用全局变量,否则使用的时候最好用上var
- Javascript中判断变量、参数是否初始化的三种方法:
Var x;
If(x==null)
{
Alert("null")
}
If(typeof(x)=="undefined")
{
Alert('undefined');
}
If(!x){alert('不x');}
If(x)这表示变量被初始化了,或者变量不为空,或者变量不为0
- Javascript中声明函数的方法
Function add(i1,i2)
{
Return i1+i2;
}
不用写函数类型,也不用写参数类型。
- 匿名函数的声明:
Var f1=function(i1,i2){
Return i1+i2;
}
Alert(f1(1,2));
也可以这样用:
Akert(function(i1,i2){return i1+i2;}(1,2));//直接声明一个匿名函数,立即使用!-
- javascript中没有类的语法,是用函数闭包(closure)模拟出来的!javascript中的string、Date等"类"都被叫做对象。
Function Person( name,age){
This.name=name;
This.age=age;
This.SayHello=function(){
Alert("你好,我是"+this.name+",我"+this.age+"岁了");
}
}
Var p1 = new Person("tom",20);
P1.SayHello();
也可以动态增加属性:
例如:
P1.Gender="男";
这样,以后就可以直接使用新增加的属性!
- javascript中的Array对象就是数组,首先是动态数组,而且是一个像C#中数组、ArrayList(动态数组【可以随时加东西,没有数量的限制!】)、Hashtable等的超强综合体。
Var names=new Array();
Names[0]="tom";
Names[1]="jerry";
Names[2]="lily";
For(var i=0;i<name.length;i++){
Alert(names[i]);
}
无需预定制定数组大小!
- 找到数组中最大的数:
function getMax(arr){
var max=arr[0];
for(var i=0;i<arr.length;i++){
if(arr[i]>max)
max=arr[i]
}
return max;
}
var arr1=new Array();
arr1[0]=20;
arr1[1]=19;
arr1[2]=21;
alert(getMax(arr1));
- 将字符串数组的元素的顺序进行反转。例如{"3","a","8","haha"}反转为{"haha","8","a","3"};
在javascript中的反转函数:数组名.reverse
function getChange(arr){
for(var i=0;i<arr.length/2;i++){
var temp;
temp=arr[i];
arr[i]=arr[arr.length-i-1];
arr[arr.length-i-1]=temp;
}
return arr;
}
var arr1=new Array();
arr1[0]="3";
arr1[1]="tom";
arr1[2]="ket";
arr1[3]="5";
alert(getChange(arr1));
- 将一个字符数组输出为|分割的形式,比如:"梅西|卡卡|郑大世"
在javascript中有join函数可以起到这样的做作用:
例如:
Arr[0]="梅西";
Arr[1]="卡卡";
Arr[2]="郑大世";
Arr.join("|");
如下:
function getChar(arr){
if(arr.length<0){
return;
}
var s=arr[0];
for(var i=1;i<arr.length;i++){
s=s+"|"+arr[i];
}
return s;
}
var arr1=new Array();
arr1[0]="tom";
arr1[1]="jerry";
arr1[2]="lily";
alert(getChar(arr1));
- js中Array是一个宝贝,不仅是一个数组,还是一个Dictionary,还是一个Stack。
例如:
Var pinyins=new Array();
Pinyins["人"]="ren";
Pinyins["口"]="kou";
Pinyins["手"]="shou";
Alert[pinyins["人"]];
Alert[pinyins.人];
像Hashtable、Dictionary那样用,而且它们一样效率高!
- Array可以有简化的创建及方式:
Var arr=[3,5,7,9];普通数组初始化
- 字典风格的建华创建方式:
Var arr={"tom":30,"jim":20};
- 获得对象的成员:
for(var e in document){
alert(e);
}