Function

Anonymous function expression

虽然匿名函式很好用,但有时在许多callback时会造成难以阅读

setTimeout(function(){
    console.log("hello world")
}, 3000);

function expression

具名函式有名称会比较好阅读,虽说匿名与具名没有差别,但对於readability很有帮助

setTimeout(function Hello(){
    console.log("hello world")
}, 3000);

Arrow Function

箭头函式提供更简洁的写法,但要注意Arrow function会指定this

a = 1
const func = () =>{
    console.log(this.a) //undefined
}
func()

function hello(){
    console.log(this.a) //1 RHS全域的a
}
hello()

IIFE(Imadiately invoked function expression)

  • function Scope不会被全域变数污染.
  • 立即执行
  • 不用使用function Statement
先来看没有使用IIFE的fucntion,下列function不是function statement所以无法执行,语法上就错了不能使用匿名函式
function(a){
    console.log("Start")
    for(let i = 0; i < a ; i++){
        console.log(i)
    }
    console.log("end-for")
}


这边直接使用括弧包起来,要传参数即在最後(parameter)即可
(function(a){
    console.log("Start")
    for(let i = 0; i < a ; i++){
        console.log(i)
    }
    console.log("end-for")
})(5) //Start 1,2,3,4,5 end-for

避免被污染
var name = "Dennis";
(function(){
    var name = "Jessica";
    console.log(name); //Jessica
})()

console.log(name); //Dennis

<<:  LHS RHS

>>:  程序码真正想跟你说的话

资安学习

Day 1 看到许多统计,提到现在很多企业最需要的就是保障公司的资讯安全,其实个人的资讯也是一样都是...

R语言-1-关於R

这是关於在 hahow-开启资料科学的学习大门 - R入门教学-课程的心得。 Day1 关於R R由...

Day09:需求确认

实例化需求 ...

Day 15 - [语料库模型] 03-语料读取&资料格式转换

今天的主题是介绍如何读取 CSV (之前从各个网站爬下来的问答集),并将资料转成後面制作语料库模型要...

DAY2 起手式--Nuxt.js目录结构

目录结构落落长是怎样!? 没关系,一起简单了解 上篇我们建立了 Nuxt.js 环境,应该可以看到资...