当前位置:网站首页>ES6-对象
ES6-对象
2022-07-31 05:18:00 【春意迟迟、】
(1)对象字面量
属性的简洁表示法:ES6允许对象的属性直接写变量,这时候属性名是变量名,属性值是变量值。
<script> var sum = 10 //普通写法 //key值是一个常量,value值是变量值,这两个sum意义不同 var obj1 = { sum: sum } //标准写法:{"sum":sum} console.log(obj1.sum) //10 //对象的字面量:允许对象的属性直接写变量名,属性值为变量值 //es6d的对象成员可以是一个变量名,把变量名作为对象的属性名, //变量值作为对象的属性值(易于读取 提高开发效率) var obj2 = { sum } console.log(obj2.sum) //方法简写:函数根据业务有很多别称:构造函数 静态函数 //方法 事件处理程序(监听器) 闭包 回调函数 钩子函数等 var obj3 = { name: "rose", flower: function () { } } //name是对象的成员,flower function(){}是对象的方法 //方法可以简写为: var obj4 = { name: "rose", flower() {}//flower function(){} 是一样的 } //对象的成员名可以是表达式 const obj = { ["he" + "llo"]() { console.log(111) return "Hi"; } } //调用的时候将字符串进行拼接 console.log(obj.hello()) //"Hi" </script>
注:属性的简洁表示法和属性名表达式不能同时使用,否则会报错
(2)对象的扩展运算符
拓展运算符(...)用于取出参数对象所有可遍历属性然后拷贝到当前对象。
<script> var obj1 = { name: "rose", age: 20 } var person = { ...obj1 } console.log(person)//{name:"rose",age:20} //合并两个对象 var obj2 = { id: 1, tel: "187***" } person2 = { ...obj1, ...obj2 } console.log(person2)//{name:"rose",age:20,id:1,tel:"187***"} //自定义的属性在拓展运算符后面,则拓展运算符对象内部同名的属性将被覆盖掉。 let person3 = { name: "Amy", age: 15 }; let someone = { ...person3, name: "Mike", age: 17 }; console.log(someone); //{name: "Mike", age: 17} //自定义的属性在拓展运算度前面,则变成设置新对象默认属性值。 let person4 = { name: "Amy", age: 15 }; let someone1 = { name: "Mike", age: 17, ...person4 }; console.log(someone1); //{name: "Amy", age: 15} //拓展运算符后面是空对象或null或者undefined,没有效果也不会报错。 let a = { ...{}, a: 1, b: 2 }; console.log(a); //{a: 1, b: 2} let b = { ...null, ...undefined, a: 1, b: 2 }; console.log(b); //{a: 1, b: 2} </script>
注:自定义的属性在拓展运算符后面,则拓展运算符对象内部同名的属性将被覆盖掉。
自定义的属性在拓展运算度前面,则变成设置新对象默认属性值。
拓展运算符后面是空对象或null或者undefined,没有效果也不会报错。
(3)对象的新静态方法
Object.is(value1, value2):用来比较两个值是否严格相等,与(===)基本类似。
<script> //Object.is()方法 Object.is("a", "a") //true Object.is(1, 1) //true Object.is({ name: "rose" }, { name: "rose" }) //false Object.is([1, 2], [1, 2]) //false //Object.is()方法与 === 的区别 //一是+0不等于-0 Object.is(+0, -0); //false +0 === -0 //true //二是NaN等于本身 Object.is(NaN, NaN); //true NaN === NaN //false </script>
Object.is()与===是有区别的
边栏推荐
猜你喜欢
随机推荐
Cholesterol-PEG-Amine CLS-PEG-NH2 Cholesterol-Polyethylene Glycol-Amino Research Use
Rejection sampling note
Three methods of accessing image pixels in opencv
Cholesterol-PEG-Azide CLS-PEG-N3 Cholesterol-PEG-Azide MW:3400
Websocket协议解析与QT代码示例
UE5 最新动态虚幻引擎全新版本引爆互联网
C语言对文件的操作(完整版)
DSPE-PEG-Azide DSPE-PED-N3 Phospholipid-Polyethylene Glycol-Azide Lipid PFG
衡量 DevOps 成功与否的重要度量指标
ROS subscription to multiple topics time synchronization problem
Data Preprocessing, Feature Engineering, and Feature Learning - Excerpt
[已解决]ssh连接报:Bad owner or permissions on C:\\Users/XXX/.ssh/config
这些数组技巧,我爱了
TCP与UDP协议的区别,以及TCP的三次握手和四次挥手
Software Testing Interview Questions 2021
IDEA overview and installation and debugging
滴滴被罚超80亿!收集并泄露1.07亿条乘客人脸识别信息
【Latex】TexLive+VScode+SumatraPDF 配置LaTex编辑环境
Four common ways of POST to submit data
Cholesterol-PEG-DBCO Cholesterol-Polyethylene Glycol-Diphenylcyclooctyne Chemical Reagent