0
点赞
收藏
分享

微信扫一扫

四个月某机构前端培训JS(十)

        对了,从事工作自己的表达能力一定要多加练习,想象一下你自己站在一个舞台上,下面有成百上千的人,你会不会紧张。这种能力只有多练才能够完美解决。事先准备好材料也是一个不错的法子。万事预则立,不预则废。就是这个道理。

上课测试:

  1. 冒泡排序:

两两进行比较,大的放后面,最后一次不用进行比较,没走一次大的就放后面了,之后最后面的元素不再参与比较。最后一次比较没有意义。

2.函数定义的总结:8个点

函数是封装了一段可以重复执行的代码,对外只暴露一段函数名,相当于用户做了某件事情,某件事情就是函数。函数别称:函数,方法、API、接口;函数命名用动词,小驼峰。调用一次执行一次,不调用不执行。只要调用就会进入函数体。先声明后使用,和变量一样。函数就是某个动作。

3.形参和实参定义知识点总结

function 函数名(形参){

let 形参 ;//系统省略

形参=实参;//调用时运行,系统省略。

函数体;

}

函数名(实参);

形参:形式上的参数。

实参:实际参与运算的数据。

形参就是只声明未赋值的变量,只声明未负值的变量会显示undefined。调用函数的时候,把实参赋值给形参;形参和实参的个数尽量保持一致。

4.返回值定义的理解

返回值,接收函数运行完后最终的结果。

增加return, return 事情的结果。 系统默认返回undefined。手动返回值则覆盖undefined。return 之后的代码不再执行。函数的返回值,可以选择接收,也可以不接收

5.Arguments定义,可以接收用户输入不确定的数组。

函数自带的,有函数才有这个东西,依托于函数。脱离函数就无法使用

系统内置的关键字,它是一个伪数组,保存了用户输入的实参。

一般用于实参个数不确定的情况。

一、

  1. 函数的两种声明定义方式:

  • null数据类型 object(复杂数据类型)但是,null是数据类型。

  • 它等于null,下一次清理内存function函数就被清理调了。

run就不再是函数了 js第四次报错

  • 这种方法输出了函数的声明。

  • 箭头函数定义

二、作用域定义

局部作用域:在函数内部。

js种变量的作用域:全局变量(全局作用域声明的变量),

形参是局部变量。

2. js没有块级作用域

let是es6的关键字。使用let就显示num未定义。

下午下课

一、

  1. 作用域链 :函数使用变量的时候,采用就近原则。预解析定义。

案例

1问,没声明也没有赋值就报defined,未定义。

2问预解析后 num1就是一个只声明为赋值的变量,浏览器打印出undefined。

遇到function后第二条规则走

与解析后,把鼠标经过的部分提升到最前面。

如果是这种情况:

预解析后 又跑到调用函数前面了。 fn();在次形式写的位置是没有意义的。

  • skill();只能放后面,这种匿名函数写法。

预解析后 变量声明提升,赋值留在原地。

如果说skill放后面:

预解析后从上往下执行。 第一行, skill 是一个变量,变量无法当函数用。所以提示skill is not a function

测试一下细节:这样写,第一行会报错,提示skill is not defined

原因:js有个预解析

预解析定义方法:

  1. 预解析案例。
  • 结果为10;

预解析后代码

结果undefined

预解析后:

  • 案例二

结果为:undefined只定义为赋值 (is not defined 未定义未赋值)

预解析后

这种情况就不用注意全局变量num的值了。

  • 函数的相互调用案例

需求:用户输入年份,输出当前2月份的天数。

举报

相关推荐

0 条评论