ES6 — 字符串、数值、对象和数组

1、字符串

新增字符串识别方法:

  • includes():返回布尔值,判断是否找到参数字符串。
  • startsWith():返回布尔值,判断参数字符串是否在原字符串的头部。
  • endsWith():返回布尔值,判断参数字符串是否在原字符串的尾部。

例子:

let string = "apple,banana,orange";
string.includes("banana");     // true
string.startsWith("apple");    // true
string.endsWith("apple");      // false
string.startsWith("banana",6)  // true

  

字符串重复方法:

  repeat():返回新的字符串,表示将字符串重复指定次数返回。

console.log("Hello,".repeat(2));  // "Hello,Hello,"

  

字符串补全方法:

  参数x为指定生成的最小字符串长度(必须),s为用来补全的字符串(不必须)。

  • padStart(x,s):返回新的字符串,表示用参数字符串从头部(左侧)补全原字符串。
  • padEnd(x,s):返回新的字符串,表示用参数字符串从尾部(右侧)补全原字符串。
console.log("h".padStart(5,"o"));  // "ooooh"
console.log("h".padEnd(5,"o"));    // "hoooo"
console.log("h".padStart(5));      // "    h"

  如没有设置s,则用空格补全。

模板字符串

  模板字符串相当于加强版的字符串,使用用反引号 ` `定义,除了作为普通字符串,还可以用来定义多行字符串,还可以在字符串中加入变量和表达式。字符串可以插入变量和表达式。变量名写在 ${} 中,${} 中可以放入 JavaScript 表达式。

let name = "Mike";
let age = 27;
let info = `My Name is ${name},I am ${age+1} years old next year.`
console.log(info);
// My Name is Mike,I am 28 years old next year.

  

2、数值

数值表示:

  二进制表示法新写法: 前缀 0b 或 0B 。ob11 === 3

  八进制表示法新写法: 前缀 0o 或 0O 。0o11 === 9

常量:

  Number.EPSILON:Number.EPSILON 属性表示 1 与大于 1 的最小浮点数之间的差。它的值接近于 2.2204460492503130808472633361816E-16,或者 2-52。

最大/最小安全整数:

  安全整数表示在 JavaScript 中能够精确表示的整数,安全整数的范围在 2 的 -53 次方到 2 的 53 次方之间(不包括两个端点),超过这个范围的整数无法精确表示。

Number对象新方法

  Number.isFinite():用于检查一个数值是否为有限的( finite ),即不是 Infinity。

从全局移植到 Number 对象的方法:

  Number.parseInt( number ): 逐步减少全局方法,用于全局变量的模块化。方法的行为没有发生改变。

Math对象的扩展:

  ES6 在 Math 对象上新增了 17 个数学相关的静态方法,这些方法只能在 Math 中调用。

  Math.cbrt( x ): 求x的立方根。

  Math.imul(x,y):x和y以32为带符号整数形式相乘的结果。

  Math.hypot(x,y...):用于计算所有参数的平方和的平方根。

双曲函数方法:

  • Math.sinh(x): 用于计算双曲正弦。
  • Math.cosh(x): 用于计算双曲余弦。
  • Math.tanh(x): 用于计算双曲正切。
  • Math.asinh(x): 用于计算反双曲正弦。
  • Math.acosh(x): 用于计算反双曲余弦。
  • Math.atanh(x): 用于计算反双曲正切。

3、对象

对象简洁表示法:

  ES6允许对象的属性直接写变量,这时候属性名是变量名,属性值是变量值。

const age = 12;
const name = "Amy";
const person = {age, name};
person   //{age: 12, name: "Amy"}
//等同于
const person = {age: age, name: name}

   方法名简写:

const person = {
  sayHi(){
    console.log("Hi");
  }
}
person.sayHi();  //"Hi"
//等同于
const person = {
  sayHi:function(){
    console.log("Hi");
  }
}
person.sayHi();//"Hi"

  属性名表达式:

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

  

对象的扩展运算符(...):

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

  

对象新方法:

Object.assign(target, source_1, ···):用于将源对象的所有可枚举属性复制到目标对象中。

let target = {a: 1};
let object2 = {b: 2};
let object3 = {c: 3};
Object.assign(target,object2,object3);  
// 第一个参数是目标对象,后面的参数是源对象
target;  // {a: 1, b: 2, c: 3

  

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

4、数组

数组创建:

  Array.of():将参数中所有值作为元素组成数组。

  Array.from(arrayLink,[mapFn],[thisArg]):将类数组对象或者可迭代对象转化为数组。

    参数:1、arrayLink:

          console.log(Array.from([1, 2, 3])); // [1, 2, 3]

       2、mapFn:

          console.log(Array.from([1, 2, 3], (n) => n * 2)); // [2, 4, 6]

       3、thisArg:可选,用于指定 map 函数执行时的 this 对象。

   可通过Array.from(map),Array.from(set),Array.from(String)转化为Map,Set和String对象。  

扩展方法:

  Array.find( '判断条件' ):

    查找数组中符合条件的元素,若有多个符合条件的元素,则返回第一个元素。  

  Array.findindex( '条件' ):

    查找数组中符合条件的元素索引,若有多个符合条件的元素,则返回第一个元素索引。

  Array.fill(x,index1,index2):

    x表示要填充的元素,index1是填充的起始元素,index2是末尾元素,起始元素可以取到,末尾元素不能取到。

  Array.copyWithin(index1,index2,index3):

    将一定范围索引的数组元素修改为此数组另一指定范围索引的元素。

  Array.entries():

    遍历键值对。

for(let [key, value] of ['a', 'b'].entries()){
    console.log(key, value);
}
// 0 "a"
// 1 "b"

  Array.key():

    遍历键名。

  Array.values():

    遍历键值。

 

 

  

posted @ 2021-09-25 23:12  小绵杨Lamb  阅读(174)  评论(0)    收藏  举报