JS课堂笔记(4.17-4.21)

这篇具有很好参考价值的文章主要介绍了JS课堂笔记(4.17-4.21)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、循环

1.在程序中,一组被重复执行的语句被称为循环体,能否继续重复执行,取决于循环的终止条件。由循环体及循环的终止条件组成的语句,被称为循环语句。

2.循环执行的过程是①第一次循环:第一次赋值,然后条件判断,执行循环体,最后执行累计。

②非第一次循环:条件判断,执行循环体,最后执行累计。

3.continue,跳过本次进入下一次循环,从continue当前位置跳过,上面的还是会执行。

4.break,停止循环,从break当前位置停止循环体的执行。

5.循环的目的:为了重复的执行相同的任务或操作,减少了重复代码的书写。

6.for循环总结:
①for循环可以重复执行某些相同代码

②for循环可以重复执行些许不同的代码,因为我们有计数器。

③for循环可以重复执行某些操作,比如算术运算符加法操作。

④需求的增加,双重for循环可以做更多,更好看的效果。

⑤双重for循环,外层循环一次,内层for循环全部执行。

⑥for循环是循环条件和数字直接相关的循环。

⑦分析比写代码更重要。

二、while循环和do while循环

1.while循环:while(条件表达式){循环体代码}

执行思路:

①先执行条件表达式,如果结果为true则执行循环体代码;如果为false,则退出循环,执行后面代码。

②执行循环体代码

③循环体代码执行完毕后,程序会继续判断执行条件表达式,如条件仍为true,则会继续执行循环体,知道循环条件为false,整个循环过程才会结束。

2.do while循环:do{循环体--条件表达式为true时重复执行循环体代码}while(条件表达式)

执行思路:

①先执行一次do后的循环体

②再判断条件,如果为true,就会继续执行循环体,否则推出循环。

三、函数

⭐函数有自己的作用域,凡是在函数中声明的变量或者函数都只能在当前函数中生效,不会影响外部。

⭐函数重载:接受不同参数,执行不同的任务。

1.函数:就是封装了一段可被重复调用执行的代码块。通过此代码块可以实现大量代码的重复使用。

2.函数的使用:

①声明函数:function 函数名(){函数体代码}

②调用函数:函数名()

!!注意:

①function声明函数的关键字小写

②函数是做某件事情,函数名一般用动词加名词,如getSum

③函数不调用就不会执行

④函数调用时千万记得小括号()

3.函数的参数(动态控制函数行为的变量值):

形参和实参:function 函数名(形参1,形参2,形参3,.....){}

函数名(实参1,实参2,实参3,......)

①形参:函数接收的参数。(形参(形式/表示参数),接收实参,相当于变量,遵循变量规范)

②实参:函数调用时传入的参数。(实际的参数,相当于值。实参是传递给形参的。)

4.函数的返回值:return

①函数中遇到return就立即停止执行,return下面的代码就不执行了,立刻向函数调用返回。

②函数默认的返回值是undefined。

5.函数可以提升,而且是整体提升。

6.函数和变量同名的情况下,在提升的时候,函数权重要大于变量。

7.同名函数在提升的情况下,最后的函数生效。

8.return的用法

①return不管写在什么代码体里,只要往外能找到函数就可以生效。

②return只对当前函数生效。

四、数组

1.创建数组的两种方式:

①构造方式——构造===一个函数通过new关键字调用就形成了构造newArray()

②字面量形式:var arr = [ ]

字面量是我们程序员快速书写代码的一种写法,其底层还是调用了构造方式。

2.①基本数据类型是按值存储;引用数据类型是存储的地址。

②引用数据类型耗内存,比较吃内存;

对于特别占内存的值,除了单独的存储方式,为的是复用

③垃圾回收机制,对于基本数据类型使用完就被回收了,引用数据类型除非作用域被销毁,否则就会常驻内存了。

3.数组中的新增元素(索引/下标/游标)

①可以通过修改length长度以及索引号增加数组元素,length属性是可读写。

②通过修改数组索引新增元素

4.数组方法:分两类,一类可以修改原始数组,一类不可以。

四大业务:增加,修改,删除,查找

①添加:push——向数字的末尾添加元素。

unshift——向数组头部添加元素。

②删除元素

delete  数组名[下标]:只能删除值,但是位置还在。

尾部删除:数组.pop()

头部删除:数组.shift()

③修改      ts===typescript

用下标修改

④查找

findIndex:寻找下表

find:寻找元素

⑤合并数组

concat(返回新数组不会修改老数组,属于数据新增):数组.concat(需合并的数组)

⑥查询

for循环可以实现

内置的查找方法:find(找元素,找不到返回undefined)

findIndex(找下标)

⑦数组反转

reverse(可以修改原始数组):数组.reverse()

5.push和unshift可以改变原始数组,返回值是最新数组的长度。

6.清空数组:arr.length = 0;    var  arr  =  [ ]

7.pop和shift传参没用用,只能掉一次删一个,它们的返回值是被删除的元素。

8.回调函数:把一个函数作为参数给到另一个函数。

五、变量作用域、预解析和闭包

1.变量作用域:全局变量和局部变量

2.全局变量:在全局作用域下声明的变量叫做全局变量(在函数外部定义的变量)

①全局变量在代码的任何位置都可以使用

②在全局作用域下var声明的变量是全局变量

③特殊情况下,在函数内部使用var声明的变量也是全局变量(不建议使用)

3.局部变量:在局部作用域下声明的变量叫做局部变量(在函数内部定义的变量)

①局部变量只能在函数内部使用

②在函数内部var声明的变量是局部变量

③函数的形参实际上就是局部变量

4.全局变量和局部变量的区别

①全局变量在任何一个地方都可以使用,只有浏览器关闭时才会被销毁,因此比较占内存。

②局部变量只能在函数内部使用,当其所在的代码块被执行时,会被初始化;当函数运行结束后,就会被销毁,因此更节省内存空间。

5.作用域介绍

js的作用于分为全局作用域和局部作用域

①全局作用域:整个script标签或者是一个单独的js文件

②局部作用域(函数作用域):在函数内部就是局部作用域,只在函数内部起作用。

6.预解析介绍

JavaScript解析器在运行JavaScript代码的时候会分为两步:预解析和代码执行。

①预解析:js引擎就把js里面所有的var还有function提升到当前作用域的最上面。

②代码执行:按照代码书写的顺序从上往下执行。

7.预解析分为变量预解析(变量提升)和函数预解析(函数提升):

①变量提升就是把所有变量的声明提升到当前作用域的顶部,不提升赋值部分。

②函数提升就是把所有的函数声明提升到当前作用域的顶部,不调用函数。

③函数表达式调用必须写在函数表达式下面。

8.函数自执行

①将函数表达式用小括号括起来后,调用;

②将函数表达式调用后用小括号括起来。

9.函数前面使用“+”等符号是为什么?

为了防止代码压缩后函数和其他的代码拼成一行导致的语法错误,函数不可执行的问题。

10.arguments:表示形参的集合,是伪数组(长得像数组,但是不能使用数组的方法)

11.arguments有只读特性,可以使用length和下标取值。

12.如何将伪数组变为数组?

①for循环可以实现

②ES6的方法:var  arr  =  [...arguments];

13.作用域链就是函数嵌套的时候,内部函数可以访问外部函数的值。

14.闭包:两个函数嵌套,内部函数访问外部函数的一个值,且内部函数需要被return暴露出来,这个过程叫闭包。

15.闭包的特性:使用嵌套函数访问上游变量的时候,这个变量因为特殊的作用域环境,而不能被垃圾回收机制释放,所造成的变量常驻内存,这才是闭包的真正原因。文章来源地址https://www.toymoban.com/news/detail-422909.html

到了这里,关于JS课堂笔记(4.17-4.21)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 云计算课堂笔记——参考模型

    12.9参考模型 OSI(open system internet)七层参考模型(不管厂商怎么弄,就要按七层模型来弄(同一标准)) OSI/RM(参考模型) ISO--国际公有化组织——提出网络参考模型标准(统一标准) 分层的意义: 1.降低层次之间关联性,上一层都在下层基础上提供增值服务 2.大而化小的思

    2024年02月02日
    浏览(36)
  • mysql课堂笔记 mac

    目录 启动mac上的mysql 进入mysql mac windows 创建数据库 创建表 修改字段数据类型 修改字段名 增加字段 删除字段 启动mac上的mysql 直接输入你的开机密码即可。 编辑 进入mysql mac windows (root为你的用户名) 输入密码 创建数据库 创建表 示例: 没有加 ; 回车意味着这一句语句还没

    2024年02月09日
    浏览(30)
  • 03-JVM虚拟机-课堂笔记

    灵魂三问: JVM是什么? JVM广义上指的是一种规范。狭义上的是JDK中的JVM虚拟机。 为什么要学习JVM? 面试过程中,经常会被问到JVM。 研发过程中,肯定会面临一些重难点问题与JVM有关系。例如:线程死锁、内存溢出、项目性能优化等等。 基础不牢,地动山摇。想深入掌握

    2024年01月16日
    浏览(34)
  • JSP_5.16_课堂笔记

    完整 的可以与 数据库 连接的 登录界面 的代码 1、加载驱动(告诉JDBC程序,连接的是哪一个数据库) Class.forName (“驱动程序名”); MySQL : com.mysql.jdbc.Driver com.mysql.cj.jdbc.Driver Oracle : oracle.jdbc.driver.OracleDriver SQL Server : com.microsoft.jdbc.sqlserver.SQLServerDriver 2、获取和数据库之间的连

    2024年02月05日
    浏览(32)
  • 大数据课堂笔记——lianxi数据库

    创建数据库 create database 库名; create database lianxi; 打开 use 库名; use lianxi; use table 表名; 创建表(主键:primary key ) create table 表名 (列名1 数据类型1,……); create table course (couid char(4), couname char(10), teachername char(3) ); 删除表 drop database 数据表名; 显示命令运行结果 show table

    2024年04月25日
    浏览(28)
  • 【云计算与大数据概述 】课堂笔记

    1.1 云计算基础 1.1.1 云计算简介 云计算的技术内容包括分布式计算技术,虚拟化技术,网络技术,服务器技术,数据中心技术,云计算平台技术,存储技术等 云计算的定义:一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需求提供给计算机和其他

    2024年02月06日
    浏览(32)
  • 云计算与虚拟化技术【课堂笔记】

    鲲鹏产业学院 云计算与虚拟化技术 课堂笔记 目录 一、云计算系统及演进 云计算的定义 云计算的三个阶段 云计算的三种服务模式 云计算的四种部署模型 二、未完待续 总结          云计算的本质是一种服务提供模型 ,通过这种模型可以随时、随地、按需地通过网络访

    2024年02月01日
    浏览(32)
  • linux复习笔记01(小滴课堂)

           点击下一步在自定义硬件中: 我们可以删除我们不使用的,后续如果需要再加上即可。    然后我们就可以开启这台虚拟机了。 我们可以进行下载cetos7.   这里选择简体中文就可以。   时间的设置。   可以开启下网络。   在这里选择设置root密码,我设置的密码是

    2024年02月10日
    浏览(25)
  • alibaba学习笔记03(小滴课堂)

    自定义Ribbon负载均衡策略实战 启动3个视频服务和一个订单服务: 我们可以看到它是随机调用的。 也可以使用其他负载均衡策略。 讲解新一代负载均衡组件feign介绍 这种方式去写死接口肯定是不妥当的。 于是我们使用feign负载均衡组件: 改造微服务 集成Feign实现远程方法调

    2024年01月19日
    浏览(30)
  • redis复习笔记06(小滴课堂)

    分布式锁核心知识介绍和注意事项 基于Redis实现分布式锁的几种坑 综合伪代码: 运行:

    2024年02月22日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包