1
^     异或
<<    左移
>>    右移
delete    删除属性
  • 不同类型之间“==”比较

不同类型之间“==”比较

  • ===在比较对象时,比较的是引用
  • toNumber和toPimitive是内部方法

toNumber对不同的类型返回结果如下表
toNumber对不同的类型返回结果如下表

toPrimitive对不同类型返回结果如下
toPrimitive对不同类型返回结果如下

function Book(title, pages) {
    this.title = title;
    this.pages = pages;
}
// 类申明函数有两种方法
Book.prototype.printTitle = function () {
    console.log(this.title)
};
function Book(title, pages) {
    this.title = title;
    this.pages = pages;
    this.printTitle = function () {
        console.log(this.title)
    }
}
/**
* 在原型上申明函数,只会创建一次,在所有实例中共享,可以节约内存和降低实例化的开销
* 在类定义中申明函数,每个实例都会创建自己的函数副本
*
* 原型上声明只能声明公共函数和属性
* 类定义中声明可以声明只能在类内部访问的私有函数和属性
*/
  • ES6函数参数默认值
  • 声明展开和剩余参数
  • 数组结构
  • 变量互换
  • 属性简写
  • ES6的类声明方式
function Book(title, pages) {
    this.title = title;
    this.pages = pages;
}
Book.prototype.printTitle = function () {
    console.log(this.title)
};
// ES6语法
class Book {
    constructor(title, pages) {
        this.title = title;
        this.pages = pages;
    }
    printTitle() {
        console.log(this.title)
    };
}
// 继承
class ITBook extends Book {
    constructor(title, pages, technology) {
        super(title, pages);
        this.technology = technology
    }
    printTechnology() {
        console.log(this.technology)
    }
}
// JavaScript的继承是基于原型实现的
// 使用属性存取器(get、set方法)
class Person {
    constructor(name) {
        this._name = name
    }
    get name() {
        return this._name
    }
    set name(value) {
        this._name = value
    }
}
let Json = new Person('Json');
console.log(Json.name);// Json
console.log(Json._name);// Json
Json.name = 'Tom';
console.log(Json.name);// Tom
Json._name = 'Jerry';
console.log(Json.name);// Jerry

wangwang
71 声望7 粉丝