JS函数

语法

function 函数名([参数1,参数2]){
[语句1,
语句2]
return 返回值
}

函数有变量提升

函数方法call

fun.call(第一个参数[,参数1,参数2,参数3..])

  • 函数fun使用call的 第一个参数 就是指向this
  • 如果执行一个函数 ft(1) 它就相当于是 ft.call(undefined,1)
  • this 和 参数 都是在调用一个函数时出现 , 不调用就没有

函数var作用域

var a
function f1(){
  var a = 1
  function f2(){
    a = 1
  }
  function f4(){
    var a 
  }
  
  f2.call()
  f3.call()
}

function f3(){
  a = 2
}

f1.call()

这个 a = 1 是 f1 的var a , 如果 f1 没有声明 a ,就看 顶级作用域 有没有声明 , 没有的话 就是Global .

立即执行函数

(function(){
/*code*/
}());

//or
(function(){
/*code*/
})();

上面的两种写法都要加分号 不推荐用括号写法写法 , 因为可能和上一行合到一块

!function(){
  
}()

generator 函数

function*(){} //这就叫generator函数

语法yield「产出」

function* inner() {
  yield 'hello!';
}

function* outer1() {
  yield 'open';
  yield inner();
  yield 'close';
}

var gen = outer1()
gen.next().value // "open"
gen.next().value // 返回一个遍历器对象
gen.next().value // "close"

function* outer2() {
  yield 'open'
  yield* inner()
  yield 'close'
}

var gen = outer2()
gen.next().value // "open"
gen.next().value // "hello!"
gen.next().value // "close"

函数节流

这点参考JavaScript,

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. 函数声明和函数表达式有什么区别 (*) 函数在JS中有三种方式来定义:函数声明(function decla...
    进击的阿群阅读 478评论 0 1
  • 函数声明和函数表达式有什么区别 (*)解析器会率先读取函数声明,并使其在执行任何代码之前可以访问;函数表达式则必须...
    coolheadedY阅读 441评论 0 1
  • 1、概述 1.1函数申明: 函数命令(函数的声明):function a(){} 函数表达式:const a=fu...
    Ann_l阅读 1,969评论 0 0
  • 在js中,函数本身属于对象的一种,因此可以定义、赋值,作为对象的属性或者成为其他函数的参数。函数名只是函数这个对象...
    bjhu电net阅读 601评论 0 5
  • 最近发生了一件事差点气炸我。 那是我之前的一个同事,微信好友当然也是做同事时加的。关系一般,严格来说连朋友都算不上...
    花落颜颜阅读 14,138评论 300 348

友情链接更多精彩内容