对象
面向对象是干嘛的
封装–>把代码包装起来,不能随意访问/修改 只能通过特定方法
继承–>继承父类的属性/方法
多态–>同一个类型有不同的样式
面向过程:吃狗屎–>描述的是一个过程 用代码去说明,这个过程是怎么样的:做什么
面向对象:狗吃屎–>描述的是一个对象的行为 用代码去调用该对象完成的操作:
谁去做
一句话总结面向对象:你是个老板 你要想的不是这件事怎么做,而是让谁去做
以老板的心态去管理项目,思考好哪个功能需要用什么类/对象去实现而不是纠结在单个功能怎么实现
对象由什么东西组成:
属性: 用变量表示
方法: 用函数来表示
JavaScript对象也是由属性和方法组成,调用方式也是通过对象xx的方式进行访问
js的内置对象 --> 类似于Python的内置模块
js自定义对象,是用键值对的方法来保存数据
let 对象名 = {
键:值,
键:值
}
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><script>let ting={name:'小明',age:20,drink:function(){alert('多喝水')}}alert(ting.name)alert(ting.age)ting.drink()</script>
</body>
</html>
数组
数组作用/表现行为和Python列表都是非常相似的 作用都是用来保存多个数据/变量.
数组表现形式为: 用一对中括号[]包裹起来的数据 里面的数据用逗号隔开,数据类型不限
let 数组名 = [数据1,数据2,数据3]
let ting = [‘小明’,18,‘不男不女’,true]
0 1 2 3
数组里的数据是基于下标来保存的,下标相当于坐标,类似于酒店门牌号,默认从0开始
可以通过数组名[下标]方式访问对应数据 -->索引
数组名[下标]
console.log(ting[2]) 取出不男不女
可以通过数组名.length 获取数组的长度(数组里有几个数据)
数组名.length
ting.length
注意:
1.数组是没有负数下标 不能数组名[-1]这种方式取值
2.数组里没有切片
3.数组里的内容可以被修改
数组名[下标] = 值
ting[0] = ‘胡涛’
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Document</title>
</head>
<body><script>let stu=['西北锤王','东北狐仙','大秦','武安君']console.log(stu[3])stu[0]='小明'console.log(typeof stu,stu)console.log(stu.length)</script>
</body>
</html>
数组的方法
push: 在数组最后追加数据 可以追加多个数据 返回值为追加后的数组长度
数组名.push(数据)
数据命.push(数据1,数据2)
pop:删除数组的最后一个数据 返回值为删除的数据
数组名.pop()
unshift:在数组最前面添加数据 可以添加多个数据 返回值为追加后的数组长度
数组名.unshift(数据)
数组名.unshift(数据1,数据2)
shift:删除数组的第一个元素,返回值为被删除的元素
数组名.shift()
splice:增删数据 取出数组里的一部分数据
数组名.splice(起点下标,取数据数量)
toString:把数组转为字符串 返回值值为转换的结果
数组名.toString()
reverse:数组数据反转
数组名.reverse()
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Document</title>
</head>
<body><script>//添加pushlet stu=['西北锤王','东北狐仙','大秦','武安君']stu.push('国师')console.log(stu,stu.push('高启强','胡歌','石昊'))//删除popconsole.log(stu.pop())//添加unshiftconsole.log(stu.unshift('胡歌'))//删除shiftconsole.log(stu.shift(),stu)//splicelet num=[1,5,6,11,55,66]let arr=num.splice(1,3)console.log(arr,num)//把数组转为字符串toStringlet nnum = num.toString()console.log(nnum,typeof nnum)//数组翻转,返回值为转换的结果reverseconsole.log(num.reverse)</script>
</body>
</html>
字符串(string)
声明方式:
let str1 = ‘hello’
let str2 = new String(‘hello’)
属性:
length 获取字符串里的数据个数
字符串.length
方法:
toUpperCase:把字符串里的字母转换为大写
toLowerCase:把字符串里的字母转换为小写
字符串.toUpperCase()
字符串.toLowerCase()
subsstring:截取字符串 (切片 取头不取尾)字符串.substring(起点,终点)
split:分割字符串 通过指定的字符把字符串分割为数组字符串.split('分割字符')
indexOf:获取指定元素的下标,有两个参数 1.要找的数据 2.起点字符串.indexOf('数据',起点下标)
charCodeAt:获取字符对应的编码字符串.charCodeAt(下标)
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Document</title>
</head>
<body><script>let str1=new String('xiaoming')console.log(str1.length)let str2='Hello world'console.log(str2.toUpperCase())//大写console.log(str2.toLowerCase())//小写console.log(str2.charCodeAt(4))let str3='小明要睡觉了'console.log(str3.substring(1,4))//字符串切片console.log(str3.split('已经睡着了'))console.log(str3.lastIndexOf('已经睡着了'))</script>
</body>
</html>
math(数学)
属性:
PI -->圆周率
Math.PI
方法:
random:生成0-1之前的随机数
ceil:数据向上取整 不管小数 整数+1
floor: 数据下取整 不要小数 保留整数
round:四舍五入求整
max:获取最大值
min:获取最小值
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Document</title>
</head>
<body><script>document.write(Math.PI+'<br>')let num=Math.random()document.write(num)let num1=parseInt(Math.random()*10)document.write(num1)document.write('<br>')document.write(Math.ceil(num))document.write('<br>')document.write(Math.floor(num1))document.write('<br>')document.write(Math.round(num1))document.write('<br>')document.write(Math.max(num1))document.write('<br>')document.write(Math.min(num1))document.write('<br>')</script>
</body>
</html>
date(日期)
Date() -->Date对象
let 变量名 = Date() 声明Date日期对象
getTime():获取格林威治时间戳 1970.1.1距离现在多少秒
getFullYear():获取当前年份
getMonth():获取当前月份 计算月份从0开始计算 所以要获取本月月份+1
getDate():获取日
getHours():获取小时
getMinutes():获取分钟
getSeconds():获取秒
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Document</title>
</head>
<body><script>console.log(Date())let now_time=new Date()let this_time=new Date('2023-5-23 22:56')console.log(now_time)console.log(this_time)console.log(now_time.getTime())console.log(now_time.getFullYear())console.log(now_time.getMonth()+1)console.log(now_time.getDate())console.log(now_time.getHours())console.log(now_time.getMinutes())console.log(now_time.getSeconds())</script>
</body>
</html>