js这样写是什么意思?var a=(function(){})(a)

JavaScript022

js这样写是什么意思?var a=(function(){})(a),第1张

var a=(function(a){

    // 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())