javascript-Object

Object basic

定义一个简单的对象

let user = {
    name: 'Q10Viking',
    city: 'BeiJing',
    code: function () {
        console.log(`${this.name} is learning javascript at ${this.city}`)
    }
}

console.log(user.code());

其中需要注意,在对象中定义方法不能使用箭头函数,因为箭头函数没有单独的this,它只会默认的从上一级继承this,MDN Javascript Arrow functions,但是可以简化为这样。

let user = {
    name: 'Q10Viking',
    city: 'BeiJing',
    code() {
        console.log(`${this.name} is learning javascript at ${this.city}`)
    }
}

Array Object

let user = {
    author: 'Q10Viking',
    blogs: [
        {title: '01-program with javascript',likes: 20},
        {title: '02-array object in javascript',likes: 35}
    ],
    code() {
        console.log(`The ${this.author} has written the following blogs:`)
        this.blogs.forEach((blog)=>{
            console.log(blog.title,blog.likes)
        })
    }
}
// this will be assign by the user object
console.log(user.code());

Math Object

// Math object

let num = 7.7;
// 四舍五入
console.log(Math.round(num)); 
// 向下取值
console.log(Math.floor(num));
// 向上取值
console.log(Math.ceil(num));
// 去除小数位数
console.log(Math.trunc(num));
// [0,1)随机数
console.log(Math.random());
// 生成[0,100)随机数
let random = Math.random();
console.log(Math.round(random*100));

Primitive & Reference type

在这里插入图片描述
primitive 类型存储在stack中,reference类型存储在heap中。

// primitive type
let numOne = 50,numTwo = numOne
// 50 50
console.log(numOne,numTwo);
numOne = 100;
// 100 50
console.log(numOne,numTwo);



// reference type
let userOne = {name: 'Q10Viking'},userTwo = userOne;
// {name: "Q10Viking"} {name: "Q10Viking"}
console.log(userOne,userTwo);
userOne.name="hzz";
// {name: "hzz"}name: "hzz"__proto__: Object {name: "hzz"}
console.log(userOne,userTwo);

遍历属性

for (const key in Object)

如在vue场景中,通过子组件一次性更新父组件的值

  data () {
    return {
      right: {
        'crightName': null,
        'crightImage': null,
        'crightContent': null
      }
	}

methods:{
	    handleRights () {
      if (this.createNewFlag) {
        // create 注意需要返回一个新的对象,如果只是this.right,那么会因为公用一个对象而出错
        this.$emit('createNewRight', {...this.right})
      } else {
        // update 一次性更新
        for (const key in this.right) {
          this.$emit(`update:${key}`, this.right[key])
        }
      }
    }
}

注意:需要返回一个新的对象,如果只是this.right,那么会因为公用一个对象而出错

JavaScript中的Object对象是一种基本的数据类型,它是其他所有对象的基础。以下是JavaScriptObject对象的一些常见属性和方法: 属性: - constructor:返回创建该对象实例的函数。 - prototype:允许您向对象添加属性和方法。 方法: - Object.assign():将一个或多个源对象的属性复制到目标对象。 - Object.create():创建一个新对象,使用现有对象作为原型。 - Object.entries():返回一个给定对象自身可枚举属性的键值对数组。 - Object.keys():返回一个给定对象自身可枚举属性的键名数组。 - Object.values():返回一个给定对象自身可枚举属性的键值数组。 - Object.freeze():冻结一个对象,使其不可修改。 - Object.getOwnPropertyDescriptor():返回指定对象上一个自有属性对应的属性描述符。 - Object.getPrototypeOf():返回指定对象的原型(内部[[Prototype]]属性的值)。 - Object.hasOwnProperty():判断一个对象是否具有指定名称的自身属性。 - Object.isFrozen():判断一个对象是否被冻结。 - Object.isPrototypeOf():判断一个对象是否在另一个对象的原型链上。 - Object.setPrototypeOf():设置一个对象的原型(即将一个对象设置为另一个对象的原型)。 - Object.toString():返回表示该对象的字符串。 - Object.valueOf():返回指定对象的原始值。 这只是Object对象的一部分属性和方法,还有其他更多的属性和方法可以在JavaScript中使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值