this关键字
1、在全局作用域中都是指向window对象
2、函数作用域中 ,this指向取决于函数是如何被调用的,
2.1直接调用函数,this的指向为 为window
2.2通过new 一个对象的方法 调用 this指向 这个对象
注意:this不能被赋值,this的指向 取决于被谁调用
在定时器中的this固定指向 window
构造函数
普通的函数通过来获得的、构造函数
1、构造函数通过new创建对象
new的方式 ,将函数赋值给变量在调用变量
构造函数内部会自动创建一个新的空对象
this指向新对象并且自动返回这个对象,所有的对象都是通过构造函数创建的
构造函数的返回值:
如果构造函数中手动书写了返回值 且属于基本数据类型,则直接会被返回值忽略
如果是一个引用型数据类型 这回直接返回书写的返回值
new.target 用于函数是使用new 调用 ,返回为函数体,如果不是则返回undefined
构造函数又称为构造器
函数的本质是对象
所有的对象都可以通过new 函数来创建
所有的函数都可以通过 new Function 创建
注意:Function 在浏览器远行是js引擎中自动保存了Function
包装类:
原始数据类型是不能有属性和方法的,表示js为了增强基本数据类型的功能 ,在语法上,将数据类型当对象使用时,会在该位置利用对象的构造函数创建对象 来访问原始类型的属性
其中有 Number String Boolean
Object构造函数
实例成员(实例属性,方法 )表示该属性,方法,通过构造函数创建的对象去访问
静态成员(类属性,方法)表示该属性,方法通过构造函数直接调用
object中的静态方法
{
keys:得到对象的属性名,组成的数组
values:得到对象的属性值,组成的数组
entries:得到对象属性名和属性值形成的二维数组
}
实例对象
{
对象.toString()每一个构造函数中都重写了toString 返回一个相对这个对象的字符串
对象.valueOf()默认情况下返回自己本身
}
js中当自动进行类型转换时,如果是一个对象进行转换,实际上是先将对象调用valueOf(),返回对象的原始值,在调用返回值的toString,如果对象中没有toString方法,再去原型中寻找toString 转换后的进行运算,
如果调用valueof 的返回值 为基本数据类型则,不会在调用toString()方法
Function 构造函数
实例属性: 属性 length 表示函数对象中形参的个数
静态属性:arguments 获取函数调用是,传递的所有参数,所有的函数都具有Function中的实例成员
映射关系:arguments中存在的函数调用中传递的实参 有值才有映射
实例成员
{
apply:执行函数a,将函数a中的this指向b
call: 执行函数a ,需要用时:将函数a中的this指向 b
}
bind :返回一个新函数,该函数a中的this 始终指向b
1、相同点:
三个函数都会改变this的指向(调用这三个函数的函数内部的this)
2、不同点:
1)、bind会产生新的函数,(把对象和函数绑定死后,产生新的函数)
2)、call和apply不会产生新的函数,只是在调用时,绑定一下而已。
3)、call和apply的区别,第一个参数都是要绑定的this,apply第二个参数是数组(是函数的所有参数),call把apply的第二个参数单列出来。
原始类型构造函数
Numder
静态方法
{
isNaN判断是否不是一个数
isFinitie:判断是否有限的
parseFloat 将一个字符串类型的数据转换为浮点数
parseInt 将一个字符串转化为整数
要求第一个参数为字符串 如果不是字符串 则会自动转换为字符串
从字符串的开始位置 进行查询,找到有效的数字进行转换,如果碰到没有有效的数字 直接NaN,如果碰到了非有效数字转换 左右空白直接忽略
parseInt 第二个参数 表示给字符串识别多少进制
静态成员:fromcharCode() 通过uniocode编码创建字符串 返回字符串
实例成员
length
iscludes() 查询字符串中是否存在某个字符串,返回true / false
bendswith() 判断字符串是否以指定的字符结尾
startswith() 判断字符串是否以指定的字符串,填充到指定的长度
padStart() 以指定的字符串填充到指定的长度 填充尾部
padEnd() 以指定的字符串填充到指定的长度 填充到头部
repeat() 构造一个新的字符串 参数为count 0-100之间
}