JavaScript中的复合类型大致上有三种
- Object:对象
- Array:数组
- Function:函数
对象
除Object之外,JavaScript还提供了如下常用的内置类
- Array:数组类
- Date:日期类
- Error:错误类
- Function:函数类
- Math:数学类
- Number:数值类
- Object:对象类
- String:字符串类
数组
定义数组的三种方式
var a = [3 , 4 , 5];
var b = [];
var c = new Array();
JavaScript数组作为栈使用的两个方法如下
- JS作为栈使用:
push(ele): 元素入栈,返回入栈后数组长度
pop(): 元素出栈,返回出栈的数组元素 - JS作为队列使用:
unshift(ele): 元素入队列,返回入队列后的数组长度
shift(): 元素出队列,返回出队列的数组元素
<script>
var stack =[5,7];
stack.push("yi");
stack.push("er");
stack.push("san");
console.log(stack.pop());
console.log(stack.pop());
var queue=[5,7];
queue.unshift("1");
queue.unshift("2");
queue.unshift("3");
console.log(queue.shift());
console.log(queue.shift());
</script>
- concat(value ,…): 为数组添加元素,然后返回,原数组不变
- join([separator]): 将数组的元素拼接到一起,然后返回
- reverse: 反转数组包含的元素
- slice(start,[end]): 截取start到end之间的数
- splice(start,deleteCount,value,…):从start开始,截取deleteCount个元素,再把多个value值放到数组中
var a=["html",2,"y"];
//为数组添加一个或多个元素,原数组不变
console.log(a.concat(4,5));
console.log(a.concat([4,5]));
console.log(a.concat([4,5],[6,7]));
var b=["html",20,"is",99,"good"];
//把数组输出为一个字符串
console.log(b.join());
console.log(b.join("+"));
var c=["html","d","dfa","dsa"];
//反转数组内的元素
c.reverse();
console.log(c);
var d=["html","d","dfa","dsa","dsjad","dasi7"];
//截取数组
console.log(d.slice(3));
console.log(d.slice(2,4));
console.log(d.slice(1,-2));
console.log(d.slice(-3,-2));
var e=["html","d","dfa","dsa","dsjad","dasi7"];
//截取数组,再将多个value追加到数组中
console.log(e.splice(3));
console.log(e.splice(1,1));
console.log(e);
函数
函数定义的语法格式如下:
function functionName(param1,param2,...)
{
}
下面代码定义了一个简单函数
<script>
function year(age)
{
if(age>60)
{
alert("老人");
}
else if(age>40)
{
alert("中年人");
}
else if(age>15)
{
alert("青年人");
}
else
{
alert("儿童");
}
}
age(46);
</script>
如果输入的参数不是数值会怎样呢?为了让程序更加严谨,应先判断数据类型
if( typeof age === "number")
{
function year(age)
{
if(age>60)
{
alert("老人");
}
else if(age>40)
{
alert("中年人");
}
else if(age>15)
{
alert("青年人");
}
else
{
alert("儿童");
}
}
}
else
{
alert("参数必须为数值")
}