js基础知识

关于this的理解:

1.JS中的this表示对当前对象的一个引用,this 表示该方法所属的对象,也就是说this=A
2.单独使用或在函数中使用this代表的是全局对象,可以理解为window,但在严格模式下,this 是未定义的(undefined)
3.在事件中,this 表示接收事件的元素。如在 HTML 事件句柄中,this 指向了接收事件的 HTML 元素:

4.显式函数绑定,apply 和 call 允许切换函数执行的上下文环境(context),即 this 绑定的对象,可以将 this 引用到任何对象。
如:this 将指向 person2, 即便它是 person1 的方法
person1.fullName.call(person2);

关于var let 和 const的使用(首先要理解全局和局部作用域)
第一点详见:菜鸟教程之JavaScript let 和 const

1.const在值为常量的情况下使用,一旦声明,常量的值就不能改变。const 定义的对象或者数组,其实是可变的,但是不能对他在重新赋值。const声明的常量必须初始化,而let声明的变量不用。
2.let只在块级作用域生效,只在 let 命令所在的代码块内有效
在相同的作用域或块级作用域中,let关键字声明的变量不允许被let或者var再次声明修改
3.var 关键字声明的变量在任何地方都可以修改
4.var的变量提升,可以先使用再声明,但let不行

函数

1.函数的定义: func funcname(){函数体}  
构造函数
Function
箭头函数
(参数1, 参数2, …, 参数N) => { 函数声明 }

(参数1, 参数2, …, 参数N) => 表达式(单一)
// 相当于:(参数1, 参数2, …, 参数N) =>{ return 表达式; }
2.函数的显式参数(Parameters)与隐式参数(Arguments)

js高级教程
prototype 继承
所有的 JavaScript 对象都会从一个 prototype(原型对象)中继承属性和方法

  • 不能直接在已创建的对象上使用 object.attr = ''添加新的属性
  • 但是有的时候我们想要在所有已经存在的对象添加新的属性或方法。另外,有时候我们想要在对象的构造函数中添加属性或方法。
  • 使用 prototype 属性就可以给对象的构造函数添加新的属性,如下:

你可能感兴趣的:(js基础知识)