js对象
js中的对象数据结构
为什么需要对象?
保存一个值,我可以选择用变量来存
保存多个值,我可以选择用数组来存
那么如果我想存储一个人的完整信息,那么我就需要对象啦~
对象的组成:属性 + 方法
如何创建一个对象呢?
- 利用字面量来进行创建 : 键值对
e.g. var star = {
name: xxx,
age: 18,
sayHi: function() {
alert(‘Hi’)
}}
调用方式:star.name,star.sayHi()
利用new Object来创建:
var lxy = new Object();
lxy.name = ‘Noelle’;
lxy.sayHi = function() {
alert(‘Hi’)
利用构造函数来创建:
[好处: 上述使用字面量和原生的Object构造函数一次只能创建一个对象。但是利用自定义构造函数封装公共的属性和方法,可以一次创建多个不同的对象!!!]
function Person(name, age) {//抽象公共部分,泛指一个类class
this.name = name;
this.age = age;
this.sayHi = function() {
alert(‘Hi’)}
}
var lxy = new Person(‘Noelle’, 18);//对象实例化
new关键字执行时做了什么?
- 首先,在内存中创建一个新的空对象;
- 其次,让this指向这个新的空对象;
- 接着,执行构造函数里的代码,给新的空对象添加属性和方法;
- 最后,返回这个新对象(new就做了,不需要一般函数return了!)
如何遍历一个对象里的所有属性?
for (var att in obj) {
xxx}
常用的的JavaScript中的内置对象和内置构造函数:Math, Date, Array, String
其中Math是内置对象,并不是构造函数,因为它不需要new进行调用,可以直接使用,不要被大写迷惑咯~
6.1 Math(内置对象)
- Math.floor() 向下取整
- Math.ceil()向上取整
- Math.round()四舍五入取整
- Math.abs()绝对值
6.2 Date(内置构造函数)
new Date() 如果括号里有参数比如’2023/5/17’就返回括号里的时间;若没有参数就反正当前时间
日期格式化可用的方法:
a. getFullYear()
b. getMonth() 记得+1!!!!!!!
c. getDate()
d. getDay()
e. getHours()
f. getMinutes()
g. getSeconds()
6.3 Array (内置构造函数)
indexOf可以查找一个给定元素的第一个索引
6.4 String(内置构造函数)
注意!!!!字符串所有的方法都不会修改字符串本身,操作完成返回一个新的字符串而已,所以避免大量的字符串拼接
- charAt()返回指定位置的字符
- substr(start, length) 返回从start开始,长度为length的子字符串f
- slice(start, end)返回[start,end)的子字符串
- split()将字符串切分为数组并返回
- 利用字面量来进行创建 : 键值对