2016-07-29 曹强
定义函数有两种方式:函数声明和函数表达式。它们之间一个重要的区别是函数提升。 1.函数声明会进行函数提升,所以函数调用在函数声明之前也不会报错: ``` test(); function test(){ alert(1); } ``` 2.函数表达式不会进行函数提升,函数调用在函数声明之前的话会报错: ``` test(); // test is not a function var test=function(){ alert(1); } ``` 递归函数是通过在函数内部调用自身实现的。 直接使用函数名进行递归调用 ``` function f(num){ if(num==1){ r 继续阅读 »
2016-04-25 令狐葱
Immediately-invoked Function Expression(IIFE,立即调用函数),简单的理解就是定义完成函数之后立即执行。因此有时候也会被称为“自执行的匿名函数”(self-executing anonymous function)。 IIFE的叫法最早见于Ben Alman的文章。文章中Ben Alman 已经解释得很清楚了,希望定义自执行函数式常见的语法错误有两种: 1) function (){ }() 期望是立即调用一个匿名函数表达式,结果是进行了函数声明,函数声明必须要有标识符做为函数名称。 2) function g(){ }() 期望是立即调用一个具名函数表达式,结果是声明了函数 g。 继续阅读 »
2016-10-12 曹强
高阶函数是至少满足下列条件之一的函数 * 函数可以作为参数被传递 * 函数可以作为返回值输出 (js这么好的语言中的函数当然满足 ^^)_ 函数作为参数传递 把函数当作参数传递,可以抽离出一部分容易变化的业务逻辑,把这部分业务逻辑放在函数中,可以分离业务代码中变与不变的部分。 回调函数,ajax异步,callback var getUserInfo() = function(userId, callback) { $.ajax('http://xxx.com/getUserInfo?' + userId, function(data) { if (typeof(callback === ' 继续阅读 »
2015-02-26 YongHao Hu
先摆干货,总结:static函数的作用是在链接层面上的。 之所以研究static函数是因为Wine里面很多helper函数都是在.h文件里声明为static, 其作用就是避免命名冲突。 1. 正如很多C语言书籍里都有提到: 函数的定义和声明默认情况下是extern的,但静态函数只是在声明他的文件当中可见,不能被其他文件所用。 定义静态函数的好处: <1> 其他文件中可以定义相同名字的函数,不会发生冲突 <2> 静态函数不能被其他文件所用。 继续阅读 »
2015-06-05 Lim Geng
小函数蕴含着大学问:函数节流之水龙头与弹簧、尾递归优化、展开参数函数、异步化函数等,整理了几个有趣的js函数,后续还会增加。 函数节流:水龙头与弹簧 什么是节流,请自行百谷 Throttle:这种方式是类似水龙头,当水滴足够大时水滴就会掉下来;类似的,当时间超过某个timeout的时候就执行函数 ```js var throttle = function(fn, timeout) { var last = new Date().getTimes(); return function() { var curr = new Date().getTimes(); if (curr - last >= 继续阅读 »
2017-03-06 高悦翔
函数对象 JavaScript中函数就是对象. 函数对象连接到Function.prototype. 当把一个函数当作构造函数(使用new关键字)使用时, 新创建的对象的原型就是该函数的prototype对象. 我们可以通过给prototype设置属性而达到让该类对象拥有同样的公共属性的目的. 继续阅读 »
2014-06-12 W.Y.
本文译自 Dmitry A. Soshnikov 的文章 ECMA-262-3 in detail. Chapter 5. Functions. 其中大部分参考了 goddyzhao 的翻译。 概述 本文将介绍 ECMAScript 中一个非常常见的对象 -- 函数。我们将着重介绍函数都有哪些类型,不同类型的函数是如何影响上下文的变量对象的,以及每种类型的函数的作用域链中都包含什么,并回答诸如下面这样的问题:下面声明的函数有什么区别吗?(如果有,区别是什么)。 js var foo = function () { ... }; 上述方式创建的函数和如下方式创建的有什么不同? js function foo() { 继续阅读 »
2015-06-10 W.Y.
参考原文:7 Essential JavaScript Functions 以下是意译。 早期,由于浏览器厂商对 JavaScript 实现不同,我们通常需要一些简单的函数来实现某些边缘特性,甚至某些基本特性,比如 addEventListener 和 attachEvent。现在,虽然时代进步了,但仍有一些函数需要开发者掌握,以便于性能优化和快速开发。 more 去抖 Debounce 去抖(debounce)函数可以提高某些事件绑定的性能,如果你没有为 scroll、resize 和 key* 事件使用去抖函数,你的代码很可能是性能低下的,下面是一个 debounce 函数的实现: ```javascript // 返回 继续阅读 »
2015-06-11 浩阳
content {:toc} 本文为慕课网 JavaScript深入浅出 JavaScript 函数笔记。 概念 函数是一块JavaScript代码,被定义一次,但可执行和调用多次。 继续阅读 »
2012-12-16 Klaus Ma
在编写Java程序时,Exception类的printStacktrace()可以打印异常堆栈,这个小工具极大的提高了调试效率;虽然不是一个好习惯,却很实用。习惯了Java编程,很希望 C/C++里也有这样的小工具可以帮助调试程序. 经过几天查找,发现其实每个系统都提供了打印调用堆栈的函数;这些函数是系统相关,这里仅以Linux下的函数作说明. Linux中共提供了三个函数用于打印调用堆栈: 继续阅读 »