// todo
})(a)
console.log(a)
// 定义一个匿名函数,把a传递进去,a是undefined
// 因为匿名函数本身没有返回值,如果是
var a=(function(a){
return 1
})(a)
console.log(a)// a此时就是1
// 如果要自动运行这个匿名函数的同时又赋值给a,那就应该是这样的:
var i = 0// 计数器
var a=(function(a){
i++
console.log("i am running..." + i)
return arguments.callee
})(a)// 这里跑一次
a()//被调用一次
1、函数定义的方式方式分为两种,一种是函数声明,一种是函数表达式。
// 函数声明的方式function myfunc1() {
// todo
}
// 函数表达式的方式
var myfunc2 = function () {
// todo
}
函数声明的方式会在js解析预编译阶段得到提升,不管是写在调用之前还是调用之后,使用的时候都可以找到函数;函数表达式,和普通的定义变量一样,js自上而下执行,当执行到这条语句时,函数才有定义。
2、数组里的大写字母去掉。遇到这种情况,就要考虑使用倒序的方式去遍历删除,因为每删除一项,数组长度就会变化,正序遍历就会导致错误。
var x2 = ["a", "b", "C", "d", "E", "f"]for (var l = x2.length, i = l - 1 i >= 0 i--) {
if (x2[i] >= "A" && x2[i] <= "Z") {
x2.splice(i, 1)
}
}
// 输出 a,b,d,f
console.log(x2.join())