对象
对象是JS中的一种复合数据类型,它相当于一个容器,在对象中可以存储各种不同类型数据
示例:创建对象
<script>
// 创建对象
let obj = Object()
/*
let name = "孙悟空"
let age = 18
let gender = "男"
对象中可以存储多个各种类型的数据
对象中存储的数据,我们称为属性
向对象中添加属性:
对象.属性名 = 属性值
读取对象中的属性
对象.属性名
- 如果读取的是一个对象中没有的属性
不会报错而是返回undefined
*/
obj.name = "孙悟空"
obj.age = 18
obj.gender = "男"
// 修改属性
obj.name = "Tom sun"
// 删除属性
delete obj.name
console.log(obj.name)
</script>
对象的属性
属性名
属性名最好按照标识符的规范命名;
通常属性名就是一个字符串,所以属性名可以是任何值,没有什么特殊要求;
但是如果你的属性名太特殊了,不能直接使用,需要使用 [ ] 来设置;
属性值
对象的属性值可以是任意的数据类型,也可以是一个对象
函数
函数也是一个对象,它具有其他对象所有的功能;
函数中可以存储代码,且可以在需要时调用这些代码
使用typeof检查函数对象时会返回function
语法:
function 函数名(){
语句…
}
调用函数:
调用函数就是执行函数中存储的代码
语法:
函数对象()
函数的创建方法
1.函数声明
function 函数名(){
语句...
}
2.函数表达式
const 变量 = function(){
语句...
}
3.箭头函数
() => {
语句...
}
数组
作用域
作用域指的是一个变量的可见区域
全局作用域
- 全局作用域在网页运行时创建,在网页关闭时消耗
- 所有直接编写到script标签中的代码都位于全局作用域中
- 全局作用域中的变量是全局变量,可以在任意位置访问
局部作用域
块作用域
是一种局部作用域;使用let,const声明变量,才会形成块作用域
- 块作用域是一种局部作用域
- 块作用域在代码块执行时创建,代码块执行完毕它就销毁
- 在块作用域中声明的变量是局部变量,只能在块内部访问,外部无法访问
函数作用域
函数作用域也是一种局部作用域
- 函数作用域在函数调用时产生,调用结束后销毁
- 函数每次调用都会产生一个全新的函数作用域
- 在函数中定义的变量是局部变量,只能在函数内部访问,外部无法访问
内置对象
Set
Set用来创建一个集合,它的功能和数组类似,不同点在于Set中不能存储重复的数据。其实Set属于Map,只是它的 key 和 value 值相同,而Map的key不能重复,所以Set数据不能重复。
使用方式
- new Set()
- new Set([…])
方法
- size 获取数量
- add() 添加元素
- has() 检查元素
- delete() 删除元素
代码如下(示例):
// 创建一个Set
const set = new Set()
// 向set中添加数据
set.add(10)
set.add("孙悟空")
set.add(10)
// 对数组去重
const arr3 = [1,2,1,3,4,2,7]</