JavaScript-基础3
基础
-
数组的基本操作有哪些?
(对象的基本操作也是这些)
-
增加数组元素
- 前边文章将数组比作是一个鸡蛋托,可放各种类型的数据。我们若是想要添加数据到这个数组容器中得使用数组对象的方法。如arr.push(新增内容),能够将一个或多个数据添加到数组末尾。arr.unshift(新增的内容),能够将一个或多个数据添加到数组开头。注意:此处的arr代表的是数组名
-
删除数组元素
-
删除数组元素与增加数组元素都需要使用数组对象的方法。如会使用到arr.pop()、arr.shift()、arr.splice(删除元素的下标,删除的个数)
-
arr.pop()方法是将数组中的最后一个元素删除,并返回该元素的值,例如:
let arr=[1,2]
console.log(arr.pop()) //结果为2,返回的是被删除元素的值
-
arr.shift()方法是删除数组中第一个元素,并返回该元素的值。
-
arr.splice(下标,删除个数)方法能够删除指定元素,给定删除元素的下标(数组下标从0开始),删除个数可省略不写。
-
-
查找数组元素
- 之前文章有提及,使用
数组[下标]
就可以查询数组中的元素
- 之前文章有提及,使用
-
修改数组元素
- 语法为:
数组[下标]=新值
- 语法为:
-
-
函数的作用是什么?
如果一个程序有太多的重复代码,会影响我们阅读代码时的观感。循环语句虽然能够帮助我们做重复的事情,但是它的位置是比较死板的,就比如说,它无法很好的完成我想在一开始做某一件事,到了程序的最后还想做该事情,用循环语句明显是比较麻烦的。
函数的出现就很好的帮助我们解决了这些问题,函数能够封装代码,就比如说:有这么一段代码是用于加法计算的,将这段代码封装起来。当我们想要用这段代码时,直接调用它即可。只要我们事先将代码封装好(将代码封装的过程可以理解为是一个函数),封装一次,可以多次使用。减少了重复代码的出现,还能随时随地地调用,提高编码的效率。
-
函数的声明是怎样的?
函数分为两种类型,一种是有名字的函数;另一种是匿名的函数。
有名字的函数的定义:
function 函数名(){函数体}
匿名函数的定义:
function (){}
-
函数该如何使用?
函数调用的语法:
函数名()
-
注意:只用进行函数调用,才会执行函数的函数体。
-
匿名函数没有函数名,无法使用函数名()调用。
既然匿名函数不能用函数名()调用,那么该如何调用呢?
可以用函数表达式或者立即执行函数。
函数表达式:直接用一个变量盒子来装该匿名函数,并用变量名进行调用。
语法:
let fn=function(){//函数体}
匿名函数的调用可以写成:fn() //将装匿名函数的变量名当作了该匿名函数名,就可以调用了。
立即执行函数:使用场景:避免全局变量之间的污染。
语法:(function(){函数体})() ; //相当于将整个匿名函数当作它自己的函数名,然后调用。
(function(){函数体}());//没有调用,直接执行。
注意:多个立即执行函数必须用;隔开。
-
-
什么是实参、什么是形参、什么又是默认参数呢?
为了提高函数的灵活性,我们引入了参数,参数分为实参和形参。
实参是函数调用时传入的参数;例如:假设有一个函数名为fn,则它函数调用为fn(),可以在()中传入参数。假设传入1、2,写成fn(1,2).1、2就是作为实参。
形参是函数声明时的参数。例如:在声明一个加法函数时,
function num(x,y)
{console.log(x,y)}
,其中的x,y就是形参。默认参数实际就是事先定义好的形参。当没有参数传入形参时,就使用默认参数。设置默认参数的好处就是:拿刚刚的加法案例来说,若用户不输入实参,会出现undefined+undefined,结果为NaN。设置默认参数后,就能避免NaN的出现。
- 最好保持形参与实参个数一致。形参接收实参。
- 如果是形参个数与实参个数不一致。若形参个数大于实参个数,形参个数超过实参个数后面的参数都会是undefined;若实参个数大于形参个数,形参无法接收全部的实参,多余的实参就会被忽略。
-
函数返回值是什么?
当函数被调用后,会执行函数体。函数体运行的结果就是通过函数返回值返回给函数调用者的。
语法:return 数据
例如:
function num(x,y) {
return x+y}
let s=num(1,2)
document.write(s)
//最后打印出的结果是3。调用函数后,1+2的结果被返回给s.- 注意:return换行后的代码不会被执行,切记return后数据不要再换行了。
- 有些函数没有返回值,比如:alert。没有返回值的话,默认的返回值类型为undefined。
-
局部作用域与全局作用域的区别是什么?
作用域:通常来说,一段程序代码中可能会出现相同名字的变量,为啥它们没有起冲突?因为有东西限定了该变量的可用范围,这个就是作用域。
作用域的使用提高了程序逻辑的局部性,增强了程序的可靠性,减少命名冲突。
局部作用域:指的是在某个区域内起作用。(因它与函数有关,所以也称为函数作用域)
全局作用域:在整个程序中都起作用。
js有全局变量和局部变量。
-
全局变量在任何区域内都可以访问和修改。
-
局部变量只能在当前的函数内部访问和修改。
-
一般在函数内部的变量是局部变量;函数外部的变量是全局变量。
注意:
-
一个特殊情况,在函数内部要是没有声明变量就赋值,那么这个变量是全局变量,强烈推荐不要这么干。(这样会造成全局变量的污染,不利于代码维护和理解)
-
函数内部的形参看作是局部变量。
-