JavaScript 学习之路(三)
day3,原生JS function()
最近在和舍友写自己的网站,一直没有更新自己的博客,我的网站终于完成啦!
js的函数和其他语言十分类似,因为学习过别的语言,学习起JS的函数也十分简单,所以我主要关注 与我之前学习的语言 的差别。
函数声明
两种声明函数的方法,主要区别是在于 函数的声明会在预编译阶段进行处理,而函数表达式并不会在预编译阶段进行处理,会在执行阶段再进行赋值,这是一个值得关注的问题,除此之外,es6推荐使用let 替代var 两者的区别是
let 声明的变量会拥有块作用域,与函数作用域类似,可以使用‘{ }’将let 生命的变量框起来,从而避免不同作用域 同名变量的冲突,且作用于内,let声明的变量只能声明一次,再次声明会报错。
var 声明变量是很早的用法了,没有块作用域限制,可以向父级传递,导致变量的混乱,且可以无限次重复声明。
let fn1 = function(){ alert('hello world!'); } //函数表达式 function fn2(){ alert('hello world!2'); } //函数的声明
函数参数
js的函数参数是我用过最灵活的,不会像C一样,根据参数个数来确定函数,而是动态的使用参数
let a = 'hello world!' ,fn1 = function(a){ alert(a); }
除此之外,与python差不多的,js还有不定参数,使用arguments 数组就可以获取到传入的参数
let a = 'hello world!' ,fn1 = function(){ alert(arguments[0]); }
function fn2(...values){
console.log(values)
}
fn2(a,1,5,s,6);
fn1(a);
return
函数中遇到 return 语句,该语句之后的语句都是无效的
let a = 'hello world!' ,fn1 = function(){ alert(arguments[0]); return fn2(); //到此函数结束,后面代码无效 alert(arguments[0]); alert(arguments[0]); alert(arguments[0]); alert(arguments[0]); alert(arguments[0]); } function fn2(){ alert('hello world!2'); } fn1(a);
欢迎关注我的新博客

浙公网安备 33010602011771号