Javascript学习笔记——数组,函数,作用域,预解析
目录
1|0数组
1|1数组的声明
1|2数组的访问
用下标访问数组元素越界时会得到undefined。
获取数组长度:arr.length
1|3新增数数组元素
- length属性是可读写的,直接修改length的值。扩容之后,新增的位置是undefined。
- 直接使用下标赋值,长度自动更新。空位置自动补undefined。
push(x)
1|4常用方法
方法名 | 说明 | 返回值 |
---|---|---|
push(参数1...) | 未尾添加一个或多个元素,注意修改原数组 | 返回新的长度 |
pop() | 删除数组最后一个元素,把数组长度减1。无参数、修改原数组组 | 返回它删除的元素的值 |
unshift(参数1...) | 向数组的开头添加一个或多个元素,注意修改原数组 | 返回新的长度 |
shift() | 删除数组的第一个元素,数组长度减1。无参数、修改原数组 | 返回第一个元素的值 |
2|0函数
2|1函数的两种声明方式
利用函数关键字自定义函数(命名函数)
函数表达式(匿名函数)
fun是变量名,不是函数名。
2|2形参和实参
- 如果实参的个数和形参的个数一致则正常输出结果
- 如果实参的个数多于形参的个数会取到形参的个数
- 如果实参的个数小于形参的个数,多余的形参定义为undefined。
- 简单数据类型传形参,复杂数据类型传实参。
2|3返回值
如果函数没有return,则返回undefined。
2|4arguments
arguments对象,以伪数组的形式存储了所有的实参。
之所以成为“伪数组”,是因为他具有length属性,也可以按索引访问,但是没有真正数组的一些方法,例如pop()
, push()
等等。
arguments是每个函数内置的对象。
3|0作用域
全局作用域:整个script标签或者是一个单独的js文件
局部作用域(函数作用域):在函数内部就是局部作用域
如果在函数内部没有声明直接赋值的变量也属于全局变量
ES6标准以前没有块级作用域
3|1从执行效率来看全局变量和局部变量
(1)全局变量只有浏览器关闭的时候才会销毁,比较占内存资源
(2)局部变量当程序执行完毕就会销毁,比较节约内存资源
3|2作用域链
只要是代码,就至少有一个作用域。
写在函数内部的叫局部作用域。
如果函数中还有函数,那么在这个作用域中就又可以诞生一个作用域。
根据在内部函数可以访问外部函数变量的这种机制,用链式查找决定哪些数据能被内部函数访问,就称作作用域链。
下级作用域可以访问上级作用域的变量。
下级作用域的变量名可以屏蔽上级作用域的变量名。
访问变量时采用就近原则逐级向上查找是否存在变量的定义。
4|0预解析
js引擎运行js分为两步:预解析,代码执行
- 预解析js引擎会把js里面所有的
var
还有function
提升到当前作用域的最前面 - 代码执行按照代码书写的顺序从上往下执行
4|1变量提升和函数提升
预解析分为变量预解析(变量提升)和函数预解析(函数提升)
- 变量提升就是把所有的变量声明提升到当前的作用域最前面不提升赋值操作
- 函数提升就是把所有的函数声明提升到当前作用域的最前面不调用函数
因此函数表达式调用必须写在函数表达式的下面
练习
答案
相当于
__EOF__

本文作者:Tyu
本文链接:https://www.cnblogs.com/Tyu-t/p/15763822.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/Tyu-t/p/15763822.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
分类:
Javascript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix