对象(object)
对象是什么?
对象:JavaScript里的一种数据类型
可以理解为无序的数据集合,数组的有序的数据集合
目的:用来保存多个数据
1.对象声明语句
let 对象名{
属性名:属性值
方法名:函数}
举例:song: function(x,y){
没有函数名:只有方法名
举例
let obj={
uname:'刘德华',
// 方法 [对象外面的叫函数,对象里面的叫方法]
song: function(x,y){ //vue中的methods方法中的函数 简写为song()
console.log('冰雨');
console.log(x-y);
},
dance:function(){
}
}
// console.log(obj.song(1,2)); //有返回值的才可以这样调用
// 没有返回值,不能直接调用obj.song(1,2)的结果,因为当前没有立即执行处理结果,因此只能调用函数
// 方法调用 对象名.方法名
// obj.song(1,4) //调用函数且将实参传递给函数,将结果给页面
</script>
2.对象使用
对象是由属性和方法组成的
// 1.声明
let obj={
name:'小米10青春版',
num:'100020367282',
weight:'0.55kg',
address:'中国大陆'
}
// 2.使用属性 查 对象名.属性名
console.log(obj.address);
console.log(obj.name);
// 3.使用属性 修改 对象名.属性名=新值
obj.name='小米10 pro'
console.log(obj.name);
// 4.使用属性 增 对象名.属性名='内容' 增的方法与改方法相同
// 有这个属性就是 改 没有就是增
obj.address='法国' //有该属性,此处为修改
obj.value='1000元'// 没有该属性,此处为增加属性
//删除(了解)
delete obj.weight
console.log(obj);
let obj = {
'goods-name': '小米10青春版',
}
// console.log(obj.goods-name) //错误的
// 查的另外一种属性
// 对象名['属性名'] 语法规范 名字带有字符串的有-拼接的 这种写法
console.log(obj['goods-name']);
查的方法
// 查总结:
//点形式(1)对象名.属性名 obj.age
console.log(obj.num);
//[]形式(2)对象名['属性名'] obj['age']
console.log(obj['num']);
3.对象函数方法
对象函数是冒号
let obj={
uname:'刘德华',
// 方法 [对象外面的叫函数,对象里面的叫方法]
song: function(){
console.log('冰雨');
}
}
变量函数【即匿名函数】
var fun=function(aru){ console.log(aru);
}
fun(‘pink’)
let obj={
uname:'刘德华',
// 方法 [对象外面的叫函数,对象里面的叫方法]
song: function(x,y){ //vue中的methods方法中的函数 简写为song()
console.log('冰雨');
console.log(x-y);
},
dance:function(){
}
}
// console.log(obj.song(1,2)); //有返回值的才可以这样调用
// 没有返回值,不能直接调用obj.song(1,2)的结果,因为当前没有立即执行处理结果,因此只能调用函数
// 方法调用 对象名.方法名
// obj.song(1,4) //调用函数且将实参传递给函数,将结果给页面
遍历数组对象

// let arr =['pink','red','blue']
// for(let k in arr) {
// console.log(k); //数组的下标 索引号 但是是字符串'0'
// console.log(arr[k]);//k拿到的是字符串形式 不推荐遍历数组
// }
表格格式【合并】
名称:border-collapse
分类:表格
简述:设置行和单元格的边是否合并
渲染数据【js补全表格的写入同样位置】
</table>
### 数学内置对象
```js
// 属性 即固定常量 如下为圆周率
console.log(Math.PI);
// 方法 返回大于一个数的最小整数,即一个数向上取整后的值。
// ceil天花板 向上取整 -2.3就是-2
console.log(Math.ceil(1.1));//2
// 地板 向下取值,取最接近的小的整数 -2.2就是-3
console.log(Math.floor(1.4)); //1
/* Math.floor是取整【都是数字】
parseInt('12px')//12
parseInt可以取字符串,转换成数字【求值方法与floor相同】*/
// 四舍五入:最接近的整数 round 【负数特别如下】
console.log(parseInt('12px'));
console.log(parseInt(12.6)); //12
console.log(Math.round(2.3));//2
console.log(Math.round(2.5));//3
console.log(Math.round(2.9));//3
console.log(Math.round(-2.9));//-3
console.log(Math.round(-2.5));//-2
console.log(Math.round(-2.51));//-3
random用处
let arr = ['ee', 'ww', 'qs', 'ss']
let num = Math.floor(Math.random() * 4)
console.log(num);
// random()随机生成0-1之间的数,包括0但不包括1,因此数组几个需要通过*n来确定随机数
console.log(arr[num]);
// console.log(arr[0]);
生成随机数的公式
// 生成5-10的随机数
console.log(Math.floor(Math.random() * (5 + 1)) + 5);
// 生成N-M之间的随机数
// console.log(Math.floor(Math.random() * (M - N + 1)) + N);
splice用法
// 3.随机点名优化 splice(起始位置(下标),删除几个元素)
arr.splice(random, 1)
// splice(index)
// 从index的位置开始,删除之后的所有元素(包括第index个)
// 因此splice(random,1) 表示从随机数random开始删,删除一个数
console.log(arr);
随机点名优化
let arr = ['1ss', '2ww', '3', '4', '5', '6', '7']
// 1.得到一个随机数,作为数组的索引号,这个随机数0~6
let random = Math.floor(Math.random() * arr.length)
// 2.页面输出数组里面的元素
document.write(arr[random])
arr.splice(random, 1)
// splice(index,n)
// 从index的位置开始,删除之后的所有元素(包括第index个) n删除几个数
// 因此splice(random,1) 表示从随机数random开始删,删除一个数
console.log(arr);
for循环和while循环的区别
for循环准确知道循环几次
while循环可以不确定循环几次
按住Alt键+上下箭头 该代码上下移动
错误记录

生成随机颜色
<style>
div {
width: 300px;
height: 300px;
}
</style>
</head>
<body>
<div></div>
<script>
// 自定义一个颜色函数
function getRandomColor(flag = true) {
// 如果true返回#ffffff的格式
// let flag = true
// 此处意思是如果是符合该函数就是true 执行if 否则执行else
if (flag) {
let str = '#'
let arr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f']
// let random = Math.floor(Math.random() * arr.length) 写16太麻烦,数组默认arr.length就是长度 表示几个数
// 利用for循环随机抽6次,累加到str里面
for (let i = 1; i <= 6; i++) {
// 每次要随机从数组里面选取一个
// 随机生成的索引号
let random = Math.floor(Math.random() * arr.length)
// str = str+arr[random]
str += arr[random]
}
// 缺少 return 导致无法显示效果
return str
} else {
// 如果是false则返回rgb(255,255,255)的格式
let r = Math.floor(Math.random() * 256)
let g = Math.floor(Math.random() * 256)
let b = Math.floor(Math.random() * 256)
return `rgb(${r},${g},${b})`
}
}
// let arr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f']
// let random = Math.floor(Math.random() * 16)
// console.log(random);
console.log(getRandomColor(false)); //按住Alt键+上下箭头 该代码上下移动
console.log(getRandomColor(true)); //按住Alt键+上下箭头 该代码上下移动
console.log(getRandomColor()); //按住Alt键+上下箭头 该代码上下移动
const div = document.querySelector('div')
div.style.backgroundColor = getRandomColor()
</script>
</body>
拓展-术语解释
术语 解释 举例
关键字 在JavaScript中有特殊意义的词汇 let、var、function、if、else、switch、case、break
保留字 在目前的JavaScript中没意义,但未来可能会具有特殊意义的词汇 int、short、long、char
标识(标识符) 变量名、函数名的另一种叫法 无
表达式 能产生值的代码,一般配合运算符出现 10+3、age>=18
语句 一段可执行的代码 if() for()
简单【值类型】/复杂【引用】数据类型

简单数据类型(值类型)【栈】
let num1=10
let num2=num1
num2=20 //num2只是获取了最开始的num1的值,都是没有将num2的值 赋值给num1
console.log(num1); //结果是10 简单数据类型 栈 存储

值之间互不干扰
复杂数据类型(引用类型)【堆】 对象情况
// 堆存储
let obj1={
age:18
}
//将obj1的地址给了obj2 obj2引用了obj1
let obj2=obj1
//obj2通过地址将数据更改
obj2.age=20
console.log(obj1.age);