前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JavaScript秘密笔记 第四集

JavaScript秘密笔记 第四集

原创
作者头像
李才哥
修改2020-08-17 10:21:37
7890
修改2020-08-17 10:21:37
举报
文章被收录于专栏:李才哥李才哥

1. **循环

2. ***数组

1. **循环:

什么是: 让程序反复执行同一代码段

何时: 只要一段代码需要反复执行时

三要素:

1. 循环条件: 判断循环能否继续执行的条件

只有满足条件,才可继续执行循环体

一旦条件不满足,就自动退出循环

2. 循环变量: 循环条件中用作比较和判断的变量

初始值:

向着不满足循环条件的趋势不断变化, 每次递增/递减n

3. 循环体: 循环反复执行的代码段

死循环: 循环条件永远满足,导致循环无法自动退出

如何: 3种:

1. while循环:

声明并初始化循环变量;

while(循环条件){//只要/当...的时候

循环体

修改循环变量

}

何时: 只要必须先判断循环条件才能执行循环

2. do...while循环:

声明并初始化循环变量;

do{

循环体

修改循环变量

}while(循环条件);

何时: 即使循环条件不满足,也至少能执行(试)一次时

while vs do while

当第一次循环条件都满足时,两者完全相同

只有第一次循环条件不满足时,差别:

while是一次都不执行

do...while是至少可以执行一次

3. for循环: 简化版的while循环:

for(声明并初始化循环变量;循环条件; 修改循环变量){

循环体

}

局限: 只能在循环体执行后,才修改循环变量的值

何时: 只有循环变量的变化有规律时,才用for循环

如果循环变量的变化没有规律,就用while循环

更简化:

1. for循环第一部分,可同时声明并初始化多个变量

2. for循环第三部分,可执行多个短小的语句,用逗号分隔

强调: 绝不能改变源程序的执行顺序

强调: 如果for循环,简化到没有循环体,则结尾必须加分号

break和continue:

break: 中断并退出当前结构的执行

何时: 只要希望不再执行后续循环时

continue: 跳过本轮循环,继续下一轮

何时: 后续循环依然希望执行时 其实,颠倒判断条件,就可避免使用continue

嵌套循环:

什么是: 在外层循环内,又执行了另一个内层循环

2. ***数组:

什么是: 内存中连续存储多个数据的存储空间,再起一个名字

何时: 只要连续存储多个数据,都用数组

为什么: 连续存储的多个数据,非常便于统一查找和使用

程序=数据结构+算法

数据结构: 数据在内存中的存储结构

算法: 解决问题的步骤

好的数据结构可极大提高程序的执行效率

如何:

1. 创建: 3种:

1. 创建一个空数组:

var 数组名=new Array()

可简化: var 数组名=[];

何时: 只要创建数组时,暂时不知道数组的内容

2. 创建数组同时,就保存数据

var 数组名=new Array(值1,值2,...);

可简化: var 数组名=[值1,值2,...];

何时: 只要创建数组时,已经知道数组的内容

3. 创建n个空元素的数组:

var 数组名=new Array(n);

何时: 创建数组时,如果仅知道将来的数据个数

.length属性: 记录数组中理论上的元素个数!

元素: 保存在数组中的每个数据,称为一个元素

下标(i,index): 序号,数组中唯一标识每个元素存储位置的房间号

默认: 下标从0开始,连续递增,不重复

2. 赋值: 将数据保存到数组中指定位置的元素中

arr[i]=值

特殊: 如果给不存在位置强行赋值,不会报错!

会在指定位置自动创建新元素保存数据。

3. 取值: 取出数组中指定位置的元素内容使用

arr[i]

特殊: 强行访问数组中不存在的位置的值,不会报错,而是返回undefined

总结: 数组中每个元素的用法和普通变量完全一样!

数组的另一个称呼: 一组变量的集合,再起一个名字.

.length的固定用法:

.length永远等于最大数字下标+1——自动维护

固定套路:

1. 获得最后一个元素: arr[arr.length-1]

获得倒数第n个元素: arr[arr.length-n]

2. 在数组末尾追加一个新元素: arr[arr.length]=新值

3. 其实length属性可修改: ——缩容

比如: 只删除数组末尾的一个元素: arr.length--

删除末尾的n个元素: arr.length-=n;

清空数组: arr.length=0;

js数组三个不限制:

1. 不限制元素的数据类型

2. 不限制元素个数

3. 不限制下标越界

***数组是引用类型的对象:

什么是对象: 内存中存储多个数据的一块独立存储空间

什么是引用类型: 值无法保存在变量本地的数据类型

实际数据都存储在window之外的独立对象(存储空间)中

每个对象都有一个唯一的地址值,标识其存储位置

变量中其实仅保存地址值,通过地址引用对象

回顾按值传递:

对原始类型的值: 修改新变量,不影响原变量

对引用类型的对象: 修改新变量,等效于直接修改原对象!

因为按值传递,将原变量中的地址值,复制给新变量

新旧变量用相同的地址值,引用了同一个对象

用新变量修改对象,等效于直接修改原对象。

垃圾回收:

什么是: 引擎会自动释放不再使用的对象的内存空间

为什么: 内存空间的总量是有限的!

何时: 只要一个对象不再被使用,就会被垃圾回收

如何: 不用自己做!

垃圾回收器: 专门监控内存中的对象,并释放不再被使用的对象的小程序

随程序启动而启动,并伴随主程序在后台同步执行.

一个对象,只要还被任意一个变量引用,就不会被回收

建议: 当一个对象不再使用时,应主动释放对对象的引用:

如何: var 变量=null;

当一个对象不再被任何变量引用时,就会被垃圾回收!

遍历:

什么是: 对数组中每个元素依次执行相同的操作

何时: 只要想对数组中每个元素执行相同的操作时

如何:

for(var i=0;i<arr.length;i++){

arr[i]//当前正在遍历的元素内容

}

作业: 100题: 1,8,9,11,12,14,17

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档