4.0 JavaScript基础之函数深度讲解

162 阅读2分钟

4.1 JS中的对象

对象:值的集合

“名”和“值”可以组成一个“名值对”

或者称为:“键值对”

“name”是属性名,“Tom”是属性值。

书写对象:

类似声明变量,用逗号隔开

如果属性名会有非法字符,应用单引号包起来防止报错

创建一个空的对象:

给对象赋值或者创建新属性:

类似C语言中结构体的赋值方法

读取属性的值:

直接用.的话,后面直接跟属性名

用方括号的话需要单引号包起来

删除属性

删除后属性变成:undefined

判断对象中是否拥有属性

注意属性名+单引号

返回值为“true”或“false”

对象的枚举

其实就是遍历对象中的各个属性: 采用for in 循环

下面开始进行区分:

  • 这里输出所有属性的属性名

  • 这里输出所有属性的值

.语法只能输出字符串

[]语法功能更加强大

甚至可以:

这样输出cat的name属性值

4.2 函数的本质

作为一个属性值进入对象中

此处function了一个匿名函数(没有名字的函数),并赋值给一个变量。类似于创建一个名为a的函数

这时,函数名就是变量名a了

结果说明如果只打印“a”,那就是打印出来这个函数的语句

如果打印“a()”,会打印出a这个函数的返回值

如果加()意为将函数执行,不加括号意为将函数整个传进去

作为参数使用

这里声明函数fu,之后在延时函数中的参数部分再次使用

作为返回值作用

这里在函数a内返回了一个匿名函数,使用方法是:在调用函数a的语句后面再加一个“()”,可以看做向内调用两层

4.3 作用域链

根据作用域链的规则,底层作用域没有声明的变量,会向上一级找,找到就返回,没找到就一直找,直到window的变量,没有就返回undefined。


  • 尽量多使用局部变量

  • 在对象中的函数也称为“方法”

  • 可以添加属性和方法