JavaScript|ES7~ES12常见基础用法

ES7~ES12是 ES6 的补充,里面有很多比较灵活的用法可以在日常中使用,如果对 ES6 不太熟悉的可以看看这里:JavaScript|ES6日常用法详解

ES7 - Array Includes

在ES7之前,如果我们想判断一个数组中是否包含某个元素,需要通过 indexOf 获取结果,并且判断是否为 -1。 在ES7中,我们可以通过includes来判断一个数组中是否包含一个指定的元素,根据情况,如果包含则返回 true, 否则返回false。
arr.includes(valueToFind[, fromIndex])
fromIndex(可选): 从fromIndex 索引处开始查找 valueToFind。如果为负值,则按升序从 array.length + fromIndex 的索引开始搜 (即使从末尾开始往前跳 fromIndex 的绝对值个索引,然后往后搜寻)。默认为 0。

const arr = [1, 2, 3, 4, 5];
console.log(arr.includes(3)); // true
console.log(arr.includes(6)); // false
console.log(arr.includes(3, 3)); // false
console.log(arr.includes(3, -1)); // true
阅读全文 »

JavaScript|ES6日常用法详解

ES6全称ECMAScript 6.0 ,是JavaScript 的下一个版本标准。它的目标,是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言。

在前文中提到了ES6的新特性——class语法糖的使用。本文来讲讲除了class外ES6~ES12其他的新的特性,如果没有读的可以去看看:JavaScript|Class定义类

阅读全文 »

JavaScript|Class定义类

认识class和class的构造函数

在之前我讲原型的文章中,按构造函数创建的类不仅和普通的函数相似,还不容易理解。在ES6中,我们可以使用class来定义类,class的本质其实是构造函数的语法糖而已。

class Person {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }
  say() {
    console.log(`${this.name} is ${this.age} years old.`);
  }
}

var person = new Person('Tom', 18);

person.say(); // Tom is 18 years old.

console.log(person); // Person { name: 'Tom', age: 18 }
console.log(person.__proto__); // {}
阅读全文 »

JavaScript|原型判断

对象是否有属于自己的属性

通过hasOwnProperty()方法判断对象是否有属于自己的属性,而不是原型的属性。

var obj = {
    name: 'obj',
};

var obj1 = Object.create(obj, {
    age: {
        value: 18,
        enumerable: true,
        configurable: true,
        writable: true,
    },
});

console.log(obj1); // { age: 18 }
console.log(obj1.hasOwnProperty('age')); // true
console.log(obj1.hasOwnProperty('name')); // false
阅读全文 »

JavaScript|对象原型的理解

认识对象的原型

JavaScript当中每个对象都有一个特殊的内置属性 [[prototype]],这个特殊的对象可以指向另外一个对象。

那么这个对象有什么用呢?
当我们通过引用对象的属性key来获取一个value时,它会触发 [[Get]]的操作;
这个操作会首先检查该属性是否有对应的属性,如果有的话就使用它;
如果对象中没有该属性,那么会访问对象[[prototype]]内置属性指向的对象上的属性;

阅读全文 »

JavaScript|对象创建与属性控制

面向对象概念

对象是JavaScript中一个非常重要的概念,这是因为对象可以将多个相关联的数据封装到一起,更好的描述一个事物:
比如我们可以描述一辆车:Car,具有颜色(color)、速度(speed)、品牌(brand)、价格(price),行驶(travel)等等;
比如我们可以描述一个人:Person,具有姓名(name)、年龄(age)、身高(height),吃东西(eat)、跑步(run)等等;

阅读全文 »