ES6的语法

一、let 和const

1.let:用来声明块级变量。var声明多的变量会出现作用域的提升(会出现变量的污染)

2.const:声明的常量必须要初始化

3.const:声明的对象:常对象

(1)可以修改对象的属性值,但不能修改对象本身

const obj = { 
    name:'张三',
    age:25
}
obj.name = '李四'  //正确的:修改对象的属性
obj = {} // 错误的:不能改变对象

(2)冻结对象:不能修改对象的属性。使用Object.freeze(对象名)

const obj = {
            name:'李四',
            age: 25
        }
console.log(obj)
Object.freeze(obj) //冻结对象obj,就不能修改obj的属性
obj.name = '王五'
console.log(obj)

(2)冻结嵌套的对象

const p = {
            name:'李四',
            age: 25,
            family:{
                father:'李世民',
                mother:'长孙皇后'
            }
        }
    //定义一个冻结函数
    function fun(obj){ //函数的参数是对象
        //1.冻结对象:参数接收的对象
        Object.freeze(obj)
        //2.使用for...in循环遍历对象的属性
        for(let key in obj){ //key = 'mother'
            //2.1 hasOwnProperty用来判断对象是否包含给定的属性。typeyof用来判断数据类型
            if(obj.hasOwnProperty(key) && typeof obj[key] === 'object'){// obj['mother'] -- string
                fun(obj[key])
            }
        }
    }
    fun(p)
    p.family.father = '李建成'
    console.log(p)

hasOwnProperty(key)函数:判断key是否是对象的属性,若是返回true,不是返回false

二、冻结对象:Object.freeze(obj)

(1)遍历对象的属性:for…in

​         for(let k in obj){ }

三、构造函数

​ (1)作用:初始化对象(是对象的模型),所有的对象都是用这个模型造出来的

​ (2)this:指向由构造函数创建的对象(代表当前对象)

​ (3)对象:是属性和行为的结合体

​ 属性:是对象的静态特征(成员变量)

​ 行为:是对象的动态特征(函数 / 方法)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值