一、数据类型
在js中没有数据类型,在定义变量是可以直接用var来定义
二、运算符
运算符与java一样,不再进行说明
三、数组
数组的定义:
var 数组名 = []; //这种定义方法是定义一个空数组。此时调用length方法数组长度为0
也可以在赋值时就带上元素var arr = [1,2,3];
数组内元素类型
数组内部可以同时存储不同类型的元素
数组元素的增加与删除
增加:
由于在js中在定义时数组没有长度的赋值所以在添加元素的时候会自动增加长度,赋值方法:数组名[下标] = 数据
删除
删除某个元素可以用delete以及spalice方法删除
delete 数组名[下标] delete arr[1];这种方式数组长度不变,此时arr[1]变为undefined了
数组名.splice(元素下标1,元素下标2);表示从1到2都被删除
arr.splice(1,1);1号元素的下标也被删除即数组长度减少
数组的遍历
js中数组的遍历雨】与Java中遍历方式相同,使用for循环,但因为js中无数据类型,故在定义i时用varlai定义
for (var i = 0;i<arr1.length;i++){ alert(arr1[i]); }
四、函数
定义
函数的第一种定义形式:
function 函数名(形参列表){方法体}
定义无参函数:function 函数名(){方法体}
定义有参函数:function 函数名(a,b){方法体}
因为在js中无参数类型,所以在定义方法参数不必写参数类型
函数的第二种定义形式:
因为在js中var是任何类型,函数也可以看作一种特殊的类型故可以将函数赋值给一个var型的变量
定义格式:var 函数名 = function(形参列表) {方法体}
注意:
在js中无函数的重载:有无形参,亦或是参数个数的多少,在js中都理解为一个函数,故在js中函数没有重载
当两个函数名相同时,在调用时所实现的是后定义的函数,可理解成函数被后来的函数覆盖
function fun() = {
alert("fun1被调用");
}
function fun(a,b,c) = {
aleat("fun2被调用");
}
fun();
fun(1,2,3);
fun(1,2);
上述代码运行结果都是显示fun2被调用;
由以上代码可知,函数的调用与你是否由参数有几个参数无关:故在定义函数时无论是否传参都可以定义成无参或有参。
函数的arguments参数
arguments是function函数的隐形参数
在使用时不必定义,可直接使用
arguments类似于Java中的数组,具有length方法,其中存储的是所传递的参数的个数,也可通过下标来获取传递的参数:arguments[i];
使用举例:若需要传参时建议写上参数以增强可读性
function fun(num1,num2){
var sum = 0;
for (var i = 0;i<arguments.length;i++){
if (typeof (arguments[i]=="number"))
sum+=arguments[i];
}
alert(sum);
}
fun(1,2,3,"avb",4,1);
五、对象的定义
Object类型的自定义对象
var 对象名 = new Object();
此时所定义的对象为空对象
给对象添加属性和方法
对象名.属性值 = 值;
对象名.函数名 = function(){}
对象的访问
对象名.属性/方法
举例
var person = new Object();
person.name = "小明";
person.age = 13;
person.sum = function (){
alert("name = "+this.name+" age = "+this.age);
}
person.sum();
自定义对象
var 对象名 = {
属性1:值1;
属性2:值2;
方法名:function(){
方法体;
}
}
举例:
var Person = {
name:"jack",
age:18,
fun:function (){
alert("name = "+this.name+" age = "+this.age);
}
};
Person.num = 12;
Person.fun();
alert(Person.num);