JavaScript知识点小记(牛客网编程)

文章目录

      • 1.parseInt(string,radix)
      • 2.== 和 ===的区别
      • 3.applay()和call()
      • 4.什么是web worker

1.parseInt(string,radix)

radix:可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间。如果省略该参数或其值为 0,则数字将以 10 为基础来解析。如果它以 “0x” 或 “0X” 开头,将以 16 为基数。如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN。

2.== 和 ===的区别

一般使用双等来判断( == ),如果还需要类型相同那么就用三等( === )。说一下这两个的区别:== equality 等同,=== identity 恒等。==, 两边值类型不同的时候,要先进行类型转换,再比较。 ==,不做类型转换,类型不同的一定不等。 下面分别说明: 先说 === ,这个比较简单。下面的规则用来判断两个值是否 === 相等: 1、如果类型不同,就[不相等] 2、如果两个都是数值,并且是同一个值,那么[相等]。3、如果两个都是字符串,每个位置的字符都一样,那么[相等];否则[不相等]。 4、如果两个值都是true,或者都是false,那么[相等]。 5、如果两个值都引用同一个对象或函数,那么[相等];否则[不相等]。 6、如果两个值都是null,或者都是undefined,那么[相等]。 再说 == ,根据以下规则:
1、如果两个值类型相同,进行 === 比较。
2、如果两个值类型不同,他们可能相等。根据下面规则进行类型转换再比较:

  • a、如果一个是null、一个是undefined,那么[相等]。
  • b、如果一个是字符串,一个是数值,把字符串转换成数值再进行比较。
  • c、如果任一值是 true,把它转换成 1 再比较;如果任一值是 false,把它转换成 0 再比较。
  • d、任何其他组合,都[不相等]。

3.applay()和call()

call和apply都是为了改变某个函数运行时的content即上下文而存在的,换句话说,就是为了改变函数体内部this的指向。call和apply二者的作用完全一样,只是接受参数的方式不太一样。1)applyFunction.apply(obj,args)方法能接受两个参数:a.obj:这个对象将代替Function类里this对象b.args:这个是数组或类数组,apply方法把这个集合中的元素作为参数传递给被调用的函数(数组)。2)callcall方法与apply方法的第一个参数是一样的,只不过第二个参数是一个参数列表(需要将传递给函数的参数明确写出来,是多少参数就需要写多少参数)。在非严格模式下当我们第一个参数传递为null或undefined时,函数体内的this会指向默认的宿主对象,在浏览器中则是window。
例子:

//此时foo中的logName方法将被bar引用 ,this指向了bar
var foo = {
  name:"mingming",
  logName:function(){
    console.log(this.name);
  }
}
var bar={
  name:"xiaowang"
};
foo.logName.call(bar);//xiaowang

//实现继承
function Animal(name){   
  this.name = name;   
  this.showName = function(){   
    console.log(this.name);   
  }   
}   
 
function Cat(name){  
  Animal.call(this, name);  
}   
 
var cat = new Cat("Black Cat");   
cat.showName(); //Black Cat

4.什么是web worker

简单点说,Web Worker就是一个运行在后台的JavaScript线程,不会影响页面的响应。
当在HTML页面中执行脚本时,页面的状态是不可响应的,直到脚本已完成。web worker 是运行在后台的JavaScript,独立于其他脚本,不会影响页面的性能。我们可以继续做任何愿意做的事情:点击,选取内容等,而此时web worker在后台运行。

你可能感兴趣的:(JavaScript)