1.js和java的区别
(1).js是基于对象,java是面向对象
(2).js只需要解释就能执行,java必须要先编译成字节码再执行
(3).js是弱类型,java是强类型
2.js与HTML整合
(1).<script type="text/javascript">XXX</script>
(2).<script type="text/javascript" src="1.js"></script>
3.变量
(1).所有的变量类型都是var
直接var一个变量输出为undefined
(2).在<script/>内定义的变量是全局变量,在方法内定义的是局部变量。
^1:
var m = 4;
function demo(){ m = 9 ;}
demo();
alert(m);==>9
^2:
var m = 4;
function demo(m){ m = 9 ;}
demo(m);
alert(m);==>4
4.运算符
(1).var m = 3121/1000*1000; m = 3121而不是3000
(2).var m = 3.4+2.6; m = 6,而不是6.0
(3).var m = "12" + 1; m = 121。 var m = "12" - 1; m = 11;
(4).alert(true+2);==>3 alert(false+2);==>2
(5).typeof(3.14)==>number typeof("aaa")==>String typeof(true)==>boolean
5.语句
(1).js中,"="既表示判断又表示赋值。所以判断时,数值放左边变量放右边。赋值时就按正常习惯来。
当然,"=="也是支持的
(2).for(var a = 1,a<10;a++){} 注意是:var
(3).function showData(x,y){} 参数不需要传类型
(4).js自带一个arguments数组存放参数。
for(var a = 0;a<arguments.length;a++){}
(5).js中函数其实是一个Function对象,函数名就是该对象的引用。
var show = showData; //将showData函数原样输出
var show = showData(); //将showData函数运算结果输出
(6).动态函数
var func = new Function("x,y","var sum = x+y; return sum;");
var sum = func(5,8);
alert(sum);==>13
(7).匿名函数
var method = function(){ alert('aaa')};
method();
6.数组
(1).特点:长度可变,可存放任意类型元素
(2).常用方法:
concat():连接多个数组
join():将数组所有元素放入一个字符串,指定分隔符
pop():删除最后一个元素
push():在最后面增加元素
shift():删除第一个元素
unshift():在第一个增加元素
slice():查找到指定元素
splice():替换指定元素
toString():转化成字符串
toLacaleString():转化成本地字符串
sort():排序
reverse():倒序
7.原型:prototype(自定义新方法)
原型示例1:取数组最大值
Array.prototype.getMax = function(){
var max = 0;
for(var i = 0;i<this.length;i++){
if(this[i]>this[max]){
max = i;
}
}
return this[max];
}
var arr = [10,30,20];
var max = arr.getMax();
document.write(max);
原型示例2:去除字符两端空格
Array.prototype.trim = function(){
var start = 0;
var end = this.length - 1;
while(start<end && this.charAt(start)==" "){start++;}
while(start<end && this.charAt(end)==" "){end--;}
return this.substring(start,end+1);
}
var str = " ab v ";
alert(str.trim());
8.js实现面向对象
function Person(name,age){
this.name = name;
this.age = age;
this.setName = function(){this.name = name;};
this.setAge = function(){this.age = age};
}
Person.prototype.toString = function(){
return "Person[name="+this.name+",age="+this.age+"]";
}
var p = new Person("lisi",20);
p.setName("zhangsan");
alert(p.toString());
9.js特有的方法
(1).for(变量 in 对象){alert(变量);}
(2).对象调用成员的两种方式:
p.name
p["name"]
(3).with(对象名){成员}==>with(p){setName("wangwu");}