JavaScript对象是什么?常见的对象有哪些?

JavaScript对象是无序数据集合,包含属性和方法。创建对象可通过字面量或构造函数,属性可增删查改。常见的对象包括JSON、Symbol、字符串、包装类型、Math和Date。JSON用于数据传输,Symbol提供唯一值,字符串对象包含多种方法,包装类型如string、boolean、number支持对象操作,Math提供数学运算,Date处理日期和时间。

什么是对象

数组是一组数据的有序集合,对象是一组数据无序的集合,拥有属性、方法
属性:对象拥有的数据
方法:对象拥有的操作
内置对象:数组、Set、Map、函数等

创建对象

  1. 字面量 let obj = {}

  2. 构造函数 let obj = new Object()

  3. 对象中某条数据的键对应的值不是函数,就对这条数据称为“属性”

    let obj = {
        name:"zhangsan"
        key  键  value 值
    }
    

对象属性

  1. 创建时添加

    let obj = {
        name:"zhangsan",
        age:18
    };
    
  2. obj.key = value

  3. obj(string) = value

    删 delete obj.key
    查 obj.key
    改 obj.key = newValue

    已有的是改,没有的是增

let obj = {
    name = "zhangsan",
    age:18,
    talk: function(){
        console.log(`我叫${obj.name},今年${obj.age}岁`);
    }
};
obj.talk();

语法糖

let name = "zhangsan";
let obj = {
    name,
    age:18
};
console.log(obj.name);    //zhangsan

遍历
1.for in 遍历到键
let name = "zhangsan";
let obj = {
    name,
    age:18
};
console.log(let key in obj){
    console.(log obj[key];)   //18,male
}

2.Object.keys(obj)  返回拥有所有key的arr
let arr = Obejct,keys(ob);
    for(let item of arr){
        console.log(obj[item]);
}
//----------嵌套
let obj = {
    zhangsan:{
        name:"zhangsan",
        age:22,
        gender:"famale"
    },
    lisi:{
        name:"lisi",
        age:17,
        gender:"male"
    }
};
console.log(obj,zhangsan.age); //22


//-----解构
let {name:a}={name:"zhangsan"};
let{name:name}={name:"zhangsan"};
let{name}={name:"zhangsan"};
console.log(name);

let obj = {
    name:"zhangsan",
    age:18
};
let fn = function({name,age,tel=987654}){
    console.log(name,age,tel);
}
fn(obj);     //"zhangsan 18 987654"

this

对象中的 this 指的就是当前对象

let obj = {
    name:"zhangsan",
    age:18
    talk(){
        console.log(this.name);
    }
};
obj.talk();   // zhangsan

常见的几种对象

JSON JavaScript object notation

数据存储、传输格式

HTML -> xml 可扩展标记语言

序列化

JSON.stringify(obj) obj -> string

反序列化

JSON.parse(str) string -> obj

不会保存 function、undefined、键使用""引起来

let obj = {
    name:"zhangsan",
    age:18
};
console.log(typeof obj);    //object
let str = JSON.stringify(obj);
console.log(str,typeof str);    //string

Symbol

独一无二的值

let s1 = Symbol("描述符");
console.log(s1);   //Symbol(描述符)
let s2 = Symbol("描述符");
console.log(s1==s2);   //false

给对象添加 symbol 值

1.obj[symbol] = value;
2.定义对象时直接添加

字符串对象

  1. str.charAt(index) 通过下标找到字符

    let str = "ABCD EFG";
    console.log(str.charAt(1));   //B
    
  2. str.charCodeAt(index) 输出字符的 ASCII 码

    let str = "ABCD EFG";
    console.log(str.charCodeAt(0));   // 65
    
  3. str.indexOf(value) str.lastIndexOf(value) 返回下标,没有的为 -1

    let str = "ABCD EFG";
    console.log(str.indexOf("C"));   // 2
    console.log(str.lastIndexOf("Z"));  //  -1
    
  4. str.trim() 去掉字符串前后的空格

    let str = " abc ";
    console.log(str.length);  //5
    str = str.trim();
    console.log(str,str.length);  //abc   3
    
  5. str.toUpperCase() str.toLocaleLowerCase() 大小写转换

    let str = "AbCd EfG";
    console.log(str.toUpperCase());  //ABCDEFG
    console.log(str.toLocaleLowerCase());   //abcdefg
    
  6. str.concat() 拼接

    1. str.slice() 截取

包装类型

string boolean number

对于基本数据类型操作属性、方法,自动装箱,使用完成后自动拆箱。

包装的目的:万物皆对象

Math 数学对象

  1. Math.PI 圆周率
  2. min() max() 最小/最大
  3. ceil() floor() round() 向上取整 / 向下取整 / 四舍五入
  4. random()

Date 日期对象

let date = new Date();

  1. 获取年

    let year = date.getFullYear();

  2. date.getMonth()+1;

  3. date.getDate()

  4. 小时

    date.getHours()

  5. 分钟

    date.getMinutes()

  6. date.getSeconds()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值