Javascript学习笔记

106 阅读2分钟

1.javascript类型

js分为基本类型和引用类型。

基本类型:number,string,boolean,null,undifined,symbol

symbol类型:symbol是ES6标准新添加的类型,主要为了解决对象的属性名独一无二的问题。symbol变量的生成方法:symbol函数

let s = Symbol();

typeof s
// "symbol"

2.javascript构造函数,原型链

1)什么是构造函数:在 JavaScript 中,用 new 关键字来调用的函数,称为构造函数 一下是一个构造函数:

function Person(name, gender, hobby) {
    this.name = name;
    this.gender = gender;
    this.hobby = hobby;
    this.age = 6;
}

也就是说,当一个函数创建好以后,我们并不知道它是不是构造函数,即使像上面的例子一样,函数名为大写,我们也不能确定。只有当一个函数以 new 关键字来调用的时候,我们才能说它是一个构造函数,如下所示:

var p1 = new Person('zs','male','basketball');

2)构造函数的prototype属性: 每一个构造函数都有一个prototype属性,可以向这个构造函数的原型中添加属性,也就是说在prototype中添加的属性,再所有实例中都可以查询到:

Person.prototype.salary= null;

3)proto

这是每一个 JavaScript 对象(除了 null)都具有的一个属性,叫proto,这个属性会指向该对象的原型。

function Person() {}
var person1 = new Person()
console.log(person1.__proto__ === Person.prototype) // true

4)原型链

实例与原型 当读取实例的属性时,如果找不到,就会查找与对象关联的原型中的属性,如果还查不到,就去找原型的原型,一直找到最顶层为止。

5)Object.create() 语法:Object.create(proto, [propertiesObject]) 方法创建一个新对象,使用现有的对象来提供新创建的对象的 proto。

new Object() 通过构造函数来创建对象, 添加的属性是在自身实例下。 Object.create() es6 创建对象的另一种方式,可以理解为继承一个对象, 添加的属性是在原型下。

3.javascript作用域

js中内层可以访问外层的作用域。