对象
对象是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];
var newArr = new Set(arr3); /*Set 只能存取不重复的值 */
console.log(newArr);
console.log([...newArr]); /*将其转化为数组类型*/
Math
Math一个工具类,Math中为我们提供了数学运算相关的一些常量和方法
常量:
- Math.PI 圆周率
方法:
- Math.abs() 求一个数的绝对值
- Math.min() 求多个值中的最小值
- Math.max() 求多个值中的最大值
- Math.pow() 求x的y次幂
- Math.sqrt() 求一个数的平方根
- Math.floor() 向下取整
- Math.ceil() 向上取整
- Math.round() 四舍五入取整
- Math.trunc() 直接去除小数位
- Math.random() 生成一个0-1之间的随机数
代码如下(示例):
for (let i = 0; i < 50; i++) {
/*
生成0-5之间的随机数
Math.random() --> 0 - 1
生成 0-x之间的随机数:
Math.round(Math.random() * x)
Math.floor(Math.random() * (x + 1))
生成 x-y 之间的随机数
Math.round(Math.random() * (y-x) + x)
*/
// result = Math.round(Math.random() * 5)
// result = Math.floor(Math.random() * 6)
// 1-6
// result = Math.r