在上一篇中我们介绍了变量的定义、js的数据类型、js的运算符、类型转换在这篇中我们将继续讲解js中的其他内容
1.函数
js中函数定义需要注意以下三点
使用function定义函数
形式参数不需要指定类型
实际参数个数要大于等于函数参数列表个数,多出来的实际参数不参与函数运算,但如果实际参数个数小于函数参数列表则返回NaN(数值类型 )
js中函数定义有三种方法
方法一: function 方法名(参数列表){//使用function定义函数 函数体 } 例如: function add(a,b){//形式参数不需要指定类型 return a + b; } var result1 = add(1,5,6);//实际参数个数大于函数参数列表个数,不报错 var result2 = add(5);//实际参数个数小于函数参数列表个数,不报错 document.write(result1,result2);//从结果可看出,当实际参数个数大于形式参数个数时,将按顺序使用实参,多余的实参不参与函数运算,而当实际参数个数小于形式参数个数将返回NaN
方法二(匿名函数):var 函数名 = function(参数列表){ 函数体 } 例如: var sel = function(a,b){ return a - b; }
方法三(直接调用函数):(function(形参列表){ 函数体 })(实参列表); 例如:(function(num1,num2){ let sum = num1 + num2; console.log(sum); })(1,2);
2.数组(Array对象)
js数组相当于java中的list集合,长度可变,类型不限
数组定义有两种方法
第一种:var 数组名 = new Array(元素列表/元素长度); 例如:var arr = new Array(0,1,2,3); 第二种:var 数组名 = [元素列表];//以这种方式创建数组一定要注意使用的是中括号,而不是大括号 例如:var brr = [1,2,3,4];
特点一:长度可变
var arr = new Array(0,2,6,4); arr[10] = 20; var brr = [0]; console.log(arr); console.log(brr); //当我们在下标为10(原数组长度为4,长度未达到11)的位置插入一个元素时,有结果可看出,数值20直接插在了下标为10的位置,且中间自动生成empty(空)元素;
特点二:类型不限
var arr = new Array(0,2,6,4); arr[10] = 20; arr[11] = "你好" var brr = [0]; console.log(arr); console.log(brr); //有结果可看出,原数组中都是数值类型(Number类型)的元素,当我们插入一个类型为字符串类型(String类型)时也是可以的,说明js数组对元素类型没有要求
两种数组定义的区别:
var arr = new Array(2); var brr = [2]; //由结果可看出当我们使用构造函数创建数组时,如果元素列表数值个数1时,则表示为长度为n,元素为空的数组 //当我们使用中括号直接创建数组时,即使元素列表数值个数为1,他表示的是长度为1,元素值为元素列表值
var arr = new Array(0); var brr = [0]; console.log(arr); console.log(brr); //使用构造函数创建的数组为长度为0的空数组 //使用中括号直接创建的数组则为长度为1,原数值为0的数组
关于对数组操作的方法
方法很多,在此我只对一个方法进行细讲
splice()
他可以对数组进行增删改查的操作
增
var arr = new Array(0,2,6,4); arr.splice(4,1,"你好"); console.log(arr); //splice(参数一,参数二,参数三)(注意:参数一、二只能是数值类型,参数三类型不限) //其中参数一表示,从下表为参数一的位置开始操作,增 功能参数一值通常为数组长度 //参数二则表示为对多少个(参数二的数值)元素进行操作,增 功能参数值一般为1 //参数三则是将选中的元素改变成参数三的值 //所以又上我们可以分析出:在下表为4(参数一)开始操作,对下标为4对其及其往后的1(参数二)个的元素进行操作,把下表为4原本值为空替换成“你好”(改变值),相当已进行了一次添加操作 //由结果可看出在下表为4的位置我们增加了一个元素“你好”;
删
var arr = new Array(0,2,6,4,5,6); arr.splice(0,2); console.log(arr); //splice(参数一,参数二)(注意:参数一、二只能是数值类型) //其中参数一表示,从下表为参数一的位置开始操作 //参数二则表示为对多少个(参数二的数值)元素进行操作,要删除几个元素就写几 //由结果可看出,从下表为0(参数一),对0及其往后2(参数二)个元素进行了删除操作
查
var arr = new Array(0,2,6,4,5,6); var brr = arr.splice(0,2); console.log(brr); //splice(参数一,参数二)(注意:参数一、二只能是数值类型) //其中参数一表示,从下表为参数一的位置开始操作 //参数二则表示为对多少个(参数二的数值)元素进行操作,要查几个元素就写几 //由结果可看出,从下表为0(参数一),对0及其往后2(参数二)个元素进行了查询操作
改
var arr = new Array(0,2,6,4,5,6); arr.splice(0,1,5); console.log(arr); //splice(参数一,参数二,参数三)(注意:参数一、二只能是数值类型,参数三类型不限) //其中参数一表示,从下表为参数一的位置开始操作,增 功能参数一值通常为数组长度 //参数二则表示为对多少个(参数二的数值)元素进行操作,改 功能参数值一般为1,如果为其他数值则是将数值个数个元素,换成参数三一个元素(即以多换一) //参数三则是将选中的元素改变成参数三的值 //所以又上我们可以分析出:在下表为0(参数一)开始操作,对下标为4对其及其往后的1(参数二)个的元素进行操作,把下表为4原本值为空替换成“5”(改变值),相当已进行了一次修改操作
这一期内容到这里就结束了,下一期我们将给大家讲解字符串对象、自定义对象、window对象、以及dom实现一些简单的操作