这是我参与「第四届青训营 」笔记创作活动的第3天。
具名函数
- 函数返回的return只能返回一个值,如果想要返回多个值,可以采用数组的形式;
- 在函数中传实参可以放变量;
- 例如:
let num1 = +prompt
- 作用域 分清局部作用域和全局作用域和块级作用域,在函数体内声明的变量在函数使用会报错;在大括号里面包含的叫做块级作用域,比如if/for中;
- 如果在函数内部或者块级作用域内部,变量没有声明直接使用,也可以当做全局变量看;
- 作用域链:如果全局变量和局部变量命名相同,首先输出的是离他最近的变量的值,就近原则;一层一层往上级作用域寻找值;
匿名函数
- 匿名函数:将匿名函数赋值给一个变量,并通过变量名称进行调用,我们将这个成为函数表达式;
-
let fn = function () {},如果需要调用,直接使用变量名调用,即fn()为函数表达式; 2.立即执行函数:立即执行,无需调用 (防止变量污染)
(function (x,y) {console.log(x + y} )( 1,2 )- 多个立即函数间要有分号结尾,不然会报错;
传参注意
-function fn (x = 0,y = 0) {console.log(x + y}x,y可以看做局部变量,当调用函数没有传参时就使用默认的x,y值。
对象
- 对象:一种数据类型,描述某个事物,与java中类似;
- 特点:无序的数据集合,可以详细描述某个事物;
- 对象使用
- 对象声明语法:
let 对象名 = {} - 对象有属性和方法:属性是一些静态行为,方法是功能或行为。属性和值用;隔开,多个属性用,隔开并且换行,最后一个属性不需要加上,;
- 访问属性值:对象名.属性名或者对象名['属性名'];
- 方法的声明及使用:方法名:
function(){},调用格式为对象名.方法名(); - 添加更改以及删除属性:更改属性值直接在对象外给属性赋新值;添加属性在对象外按照在对象内的方法创建新的属性;删除属性使用关键字
delete 对象名.属性名。
- for in 语句,类似于数组的遍历中for语句,完整语法为:
for(let k in 对象名),如果查看属性使用console.log(k);如果查看属性值即使用console.log(对象名[k]),其中k相当于带引号的属性名。