JavaScript基础笔记补充
数组
定义
let arr=[...,...,...,...]
let arr=new Array(...,...,...,...)
新增
arr.push()//从后插入,在输出里面写arr.push(),则输出的是加入元素后的总长度
arr.unshift()//从前插入
删除
arr.pop()//删除最后一个元素并返回值,只能删一个值,在输出里面写arr.pop,则输出的是最后一个元素
arr.shift()//删除第一个元素,只能删一个,在输出里面写arr.shift,则输出的是第一个元素
arr.splice(起始位置,删除几个元素)//删除指定元素,在输出里面写arr.splice,则输出的是指定要删除的元素
长度
arr.length
arr.push()//在输出命令里面输出这个,则输出的是新增元素加入后数组的总长度
函数
定义
function 函数名() {代码}
如果函数重名,则自动认为是最后那一个
调用
函数名()
参数
function 函数名(形参) {代码}/函数名(实参)
形参不用let声明,直接写在括号里面
实参不设置,则默认为undefined,输出为NaN
可以给形参默认值:
function 函数名(参数名=0,参数名=0...){}
在函数里面写:x=x||0;y=y||0(逻辑中断)//相当于如果形参被定义了,则就不再是undefined,所以就直接等于定义的值;如果没有定义,就轮到||后面的0执行
逻辑中断
&&:如果其中一个是假,则返回false,如果两个都是真,则返回最后一个数(undefined、null、0和一切返回的都是自己)
||:如果都是假,则返回false,如果都是真,则返回第一个数,如果一真一假,则返回真的那一个(undefined、null、0和一切返回的都是别人)
返回值
相当于这个函数结果的值就是返回值,可以把函数加括号当成一个元素
返回方式
return +返回值
return后面代码不再执行,return 函数可以没有return,默认返回值是undefined
返回多个值,则这些值用[]包裹,用逗号隔开(相当于返回数组),输出时想要输出返回的其中一个值,则可以:输出(函数名(参数)[第几个返回值(参考返回顺序,从0开始)])
调用
输出(函数名())
let 元素名=函数名()
变量声明
变量在函数里面声明,则只能在函数内部用,外面要重新声明初始化
如果变量在函数里面未声明直接用,则相当于全局变量,外面也可以直接用(不要用!!!)
变量在不同地方重名,则先局部(可以往上一个函数里面找)再全局
匿名函数
function(){}
无法直接使用
匿名函数表达式
let 函数名=function(参数){}
调用:函数名()
表达式内部跟正常函数一样
和具名函数的区别
具名函数的调用可以写到任何位置
匿名函数的调用只能写在函数的后面
立即执行函数
(function getSum(){})()/(function getSum(){}())//用法跟匿名函数一样
立即执行函数
(function(形参){代码})(实参)/(function(形参){代码}(实参))
特点:立即执行,不需要调用,相当于一定义完立即调用,最右边的括号表示的是调用,左边的大括号表示的是调用的匿名函数
多个立即执行函数用‘;’隔开
存储
栈
放普通数据或者数组和对象的地址
存放基本数据类型
系统自动分配
堆
放数组和对象的数据
存放引用数据类型
由程序员分配释放,若不释放,则由垃圾回收机制回收