JavaScript--函数(普通函数 & 箭头函数 ) & 异常 & typeof关键字 & 方法

Posted Z && Y

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript--函数(普通函数 & 箭头函数 ) & 异常 & typeof关键字 & 方法相关的知识,希望对你有一定的参考价值。

1. 普通函数


1.1 函数的定义

  • 定义在对象内: 被称为方法。
  • 定义在对象外部:函数。

定义方式一

    // 返回绝对值的函数
    function abs(x) {
        if (x >= 0) {
            return x;
        } else {
            return -x;
        }
    }

在这里插入图片描述


定义方式二

    let abs = function (x) {
        if (x >= 0) {
            return x;
        } else {
            return -x;
        }
    };

在这里插入图片描述


1.2 函数的调用

在这里插入图片描述

异常 & typeof关键字

    function abs(x) {
        // typeof 关键字用于判断变量的类型
        if (typeof x !== 'number') {
            // 手动抛出一个异常
            throw 'Not a number';
        }
        if (x >= 0) {
            return x;
        } else {
            return -x;
        }
    }

2. 箭头函数

ES6中新增的定义函数的方式。
() => {}
const fn = () => {}


2.1 箭头函数的特点

  • 1.函数体中只有一句代码,且代码的执行结果就是返回值,可以省略大括号
    var a=10;
    const add = (num1, num2) => num1 + num2;
    console.log(add(1, 2));// 3
  • 2.如果形参只有一个,可以省略小括号
    const returnA = a => {
      alert(a);
    };
    returnA(10);// 弹窗 10
  • 3.箭头函数不绑定this,箭头函数没有自己的this关键字如果在箭头函数中使用this,this关键字将指向箭头函数定义位置中的this
    var obj = {name: "张三", age: "十八"};

    function fn() {
        //this关键字将指向箭头函数定义位置中的this
        return () => {
            console.log(this);
        }
    }

    fn.call(obj);// call函数的第一个参数的意思是 将这个函数内部的this指向obj对象
    var result01 = fn.call(obj);
    result01();// obj
    var result02 = fn();
    result02();// window

2.2 箭头函数经典面试题

    // 这个age是定义在全局作用域window对象下面的
    var age = 100;
    var obj = {
      age: 10,
      // 箭头函数的this指向定义区域的this,因为定义在obj对象里面,但是
      // 对象不可以产生作用域,所以这里的this指向的是全局作用域下的age
      sayAge: () => {
        console.log(this.age);
      },
    };
    obj.sayAge();//100

3. 方法

定义方法

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述



以上是关于JavaScript--函数(普通函数 & 箭头函数 ) & 异常 & typeof关键字 & 方法的主要内容,如果未能解决你的问题,请参考以下文章

javaScript定义函数的三种方式&变量的作用域

将 jQuery 缓动 easeInExpo 函数重写为普通的 javascript 和 css

什么是纯 JavaScript 的“hasClass”函数?

[概念] javascript构造函数和普通函数的

JavaScript中的普通函数与构造函数比较

javascript中匿名函数和普通函数的区别