随笔 - 312  文章 - 0  评论 - 2  阅读 - 11万

JS:ES6对象新增及方法

新增

*加粗常用

1、变量声明:const和let

2、箭头函数

3、二进制和八进制字面量

4、对象和数组解构

Object.is(value1, value2)

map和reduce

map():接收一个函数,将原数组中的所有元素用这个函数处理后放入新数组返回。

reduce{}:接收一个函数(必须)和一个初始值(可选),该函数接收两个参数:

  • 第一个参数是上一次 reduce处理的结果
  • 第二个参数是数组中要处理的下一个元素
5、字符串扩展
  • includes() : 返回布尔值,表示是否找到了参数字符串;
  • startsWith() : 返回布尔值,表示参数字符串是否在原字符串的头部;
  • endsWith() : 返回布尔值,表示参数字符串是否在原字符串的尾部.

6、对象超类super()

7、for…of 和 for…in

8、ES6中的类  ES6 中支持 class 语法

9、扩展运算符...  扩展运算符(spread)是三个点(...), 将一个数组转为用逗号分隔的参数序列 
10、Promise 简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。从语法上说,Promise 是一个对象,从它可以获取异步操作的消息。
11、转码器  Babel (babeljs.io) 是一个广为使用的 ES6 转码器,可以将 ES6 代码转为 ES5 代码,从而在浏览器或其他环境执行 。

 

 

(1)对象字面量

  • 属性的简洁表示法:ES6允许对象的属性直接写变量,这时候属性名是变量名,属性值是变量值。

const age = 12;
const name = "Amy";
const person = {age, name};
console.log(person); //{age: 12, name: "Amy"}

 

  • 方法也可以简写:

const person = {
 sayHi(){
   console.log("Hi");
}
}
person.sayHi();  //"Hi"

 

  • 属性名表达式:ES6允许用表达式作为属性名,但是一定要将表达式放在方括号内。

const obj = {
["he"+"llo"](){
  return "Hi";
}
}
obj.hello();  //"Hi"

 

注意点:属性的简洁表示法和属性名表达式不能同时使用,否则会报错。

复制代码
const hello = "Hello";
const obj = {
[hello]
};
console.log(obj);  //SyntaxError: Unexpected token }

const hello = "Hello";
const obj = {
[hello+"2"]:"world"
};
console.log(obj); //{Hello2: "world"}
复制代码

 

(2)对象的扩展运算符

拓展运算符(...)用于取出参数对象所有可遍历属性然后拷贝到当前对象。

  • 基本用法

let person = {name: "Amy", age: 15};
let someone = { ...person };
console.log(someone);  //{name: "Amy", age: 15}

 

  • 可用于合并两个对象

let age = {age: 15};
let name = {name: "Amy"};
let person = {...age, ...name};
console.log(person);  //{age: 15, name: "Amy"}

 

注意:自定义的属性和拓展运算符对象里面属性的相同的时候

  1. 自定义的属性在拓展运算符后面,则拓展运算符对象内部同名的属性将被覆盖掉。

let person = {name: "Amy", age: 15};
let someone = { ...person, name: "Mike", age: 17};
console.log(someone);  //{name: "Mike", age: 17}

 

  1. 自定义的属性在拓展运算度前面,则变成设置新对象默认属性值。

let person = {name: "Amy", age: 15};
let someone = {name: "Mike", age: 17, ...person};
console.log(someone);  //{name: "Amy", age: 15}

 

  1. 拓展运算符后面是空对象,没有任何效果也不会报错。

let a = {...{}, a: 1, b: 2};
console.log(a);  //{a: 1, b: 2}

 

  1. 拓展运算符后面是null或者undefined,没有效果也不会报错。

let b = {...null, ...undefined, a: 1, b: 2};
console.log(b);  //{a: 1, b: 2}

 

(3)对象的新方法

Object.is(value1, value2):用来比较两个值是否严格相等,与(===)基本类似。

Object.is("q","q");      // true
Object.is(1,1);          // true
Object.is([1],[1]);      // false
Object.is({q:1},{q:1});  // false

 

与===的区别

//一是+0不等于-0
Object.is(+0,-0);  //false
+0 === -0  //true
//二是NaN等于本身
Object.is(NaN,NaN); //true
NaN === NaN  //false

 

 

posted on   香香鲲  阅读(972)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示