android 程序员 基础,Android 程序员搞 web 之 js基础(十)

一、arguments 对象伪数组

这个伪对象可以替换 函数传入的任何参数如下:

function f() {

console.log(arguments)

}

f(1,2,3,4,5,6)

1a1d9eaf9863

伪数组传入数据

二、函数的其他定义形式

函数的命名方式

1、命名函数

定义:函数有名字,就是命名函数;

2、匿名函数

定义:函数没有名字,匿名函数;

函数表达式

定义:把匿名函数赋值给一个变量而形成的表达式;

var fun = function () {

console.log("我是一个匿名函数")

};

fun()

1a1d9eaf9863

函数表达式

注意:

1、函数表达式,调用两次,则可以出现两次结果

var f1 = function () {

console.log("函数一")

};

f1();

f1 = function () {

console.log("函数二")

};

f1();

1a1d9eaf9863

注意事项

同名函数调用两次,只会执行一个函数,并且是最后面的函数

function f1() {

console.log("函数一")

};

f1();

function f1() {

console.log("函数二")

};

f1();

1a1d9eaf9863

注意事项

2、声明函数之后直接调用

(function () {

console.log("直接调用的函数")

})();

1a1d9eaf9863

直接调用的函数

3、函数也是一种数据类型

类型为 function

4、回调函数

定义:将函数作为参数使用,则为回调函数

function f1() {

}

function f2() {

console.log("打印函数 2")

}

f1(f2());

1a1d9eaf9863

函数作为参数使用

5、函数作为返回值

当函数作为返回值的时候,需要用一个变量去接收这个函数的返回值,否则调用毫无意义;

代码如下:

function f1() {

console.log("带有返回值的函数");

return function () {

console.log("这是一个函数返回值")

}

}

var ff = f1();

ff();

1a1d9eaf9863

image.png

三、函数的作用域

1、全局变量

定义:使用 var 定义的变量为全局变量,全局变量可以在页面内任何地方使用。

注意:全局变量,如果页面不关闭,则一直不会被释放,导致一直占用内存空间,消耗内存。

2、局部变量

定义:在函数内定义的变量为局部变量,外部不可以进行使用。

注意:局部变量 当函数调用完成之后,局部变量就会消失。

3、全局作用域

定义:全局变量的使用范围。

4、局部作用域

定义:局部变量的使用范围。

5、块级作用域(js 没有块级作用域)

定义:一对大括号就可以看成是一块作用域。js 在一对大括号内定义的变量可以在大括号外面进行使用,所以 js 内没有块级 作用域。

6、隐式全局变量

定义:声明变量没有var ,就叫做隐式全局变量

全局变量不可被删除,隐式全局变量可以被删除;

四、作用域链

函数内嵌套函数并且被调用,从而形成作用域链

var num = 10;

function f1() {

var num = 20;

function f2() {

var num = 30;

function f3() {

var num = 40;

console.log("num:" + num)

}

f3()

}

f2()

}

f1();

1a1d9eaf9863

作用链

同名变量 使用为 就近原则。

五、预解析

预解析:就是在解析代码之前

预解析作用:把变量和和函数声明提前到当前所在的作用域的最上面。

函数声明提前,依然可以起作用,而变量提前则会产生 undefined 结果;

预解析分段 (多段 script 标签内的重名函数,不干涉);

案例:

f1();

console.log(c);

console.log(b);

console.log(a);

function f1() {

var a = b = c = 9;

console.log(a);

console.log(b);

console.log(c);

}

结果:

1a1d9eaf9863

运行结果

由于 预解析的存在 导致 b、c为 隐式全局变量,而 a 为局部变量,所以 a 报错,其他的显示正常值

Android 程序员搞 js 之 基础(十 一) 难点

1a1d9eaf9863

欢迎关注.jpg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值