JS语法

javascript获取数组最后一个元素

  1. pop() 方法用于删除并返回数组的最后一个元素。
var arr = new array("js", "javascript", "jquery");
var end = arr.pop();
console.log(end); // jquery
console.log(arr); // ["js", "javascript"]

pop() 方法将删除 arrayobject 的最后一个元素,把数组长度减 1,并且返回它删除的元素的值。如果数组已经为空,则 pop() 不改变数组,并返回 undefined 值。

  1. 数组的 length 属性,取最后一个元素
var arr = new array("js", "javascript", "jquery");
var end = arr[arr.length-1];
console.log(end); // jquery
  1. slice() 方法返回的是数组
var arr = new array("js", "javascript", "jquery");
var end = arr.slice(-1);
console.log(end); // ["jquery"]

slice() 方法可从已有的数组中返回选定的元素。
但是返回的数据类型是 array 不是 string 这点要注意一下!

扩展运算符

扩展运算符(...)是ES6的语法,用于取出参数对象的所有可遍历属性,然后拷贝到当前对象之中。

  • 克隆对象
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"}
let ab = { ...a, ...b }; 
//  等同于 
let ab = Object.assign({}, a, b);

如果用户自定义的属性,放在扩展运算符后面,则扩展运算符内部的同名属性会被覆盖掉(后面覆盖前面)。

  • 变换变量的值
let x = 1;
let y = 2;

[x, y] = [y, x];
  • 提取json
let jsonData = {
  id: 42,
  status: "OK",
  data: [867, 5309]
};

let { id, status, data: info} = jsonData; // info相当于data的别名

console.log(id, status, info);
  • 由于数组是特殊的对象,所以对象的扩展运算符也可以用于数组。
let foo = { ...['a', 'b', 'c'] };
console.log(foo); // {0: "a", 1: "b", 2: "c"}
  • 将一个数组添加到另一个数组的尾部
let arr1 = [0, 1, 2];
let arr2 = [3, 4, 5];
arr1.push(...arr2);
  • 合并数组
[...arr1, ...arr2, ...arr3] // [ 'a', 'b', 'c', 'd', 'e' ]
  • 函数参数的析构赋值
// bad
function getFullName(user) {
  const firstName = user.firstName;
  const lastName = user.lastName;
}

// good
function getFullName(obj) {
  const { firstName, lastName } = obj;
}

// best
function getFullName({ firstName, lastName }) {
}

扩展运算符可用于数组和对象的拷贝。

delete 删除对象属性

    let obj = { name: 'tom', age: 12 }
    delete obj.name
    console.log(obj) // {age: 12}

你可能感兴趣的:(JS语法)