JavaScript的节点学习-1

视频

  1. new一个对象的过程–【口诀:心跳定直返】
  1. 首先创建一个新对象son,例如:var son = new Mother(”Da“);
  2. 新对象调用__proto__属性指向原型,即Mother.prototype
  3. 将新对象与函数调用的this绑定起来
  4. 执行构造函数中代码
  5. 如果函数没有返回值,就会返回这个新对象
  1. 如何准确判断一个变量是数组类型

使用instanceof来判断

  1. this关键字
  1. 默认绑定,调用的位置是全局,且声明中没有定义变量,则会默认声明中的this指全局的window
  2. 隐式绑定,声明中明确指出定义变量var aa,则this指该变量对象。如果调用的方法在全局,但this不能看全局。this.后面的东西要看调用变量下有没有,而this关注有没有var一下
  3. 硬绑定,声明A中指出了定义变量name和方法sayName,但与此同时,还有一个声明B也定义变量name,如果A调用sayName方法的时候写成A.sayName.call(B)或A.sayName.apply(B)时,this将指B中的name,而非A中的name
  4. 构造函数绑定,在3的基础上,如果将A通过new实例化后,便后面调用A时this永远指的是A中的name

4.执行上下文

  1. 分为创建阶段和执行阶段
  2. 创建阶段需要关注的是作用域链(当前的变量对象和所有父集变量对象),变量对象(参数,变量,函数声明),this
  3. 执行阶段需要关注的是变量赋值,函数引用等。

5.闭包

  1. 匿名函数可以访问到外部变量
  2. 由于JavaScript是单线程的,所以出现了任务队列的机制。如果用到了setTimeOut,即使间隔时间写为0,也会先将setTimeOut中的代码块由浏览器先处理,将处理结果放到任务队列。等到执行栈完成后才会执行任务队列

6.块级作用域

  1. 这是JavaScript的一个大坑,一般来说,大括号括起来的代码是封闭的,当执行完后,里边的变量会被释放。但在JavaScript里if执行完后,if里面的变量会变成当前执行的变量,if中的变量成为全局变量。
  2. 对于for 和 while 和if是一样的
  3. 在JavaScript中定义变量无论写在哪都会默认到第一行,但是赋值不会
  4. 函数和变量定义一样,也会被提升,但是函数会优先于变量提升
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值