目录
对象 : 对象可以存储一个人完整的信息,对象里有属性和方法,是以键值对组成的
js对象为了描述客观事物,如一本书,一个人,一只猫....
语法:
{ 属性名:值,
属性名:值,
属性名:值 } 若干个键(key)值(value)对
1、字面量
访问对象的值,对象的变量名.属性名
访问对象的值, 对象的变量名[ ' 属性名'] 如果不加引号就会朝内存中找这个变量
给对象添加属性 对象名.属性名=属性值
修改对象的属性值 对象名.属性名=属性值
对象名['属性名']添加属性
2 new关键字创建
var obj = new Object(){
name: '属性值'
}
// console.log(obj)
3、构造函数创建对象 函数名首字母大写
function Person(name) {
this.name = name
}
var person = new Person('对象')
// console.log(person)
- const students={
- name:'张三',
- id:1001,
- sex:'男',
- hobby:function(){
- console.log('我喜欢唱歌')
- }
-
- }
对象操作------增删改查
对象名都是字符串,属性名没有特殊符号的时候,字符串引号可以省略
查-------对象名.属性名 或 对象名['属性名'] (不加引号表示变量)
- // 对象名都是字符串,属性名没有特殊符号的时候,字符串引号可以省略
- const peiqi = {
- uname: '佩奇',
- age: 20,
- sex: '女',
- 'a-b': 20,
- }
- console.log(peiqi['a-b'])
当里面的属性用变量存起来时用[ ]
总结:属性名明确的话,两种形式都可以,属性名存在变量里或者属性名含有特殊符号的,只能用中括号
增-------对象名.属性名=属性值
- // 增
- peiqi.color = 'pink'
- peiqi.sing = function () {
- console.log('唱歌')
- }
- console.log(peiqi)
改--------对象名.属性名=属性值
- // 改
- peiqi.age = 4
- console.log(peiqi)
删---------delete 对象名.属性名
- // 删
- delete peiqi.sex
- console.log(peiqi)
for in 可以遍历对象或数组
- const peiqi = {
- uname: '佩奇',
- age: 20,
- sex: '女',
- 'a-b': 20,
- }
-
- // for in 可以遍历对象或数组
- for (let key in peiqi) {
- console.log(key) // 获取的是属性名
- console.log(peiqi[key]) //;
- }
for in 遍历数组
- const arr = [1, 2, 3]
- for (let k in arr) {
- console.log(k) // 拿到的是索引 字符串
- console.log(arr[k])
- }
- html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Documenttitle>
- <style>
- table{
- width: 500px;
- margin: 100px auto;
- border-collapse: collapse;
- /* background: linear-gradient(red, yellow); */
- }
- table,th,td{
- border: 1px solid #757373;
- text-align: center;
- height: 40px;
-
- }
- th{
- background-color: #a8a6a6;
- }
- /* tr:hover{
- background-color: #a8a6a6;
- } */
- tr:hover{
- background-color: antiquewhite;
-
- }
- style>
- head>
- <body>
-
- <script>
- const students = [
- {
- id: 10001,
- name: 'lily',
- age: 20,
- score: 90,
- },
- {
- id: 10002,
- name: 'lucy',
- age: 21,
- score: 80,
- },
- {
- id: 10003,
- name: 'tom',
- age: 22,
- score: 85,
- },
- ]
- let str=''
- for(let i=0;i
- str+=`
- <tr>
- <td>${students[i].id}td>
- <td>${students[i].name}td>
- <td>${students[i].age}td>
- <td>${students[i].score}td>
- tr>
- `
-
- }
- document.write(`
- <table>
- <thead>
- <th>学号th>
- <th>姓名th>
- <th>年龄th>
- <th>成绩th>
-
- thead>
- <tbody>
- ${str}
- tbody>
- table>
- `)
- script>
- body>
- html>
六、Math内置对象
Math内置对象------提供一系列与数学运算相关的属性或方法
Math内置对象:
PI 圆周率
floor 向下取整
ceil 向上取整
round 四舍五入
abs 取绝对值
pow 求某个数的几次方
sqrt 求平方根
max 求一组数据中的最大值
min 求一组数据中的最小值
random 是 [ 0-1 )之间的随机的小数
- console.log(typeof Math) // object 对象类型
- console.log(Math.PI) // 3.1415926
- // 常用方法
- console.log(Math.abs(-5)) // 5 绝对值
- console.log(Math.ceil(10.1)) // 11 向上取整
- console.log(Math.floor(10.9)) // 向下取整 10
- console.log(Math.max(10, 3, 4, -1)) // 10
- console.log(Math.min(10, 3, 4, -1)) // -1
- console.log(Math.pow(2, 5)) // 求2的5次方
- console.log(Math.sqrt(16))
- console.log(Math.round(10.5)) // 11 四舍五入
七、随机函数
产生n-m之间的随机整数
- function getRandom(n, m) {
- if (n > m) {
- let temp = n
- n = m
- m = temp
- }
- // return Math.round(Math.random()*(m-n))+n
- return Math.floor(Math.random() * (m - n + 1)) + n
-
- }
八、日期对象
日期对象:
console.log(data.getTime()) //从1970年1月1日到此时此刻的毫秒数
console.log(date.valueOf()) //拿到此时此刻的毫秒数
var data= +new Date() //拿到的也是此时此刻的毫秒数
var data = Date.now() //拿到的也是此时此刻的毫秒
var data = new Date('2023/10/1') //拿到指定日期的毫秒数
格式化时间:
var date = new Date() //获取中国标准时间
date.getFullYear() // 获取年份
date.getMonth() //获取月份(获取的月份比实际的月份小一月,要加1)
date.getDate() //获取日期
date.getHours() // 获取小时
date.getMinutes //获取分钟
date.getSeconds() //获取秒数
date.getDay() //获取一个星期中的星期几(1 - 6 代表星期一到六, 0 代表星期日)
封装时间函数
- function getTime() {
- var date = new Date()
- var y = date.getFullYear() //获取当前年份
- var m = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1 //获取当前月份
- var d = date.getDate() < 10 ? '0' + date.getDate() : date.getDate() //获取当前日期
- var h = date.getHours() < 10 ? '0' + date.getHours() : date.getHours()//获取当前小时
- var mm = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()//获取当前分钟
- var s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds()//获取当前秒数
- return y + '-' + m + '-' + d + ' ' + h + ':' + mm + ':' + s
- }
-
- console.log(getTime())
封装倒计时函数
- function getTime(date) {
- let nowTime = new Date().getTime()//获取当前时间总毫秒数
- let futTime = new Date(date).getTime()//获取未来时间总毫秒数
- let time = (futTime - nowTime) / 1000//未来时间与当前时间差转成秒数
- //倒计时的秒数时间
- var d = parseInt(time / 60 / 60 / 24)//获取倒计时天数
- d = d < 10 ? '0' + d : d
- let h = parseInt(time / 60 / 60 % 24)//获取倒计时小时
- h = h < 10 ? '0' + h : h
- let m = parseInt(time / 60 % 60)//获取倒计时分钟
- m = m < 10 ? '0' + m : m
- let s = parseInt(time % 60)//秒
- s = s < 10 ? '0' + s : s
- return `${d}天 ${h}时 ${m}分 ${s}秒`
-
- }
- console.log(getTime('2023-11-8 20:00:00'))
九、案例
随机⽣成颜⾊的案例
- function Random(flag) {
-
- if (flag === true || flag === undefined) {
- const arr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f']
-
- let str = '#'
- for (let i = 1; i <= 6; i++) {
- let random = Math.floor(Math.random() * arr.length)
- str += arr[random]
-
- }
- return str
- } else {
- 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})`
- }
-
- }
-
- console.log(Random(false))
- console.log(Random(true))
- console.log(Random())
随机点名
- const arr=['苹果','香蕉','草莓','橘子']
- function getRandom(n,m){
- if(n>m){
- let temp=n
- n=m
- m=temp
-
- }
- return Math.floor(Math.random()*(m-n+1))+n
- }
- console.log(arr[getRandom(0,arr.length-1)])