JavaScript基础 第四天

1.函数

2.其他知识点

  • 逻辑中断
  • 转换为布尔型

一.函数

1.函数的基本使用

2.函数的参数

3.函数返回值

4.作用域

5.匿名函数

1.1 函数的基本使用

① 函数:function 被设计为执行特定任务的代码块

② 说明:函数可以把具有相同或逻辑相似的代码包裹起来,通过函数调用执行这些被包裹的代码逻辑,这么做的优势是代码精简方便复用

③ 函数的声明语法

javascript 复制代码
function 函数名() {
    函数体
}

④ 函数名命名规范

  • 和变量名基本一致
  • 尽量小驼峰式命名法
  • 前缀应该为动词
  • 命名建议:常用动词约定

⑤ 函数的调用语法

  • 函数名()
javascript 复制代码
function sayHi () {
  console.log("hihi~~~")
}
sayHi()

1.2 函数的参数

① 调用函数的时候需要传入数据,就要给函数传参,可以极大提高函数的灵活性

② function 函数名 (参数列表) {

函数体

}

③ 参数列表

  • 传入数据列表
  • 声明这个函数需要传入几个数据
  • 多个数据用逗号隔开
javascript 复制代码
function getSum (start, end) { // 形参 
    let sum = 0
    for (let i = start; i <= end; i++) {
          sum += i
    }
    console.log(sum)
  }
  getSum(1, 100)  // 实参

④ 形参:声明函数时写在函数名右边小括号里的叫形参(形式上的参数)

实参:调用函数时写在函数名右边小括号里的叫实参(实际上的参数)

形参可以理解为:在这个函数内声明的变量,实参是给这个变量赋值,开发中尽量保持形参和实参个数一致

⑤ 参数默认值: 默认值只有在缺少实参参数传递的时候才会被执行,所有有参数会优先执行传递过来的实参,否则默认为undefined

javascript 复制代码
function getSum (m = 0, n = 0) {
    let sum = 0
    for (let i = m; i <= n; i++) {
        sum += i
    }
    console.log(sum)
   }
   getSum()

1.3 函数的返回值

① 当调用某个函数,函数会返回一个结果出来,就是一个有返回值的函数

② 有些函数有返回值,有些函数没有返回值,要根据需求不同,来设定需不需要返回值

③ 语法: return 数据

④ 细节:

  • 在函数体中使用return 关键字能将内部的执行结果交给函数外部使用
  • return 后面的代码不会再被执行,会立即结束当前函数,所以return后面的数据不要换行写
  • return函数可以没有return, 这种情况函数默认返回值为undefined
  • 两个相同的函数后面的会覆盖前面的函数
  • 在JavaScript中实参的个数和形参的个数可以不一致
  • 如果形参过多,会自动填上undefined
  • 如果实参过多,多余的实参会被忽略

1.4 作用域

① 概念:一段代码程序中所用到的名字并不总是有效可用的,而限定这个名字的可用性代码范围就是这个名字的作用域

② 作用:作用域的使用提高了程序逻辑的局部性,增强了程序的可靠性,减少了名字冲突

③ 分类:

  • 全局作用域:全局有效

作用于所有代码执行的环境或者一个独立的js文件

  • 局部作用域:局部有效

作用于函数内的代码环境,就是局部作用域,因为跟函数有关,所以也被称为函数作用域

④ 全局变量和局部变量

  • 全局变量:函数外部let的变量,全局变量在任何区域都可以访问和修改
  • 局部变量:函数内部let的变量,局部变量只能在当前函数内部访问和修改
  • 函数内部的形参可以看作是局部变量

特殊情况:如果函数内部,变量没有声明,直接赋值,也被当做全局变量,但是不推荐

⑤ 变量的访问规则

  • 只要是代码,就至少有一个作用域
  • 写在函数内部的为局部作用域
  • 如果函数中还有函数,那么在这个作用域中又可以诞生一个作用域
  • 在能够访问的情况下,先局部,局部没有再找全局

1.5 匿名函数

① 函数分为两大来:

  • 具名函数

声明:function fn() {}

调用:fn()

  • 匿名函数

function() { }

② 匿名函数

概念:没有名字的函数,无法直接使用

使用方式: 函数表达式 立即执行函数

③ 函数表达式

  • 概念:将匿名函数赋值给一个变量,并且通过变量名称进行调用,我们将这个称为函数表达式
  • 语法

let fn = function() {

// 函数体

}

javascript 复制代码
let fn = function (x, y) {
  console.log(x + y)
}

fn(1, 2)
  • 函数表达式与具名函数的不同:

1.具名函数的调用可以写到任何位置

2.函数表达式必须先声明表达式,后调用

④ 立即执行函数

场景:避免全局变量之间的污染, 保存后立即执行,必须加分号执行

语法:

javascript 复制代码
// 第一种写法
(function (x, y) {
   console.log(x + y)
})(1, 2);

// 第二种写法
(function (x, y) {
    console.log(x + y)
}(1, 3));

二. 其他知识点

2.1 逻辑中断

概念:逻辑运算符中的短路

短路:只存在于&&和||中,当满足一定条件会让右边代码不执行

原因:通过左边能得到整个式子的结果,因此没必要再判断右边

|------|-------------|
| 符号 | 短路条件 |
| && | 左边为false就短路 |
| || | 左边为true就短路 |

javascript 复制代码
function getSum (x, y) {
  // 类似于默认值,逻辑中断
    x = x || 0
    y = y || 0
    console.log(x + y)
}
getSum(1, 2)

2.2 转换为boolean型

Boolean(内容)

0 undefined null false NaN转换为布尔值之后都是false, 其余都为true

相关推荐
Qter_Sean4 分钟前
自己动手写Qt Creator插件
开发语言·qt
何曾参静谧8 分钟前
「QT」文件类 之 QIODevice 输入输出设备类
开发语言·qt
老码沉思录1 小时前
写给初学者的React Native 全栈开发实战班
javascript·react native·react.js
我不当帕鲁谁当帕鲁1 小时前
arcgis for js实现FeatureLayer图层弹窗展示所有field字段
前端·javascript·arcgis
那一抹阳光多灿烂1 小时前
工程化实战内功修炼测试题
前端·javascript
爱吃生蚝的于勒1 小时前
C语言内存函数
c语言·开发语言·数据结构·c++·学习·算法
小白学大数据3 小时前
Python爬虫开发中的分析与方案制定
开发语言·c++·爬虫·python
冰芒猓4 小时前
SpringMVC数据校验、数据格式化处理、国际化设置
开发语言·maven
失落的香蕉4 小时前
C语言串讲-2之指针和结构体
java·c语言·开发语言
红中马喽4 小时前
JS学习日记(webAPI—DOM)
开发语言·前端·javascript·笔记·vscode·学习