JS函数

2017-04-05  本文已影响7人  饥人谷_hak

语法

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

函数有变量提升

函数方法call

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

函数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,

上一篇下一篇

猜你喜欢

热点阅读