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

yizhihongxing

下面是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日

相关文章

  • JS中 new Date() 各方法的用法说明

    下面是JS中new Date()各方法的用法说明的攻略: Date对象 Date对象是JS中内置的一个对象,用来操作时间和日期。我们可以通过new Date()构造函数来创建一个Date对象。接下来我们就来详细地讲解一下Date对象中各方法的用法说明。 Date的构造函数 在使用Date对象时,我们可以通过构造函数 new Date() 来创建日期对象。该构…

    JavaScript 2023年5月27日
    00
  • JavaScript 计算笛卡尔积实例详解

    JavaScript 计算笛卡尔积实例详解 什么是笛卡尔积? 笛卡尔积是数学中一个常用的概念,其定义如下: 对于集合A和集合B,它们的笛卡尔积A×B是指:所有可能的有序数对构成的集合{ (a, b) | a∈A, b∈B }。 实际上,笛卡尔积可以推广到N个集合的情况下。假设有N个集合A1, A2, …, AN,它们的笛卡尔积为 A1×A2×…×AN…

    JavaScript 2023年5月28日
    00
  • js定义类的方法示例【ES5与ES6】

    下面是关于“js定义类的方法示例【ES5与ES6】”的完整攻略。 什么是类 在Javascript中,类是一种实现面向对象编程的方式。类定义了一个对象的特征和行为。类是一种模板或者蓝图,可用于创建一个具有相同属性和方法的多个对象。 ES5中定义类 在ES5中,我们使用构造函数来定义一个类。 function Person(name, age) { this.…

    JavaScript 2023年5月27日
    00
  • javascript实现获取cookie过期时间的变通方法

    获取cookie的过期时间是一个在JavaScript编程中常见的需求。通常来说,我们可以通过document.cookie来得到当前页面的所有cookie以及它们的值。但是,要获取cookie的过期时间却并不简单,因为HTTP cookie规范并没有定义任何获取cookie过期时间的API。不过,可以通过以下变通方法来解决这个问题。 方案一:设置cooki…

    JavaScript 2023年6月11日
    00
  • JavaScript实现页面跳转的几种常用方式

    下面是讲解“JavaScript实现页面跳转的几种常用方式”的完整攻略。 一、直接修改location.href属性 我们可以使用JavaScript代码直接修改当前页面的location.href属性,实现页面的跳转。示例代码如下: // 直接跳转到指定URL的页面 location.href = ‘https://www.example.com’; //…

    JavaScript 2023年5月27日
    00
  • js中继承的几种用法总结(apply,call,prototype)

    JS中继承的几种用法总结(apply, call, prototype) 在JavaScript中,继承是一种通过一个对象获取另一个对象属性和方法的方式。在JavaScript的原始版本中,没有标准的面向对象编程方式,但是通过使用JavaScript中的一些基本原则和技巧,我们可以轻松地实现继承。 在JavaScript中,我们可以使用apply,call以…

    JavaScript 2023年5月27日
    00
  • JS判断指定dom元素是否在屏幕内的方法实例

    JS判断指定dom元素是否在屏幕内的方法实例可以通过以下步骤来完成: 1. 获取屏幕高度和滚动距离 使用window.innerHeight属性获取屏幕高度,使用window.scrollY属性获取页面滚动的距离,代码如下: const screenHeight = window.innerHeight; const scrollDistance = win…

    JavaScript 2023年6月10日
    00
  • JavaScript的jQuery库插件的简要开发指南

    JavaScript的jQuery库插件的简要开发指南 什么是jQuery库插件 jQuery库插件是指基于jQuery库开发的扩展功能模块,可以在网页上直接引用调用。通过使用jQuery库插件,可以大大提高网页开发效率,增加网页的交互性和动态性。 如何开发jQuery库插件 第一步:编写jQuery插件代码 jQuery插件代码通常包括以下部分: // 定…

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