<JavaScript 深入浅出>系列: JavaScript 深入浅出第 1 课:箭头函数中的 this 究竟是什么鬼? JavaScript 深入浅出第 2 课:函数是一等公民是什么意思呢? 普通函数与箭头函数 普通函数指的是用function定义的函数: var hello = function () { console.log("Hello, Fundebug!"); } 箭头函数指的是用=>定义的函数: var hello = () => { cons…
参数 函数内部可用的 arguments 对象来访问函数的实参 注意 在函数递归调用的时候(在某一刻同一个函数运行了多次,也就是有多套实参),那么 arguments 属性的值是最近一次该函数调用时传入的实参 如果函数不在执行期间,那么该函数的 arguments 属性的值是 null arguments对象不是一个 Array .它类似于Array,但除了length属性和索引元素之外没有任何Array属性.例如,它没有 pop 方法,但是可以使用Array.prototype.pop.cal…
聊一聊 Vue 中 watch 对象中的回调函数为什么不能是箭头函数 本文重点知识点速览: Vue 中的 watch 对象中的回调函数不能是箭头函数. 箭头函数中的 this 指向的是函数定义时所在的对象,普通函数中的 this 指向的是函数运行时所在的对象. 函数的 this 指向问题. 一起学习吧... 说起箭头函数大家一定不陌生,箭头函数是 ES6 中对函数的扩展,使用起来方便快捷,可能有些小伙伴对箭头函数不是特别了解,所以在这里先举个例子吧. // 普通函数定义 function add…
大多数web服务器(Apache等)对大小写敏感,因此命名注意大小写 不要声明字符串.数字和布尔值,始终把他们看做原始值而非对象,如果把这些声明为对象,会拖慢执行速度 对象是无法比较的,原始值可以 不要使用new Object() 请使用 {} 来代替 new Object() 请使用 "" 来代替 new String() 请使用 0 来代替 new Number() 请使用 false 来代替 new Boolean() 请使用 [] 来代替 new Array() 请使用 /()…
通常我们会看到以下两种定义函数的方式: // 函数语句 function fn(str) { console.log(str); }; // 表达式定义 var fnx=function(str) { console.log(str+ ' from fnx'); }; 两种方式都创建了新的函数对象, 但函数声明语句的函数名是一个变量名, 变量指向函数对象, 和通过var声明变量一样,函数定义语句中的函数被显示地提前到了脚本或函数的顶部, 因此它们在整个脚本和函数内都是可见的,但是使用var 表达…
ES6新特性之 函数参数的默认值写法 和 箭头函数. 1.函数参数的默认值 ES5中不能直接为函数的参数指定默认值,只能通过以下的变通方式:   从上面的代码可以看出存在一个问题,当传入的参数为0或者false时,会直接取到后面的值,而不是传入的这个参数值. 那怎么解决呢?对于上图的代码,可以通过判断是否传入了num参数,没有就用默认值:   这种做法还是很麻烦的,而ES6则直接在参数定义里面设置函数参数的默认值,而且不用担心传入参数是0或者false会出错了: 2.箭头函数 箭头函数用 =>…
一.函数 1.匹配 位置匹配 def func(a,b,c): print(a,b,c) func(c=1,a=2,b=3) 2 3 1 def func(a, b=2, c=3): print(a, b, c) func(1, c = 5) 1 2 5 关键字匹配 默认值(调用时省略传值) *args 任意数量参数 def avg(*scores): #加单星号*的意思是可以有多个传入值,接收一个tuple元组 return sum(scores) / len(scores) result =…
通常函数的定义方法 var fn = function(...){ ...... } //例如: var add = function(a,b){ return a+b; } //或者: function fn(...){ ...... } //例如: function add(a,b){ return a+b; } 简写方法速记 将原函数的“function”关键字和函数名都删掉,并使用“=>”连接参数列表和函数体. function add(a,b){ return a+b; } //简写为…
Lambda表达式(箭头函数)用于表示一个函数,所以它和函数一样,也拥有参数.返回值.函数体,但它没有函数名,所以Lambda表达式相当于一个匿名函数. 使用方法: ()=>{} 小括号里放参数,大括号里放函数体 箭头函数做回调参数 [5, 8, 9].map(item => item + 1);// -> [6, 9, 10] 当箭头函数有一个参数时,参数两边的括号是可有可无的,但是还是有括号看起来看清楚 const foo = bar => bar + 1; const bar…