一. 前言
js知识的重要性不言而喻,一直暗戳戳想要系统的学习汇总一下js的相关知识,但是一直没有定下心来付诸行动,今天刚好看见一篇不错的文章,所以决定通过这篇文章记录一下学习成果。
二. 函数部分
-
函数的定义方式?
参考链接:mdn function
(1)函数声明
function myfun() {...}
(2)函数表达式
var myFunction = function sort(){} var myFuntion2 = function() {} //匿名函数(函数没有名字) (function() {...})() // 当函数只使用一次时,通常使用IIFE(在函数声明后立即调用函数表达式)
(3)构造函数
var multiply = new Function('x', 'y', 'return x') // new Function(arg1, arg2 ..., functionBody)
(4)箭头函数
()=> {} // 零个参数需要使用(),一个参数省略()
-
函数的调用?
(1)函数调用:函数名(),匿名函数调用 【this指向window】
(2)方法调用:对象.方法名() 【this指向对象】
var objList = { name: 'methods', getSum: function() { console.log(this); // this指向objList } } objList.getSum();
(3)构造函数调用:new 构造函数名字() 【this指向构造函数】
function Person() { console.log(this); // 指向Person } var person1 = new Person();
(4)间接调用:使用call和apply来实现 【this指向call或apply的第一个参数,如果第一个参数为undefined或null,则this指向window】
function foo() { console.log(this); } foo.call('我是第一个参数'); // String {'我是第一个参数'} foo.apply('我是第一个参数'); // String {'我是第一个参数'}
(5)箭头函数的调用:【箭头函数的this与调用无关,取决于定义】