javascript学习笔记(四)function函数部分

下面是JavaScript学习笔记(四)Function函数部分的完整攻略。

一、函数的定义

JavaScript中的函数使用function关键字来定义,函数中的代码块可以在任何时间被调用多次。函数可以带着参数来进行运算,也可以返回值(有时不返回值,而是引起副作用)。

1. 基本语法

function functionName(parameters){
  // 函数执行的代码
  return returnValue;
}
  • functionName: 函数名,变量名规则适用。
  • parameters:参数列表,用逗号分隔多个参数。
  • returnValue:函数的返回值,在函数里使用return语句返回。

2. 示例

function add(x, y){
  return x + y;
}

var result = add(2, 3);
console.log(result); // 输出 5

二、函数的参数

1. 默认参数

默认参数用于在没有传递值或传递undefined时使用默认值。

function add(x = 0, y = 0) {
  return x + y;
}

console.log(add()); // 0
console.log(add(1)); // 1
console.log(add(1, 2)); // 3

2. 不定参数

在ES6中,我们可以使用不定参数来接收不确定数量的实参。语法如下:

function sum(...numbers) {
  let total = 0;
  for(let number of numbers){
    total += number;
  }
  return total;
}

console.log(sum(1, 2, 3)); // 6
console.log(sum(4, 5, 6, 7)); // 22

三、函数的调用方式

JavaScript中的函数调用方式有4种。

1. 函数式调用

这种方式我们最常用到,即直接调用函数。

function add(x, y) {
  return x + y;
}

console.log(add(1, 2)); // 输出3

2. 方法式调用

我们可以使用对象调用方法,这时函数中的this关键字指向该对象。

let obj = {
  x : 1,
  y : 2,
  add: function(){
    return this.x + this.y;
  }
};

console.log(obj.add()); // 输出3

3. 构造函数模式调用

使用new操作符和构造函数来创建一个新对象,通过this关键字来设置属性。

function Person(name, age) {
  this.name = name;
  this.age = age;
 }

let person = new Person('张三', 24);
console.log(person.name, person.age); // 输出张三 24

4. apply/call调用

我们可以使用apply和call方法来改变函数的this指向:

function add(x, y){
   return x + y;
}

console.log(add.apply(null, [1, 2])); // 输出3
console.log(add.call(null, 1, 2)); // 输出3

apply的第一个参数是改变后的this值,第二个参数是一个数组,其中的元素将作为参数传递给函数。

call的使用方式和apply类似,不同的是call的形参需要一个一个传递,而apply可以使用数组。

四、函数的作用域

作用域是指变量的可见范围,它决定了部分代码可以访问哪些变量。JavaScript有两种主要的作用域:全局作用域和函数作用域。

1. 全局作用域

在所有函数以外定义的变量拥有全局作用域,即在脚本的任何位置可被调用。

var name = "张三"; // 全局作用域

function greetings() {
  console.log('您好,' + name);
}

greetings(); // 输出您好,张三

2. 函数作用域

函数作用域简单来说就是指由变量声明在函数内,仅在函数内部可见。

function greetings(name) {
  var message = '您好,' + name; // 函数作用域(局部作用域)
  console.log(message);
}

greetings('张三'); // 输出您好,张三
// console.log(message); // 抛出 "ReferenceError"

3. 块级作用域

在ES6中,我们可以使用let和const关键字,通过将变量声明位于块级作用域中。

if (true) {
  let name = '张三';
  console.log(name); // 输出张三
}
// console.log(name); // 抛出 "ReferenceError"

五、函数的返回值

1. 返回值类型

一个函数可以返回一个值,或者不返回值(undefined)。

function add(x, y) {
  return x + y;
}
console.log(add(2, 3)); // 输出5

function welcome(name) {
  console.log('您好,' + name);
}
console.log(welcome('张三')); // 输出undefined

2. 返回多个值

在JavaScript中,函数只能返回一个值,但是我们可以使用数组或对象的方式返回多个值。

function getPerson() {
  return {
    name: '张三',
    age: 24,
  };
}
console.log(getPerson()); // 输出 { name: '张三', age:24 }

六、总结

上述内容是JavaScript学习笔记(四)的Function函数部分的完整攻略,涵盖了函数的定义、参数、调用方式、作用域和返回值,其中还提供了不少示例。掌握这些内容可以帮助你更好地使用JavaScript中的函数。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javascript学习笔记(四)function函数部分 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • JavaScript字符串对象toLowerCase方法入门实例(用于把字母转换为小写)

    JavaScript字符串对象 toLowerCase() 方法入门实例 toLowerCase() 方法简介 JavaScript 中的字符串对象有一个 toLowerCase() 方法,用于把字符串中的字母都转换成小写字母。该方法是字符串类型的实例方法,意味着只能通过字符串对象调用该方法。 toLowerCase() 方法语法 string.toLowe…

    JavaScript 2023年5月28日
    00
  • WEB开发之注册页面验证码倒计时代码的实现

    WEB开发之注册页面验证码倒计时代码的实现可以通过以下步骤完成。 1. HTML结构 首先,我们需要在HTML中添加一个用于显示倒计时的标签,并为获取验证码的按钮添加一个点击事件,并在点击事件中调用计时器函数。 示例代码: <div> <label for="phone">手机号码:</label> &…

    JavaScript 2023年6月10日
    00
  • vue elementUI 表单校验的实现代码(多层嵌套)

    实现Vue ElementUI表单校验的过程一般包含以下步骤: 引入ElementUI的表单组件和校验规则 在HTML模板中编写相应的表单代码 在Vue实例中定义表单数据和验证规则 编写验证方法并将其绑定到表单组件中 下面将详细讲解这些步骤。 引入ElementUI表单组件和校验规则 在使用ElementUI进行表单校验之前,需要先引入相应的表单组件和校验规…

    JavaScript 2023年6月10日
    00
  • js实现点击获取验证码倒计时效果

    下面是“js实现点击获取验证码倒计时效果”的完整攻略。 1. 编写HTML 在HTML中添加一个获取验证码的按钮和一个显示倒计时的区域,代码如下: <input type="button" value="获取验证码" id="btn" onclick="getCode()"…

    JavaScript 2023年6月11日
    00
  • 最佳JS代码编写的14条技巧

    下面我将详细讲解“最佳JS代码编写的14条技巧”的完整攻略。 1. 使用语义化的命名 在编写JS代码时,我们应该尽可能使用语义化的命名,以便代码更加易读易懂。比如,在定义变量名时,应该尽量使用描述性的单词。 例如: let userName = ‘John Doe’; 这样命名,不仅可以让阅读者更快速地了解变量的意义,还可以让代码更具可读性。 2. 减少全局…

    JavaScript 2023年5月27日
    00
  • js文件包含的几种方式介绍

    当我们在编写JS程序时,可能会将不同的JS代码写在不同的文件中,然后在主文件中以某种方式引入这些文件,这被称为JS文件包含。本文将介绍JS文件包含的几种方式和如何使用它们。 1. script标签 最常见的JS文件包含方式是使用script标签引入外部JS文件。这种方式可以在HTML文件中直接使用script标签,并通过src属性引入外部JS文件。下面是一个…

    JavaScript 2023年5月27日
    00
  • 在JavaScript中使用对数Math.log()方法的教程

    下面是使用对数 Math.log() 方法的教程及示例说明: 使用对数 Math.log() 方法的教程 1. 什么是对数? 对数是数学中重要的概念之一,指数学中某个数(底数)与另一个数(真数)之间的关系式。换句话说,就是求某个底数下的某个真数的幂的指数是多少。 例如,如果要求以2为底数的8的对数,可以表示为2^x=8,那么对数x就是3,即log2(8)=3…

    JavaScript 2023年6月10日
    00
  • JavaScript实现移动端带transition动画的轮播效果

    Javascript实现移动端带transition动画的轮播效果的攻略可以分为以下几个步骤: 1. HTML布局 首先,需要在HTML中编写轮播图的布局,通常是一个<ul>元素,包含多个<li>元素,每个<li>元素内部包含图片或者其他需要轮播的内容,如下所示: <div class="carousel-…

    JavaScript 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部