web学习打卡:JavaScript中

本文深入探讨JavaScript中的变量作用域概念,包括函数作用域、全局作用域及声明的提前现象。同时,详细讲解JS的分支结构(if、if-else、switch-case)和循环结构(while、do-while、for),并介绍数组的基本操作和数据结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

变量中的作用域

什么是作用域?
变量或者函数可以访问的范围。他控制着变量或函数的可见性和生命周期。
在js中变量或者函数的作用域可分为:

  1. 函数作用域:只在当前函数内可访问。
  2. 全局作用域:一经定义,在代码任何位置都可访问。

函数作用域中的变量
等于局部变量,且全局作用域中的变量为全局变量。

声明的提前
js在执行之前,会将左右的声明的变量和function声明的函数,预读到所在作用域的顶部,但是,对变量的赋值,还保留在原来的位置处。
(未声明的变量->undefined)
按值传递
传参时,实际上将 实参 复制了一份副本给了函数。在函数体内对变量进行修改,实际上是不会影响到外部实参变量的。

js的分支结构

程序=数据+算法
程序有三种结构:顺序结构、分支结构、循环结构。
分支结构:

1. if结构

:当条件满足时运行某些语句,当条件不满足时,则不运行这些语句。
if语句内,条件语句块内必须为Boolean的值。如果表达式不是的话,js会自动转换。
if语句块{}可省略,如果省略的话,那么if只控制它下面第一条的语句。

2. if-else结构

:当条件不够时,运行某些语句,当条件不满足时,运行另外的语句。
else-if:复杂/多重if语句,最后else的模块可选择性的添加。

3. switch-case
特殊的分支结构,可根据一个表达式的不同取值,从不同程序入口开始执行。
计算变量/表达式的值,将计算结果与case后数值判断,则执行对应case语句。

switch-case在实现分支结构功能时和if-else的主要区别是什么?
if-else可判断相等或不等的情形适用性更广;switch-case结构更清晰、效率更高;但一般只用于指定变量相等于某个范围的某个值时。

循环:一遍遍重复相同的代码。
循环中的两大要素:1.循环条件:什么时候开始-结束。
2.循环操作:循环体,循环过程中干了什么。
while循环
1.判断条件 2.如果为真,则执行循环操作 3.在判断条件,如为假则退出。(避免条件一直为真,成为死循环)
continue关键字:用在循环中,终止本次循环,执行下次循环。
break关键字:终止整个循环结构。

do-while循环
1.执行循环体 2.在判断循环,如果为真则继续 3.若为假,则终止或者退出
特点:无论满足与否,至少执行一次。

for循环
1.计算表达式的值 2.计算表达式为Boolean表达式的值,如为ture则执行循环体,否则退出。 3.执行循环体,执行表达式3,计算表达式2,如为ture则执行循环体,否退出。4.如此往复,直到表2为false。

数组

内存中连续存储多个数据的数据结构。
算法:解决问题的步骤。
数据结构:数据结构在内存中的存储结构。

1.创建数组,但同时初始化。(已知元素内容)
2.穿那个空数组,在添加元素。

访问数组中的元素:
元素:数组中的每个数据
如何访问:下标,数组中唯一标识每个元素存储位置的序号。
特点:从0开始,连续不重复。
何时:只要访问数组元素,只能用下标。
如何:数组名[i]-用法与单个变量完全一样。

数组GET操作与SET操作

设置数组元素的值-SET
下标从0开始,最大到lenth-1;

var scores=[95,98,100 ];
arr 5[2]=87;//将值为100的元素赋值98
arr 5[3]=98;//在数组尾部添加新元素

GET操作
不会抛出数组下标越界异常。

1.获得数组最后一个元素:arr[arrlength-1]
2.获得倒数第n个元素位置:arr[arrlength-n]
3.数组缩融:减小arr.length的数值,删除结尾多余元素。
4.遍历数组:一次访问数组中每个元素;对每个元素执行相同操作。

如果下标不连续的数组——稀疏数组。

三个不限制:
1.不限制数组元素的个数:长度可变。
2.不限制下标越界
获取元素值:不报错,返回undefined
修改元素的值:不报错,自动在指定位置创建新的元素,并自动修改length+1。
3.不限制元素的数据类型
索引数组:下标为数字的数组。(索引数组中下标无意义)
关联数组:可自定义下标名称。(只要希望每个元素有专门的名称时)

索引数组和关联数组对比
|索引数组| 关联数组 |
|1.以字符串输出|不能以字符串输出|
| 2.下标是数字 | 字符串(自定义) |
|3.length属性有效|无效 |
|4.访问元素均为数组名|
| 5.可用for循环遍历|for-in遍历 |
查找: 遍历 不用遍历
受储存位置的影响 无关
受元素个数的影响 无关

今天就写到这吧。。。我实在是太困了。
这些都是在慕课上学习的笔记,觉得那个老师讲的很好,很全面,比自己W3C强多了。
特此整理,为以后的学习夯实基础。

### PyCharm 打开文件显示全的解决方案 当遇到PyCharm打开文件显示全的情况时,可以尝试以下几种方法来解决问题。 #### 方法一:清理缓存并重启IDE 有时IDE内部缓存可能导致文件加载异常。通过清除缓存再启动程序能够有效改善此状况。具体操作路径为`File -> Invalidate Caches / Restart...`,之后按照提示完成相应动作即可[^1]。 #### 方法二:调整编辑器字体设置 如果是因为字体原因造成的内容显示问题,则可以通过修改编辑区内的文字样式来进行修复。进入`Settings/Preferences | Editor | Font`选项卡内更改合适的字号大小以及启用抗锯齿功能等参数配置[^2]。 #### 方法三:检查项目结构配置 对于某些特定场景下的源码视图缺失现象,可能是由于当前工作空间未能正确识别全部模块所引起。此时应该核查Project Structure的Content Roots设定项是否涵盖了整个工程根目录;必要时可手动添加遗漏部分,并保存变更生效[^3]。 ```python # 示例代码用于展示如何获取当前项目的根路径,在实际应用中可根据需求调用该函数辅助排查问题 import os def get_project_root(): current_file = os.path.abspath(__file__) project_dir = os.path.dirname(current_file) while not os.path.exists(os.path.join(project_dir, '.idea')): parent_dir = os.path.dirname(project_dir) if parent_dir == project_dir: break project_dir = parent_dir return project_dir print(f"Current Project Root Directory is {get_project_root()}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值