JavaScript知识点

1、白屏时间first paint和可交互时间dom ready的关系是?

先触发first paint ,后触发dom ready

2、在setTimeout()定时器中,this指向Window对象;

通过new Star()来调用Star函数,由于使用new绑定,Star函数内部的this指向new创建的实例,而非Window对象;

箭头函数不会与this进行绑定,其this指向取决于该箭头函数同级作用域的this指向,又由于对象不能形成自己的作用域,因此其作用域为全局作用域,this指向Window对象;

立即执行函数的this指向Window对象。

在不手动改变this指向的前提下,this总是指向函数的直接调用对象
如果有new关键字,this指向new出来的那个对象

3、

1)函数(或构造函数)身上才有 prototype (prototype名字叫原型,原型是一个对象);

2)而其他任何通过构造函数实例化出来的对象(不包括null、undefined)身上都有 __proto__(__proto__是隐式原型,隐式原型也一个对象)

3)实例化对象的__proto__ 就是 构造函数的 prototype (===关系)

附:undefind 和 null 既没有prototype也没有 __proto__ ,因为它俩不是函数,也不是函数实例化出来的对象

4、typeof

8、call()方法和apply()方法的作用相同,他们的区别在于接收参数的方式不同。对于call(),第一个参数是this值没有变化,变化的是其余参数都直接传递给函数。(在使用call()方法时,传递给函数的参数必须逐个列举出来。使用apply()时,传递给函数的是参数数组)如下代码做出解释:

 function add(c, d){
return this.a + this.b + c + d;
}
var o = {a:1, b:3};
add.call(o, 5, 7); // 1 + 3 + 5 + 7 = 16
add.apply(o, [10, 20]); // 1 + 3 + 10 + 20 = 34

 9、

Symbol 本质上是一种唯一标识符,可用作对象的唯一属性名,这样其他人就不会改写或覆盖你设置的属性值。

注意事项

  1. Symbol值不能与其他类型的值进行运算
  2. Symbol 值不可以和其他类型值进行混合运算,否则会报错
  3. Symbol 值如果想要作为属性名,那就不能再用点运算符,因为点运算符后面跟的总是字符串
  4. 在对象内部使用Symbol 值作为属性名的时候,必须要将值放在方括号中

10、对于正则表达式 /(l)\1/g,其中(l)是第一个分组,\1指向第一个分组,即\1重复了第一个分组的内容,所以该正则表达式可以表示成/(ll)/g

而对于第二个参数$1,表示用第一个分组的内容 l 对匹配到的部分进行替换(即 ll 替换成 l ),同时正则表达式有g表示全局匹配,所以4个ll被替换成2个ll。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值