js中常见的模糊问题

来源:互联网 发布:seo黑帽技术教程 编辑:程序博客网 时间:2024/06/07 02:50
 1 函数随想的call和apply方法
  1)借用别人的对象 
  eg:
  var foo = {
   name:‘鸡’,
   showName:function(n){
       console.log(this.nane);
}
   }
   var bar = {
      name:'鸭'   
}
foo.showName.call(bar);
  这里输出的是鸭, 因为bar的对象借用了foo对象的showName方法,打印了自己的属性值。
 2)用于继承
  面向对象程序设计:子对象获得父对象的公共属性或方法
 call  和 aplly 的区别:
  传递的参数不同,功能完全相同。 call方法穿死的是具体的参数;apply方法传递的是装了参数的数组。
  本质:让指定对象去调用本不属于它的方法;  如果该方法中使用了this,那么this就会改变指向。
2 数据类型转换 分为 强制类型转换和自动类型转换也称显示转换和隐示转换;
 全局对象中提供的类型强制转换方法:
  1)parseInt(); 2)parseFloat();3)Number();4)Strin(); 5)Boolean();
3 Number方法:
  a:基本数据类型转换为数值 
   数值:转换后还是原来的值;字符串:如果可以被解析为数值,则转换为相应的数值,否则得到NaN。 空字符串转换为0 ;布尔值:true转成1  false 转成0;
null:转成0.
  b:引用数据类型转换为数值:
  1)如果是封装类型,就先转为基本数据类型,在转换。
  2)如果不是封装类型,先调用对象的valueOf方法,得到其本身,在调用toString方法得到字符串“[object Object]”,最后调用Number方法,将这个字符串转换为NaN。
4 String()方法:
 1)基本数据类型和特殊值转换为字符串,在两边加引号即可。
 2)引用数据类型转换为字符串:
 a)封装类型
 b)非封装类型:先调用toString(),得到“[object Object]”字符串,再进一步调用valueOf方法,得到字符串本身。
5 Boolea()方法
  除了几个值(undefined,null,+0,-0,NaN,空字符串),其他都转换为true;
6 自动类型转换
  当预期结果为字符串时,系统就会自动将数据转成String;
  当预期结果为数字时,系统就会自动将数据转成Number;
  当预期结果为布尔型时,系统就会自动将数据转成Boolean;
7 对象的定义:无序属性的集合,其属性可以包含基本值、对象或者函数;面向对象编程,首要任务就是创建对象,创建任何对象时,都需要一个模板,该模板表示创建的对象应具备什么样的基本功能和共同属性。在jsES6之前,都没有类的概念。在js中是用构造函数和原型来当模板的。
8 构造函数和普通函数没有什么区别,知识只是调用方式不同:使用new关键字调用函数,这个函数就会被当成构造函数,反之。
9关于this关键字的使用:
1)在构造函数中使用:this表示的是用构造函数创建的对象。
2)在全局中使用:this没有明确的属性值,那么在浏览器环境中它就是window对象的一个属性。
3)在对象的方法中使用:this指向的是当前函数的调用者;
    Tips:在使用this时,this永远都是指向当前函数的调用者。
原创粉丝点击