JavaScript 常用属性
获取变量的数据类型 -— > 可以使用 typeof 来获取变量的数据类型
数字类型: 数字使用 number 定义,当一个定义的变量没有被赋值的时候跟数字类型的变量相加,得到的是一个NAN类型的
判断当前类型是不是数据类型 使用 isNan判断。
字符串类型:浏览器会帮助我们自动的把字符串类型转换成数字类型,这种方式叫做隐式转换,在相加的时候是不会进行类型转换 的,只会在字符串拼接的时候,会进行数据类型的转换
进行类型的转换:
** 转换成字符串类型:** .toString() 该方法在使用的时候,如果没有定义和为null 的时候,会报错
String(参数): 可以使用该方法,将参数传入,然后进行转换
**转成数字类型:**Number():该方法在转换的时候,如果开头是数字,只会转换开头的数字部分,如果开头的不是数字,则会报错
** int 类型 :** parseInt(): 只能转换数字的数据
** 浮点类型:** parseFloat()
**布尔类型 :** Boolean() 进行数据的判断当前是否为真
Apply和call方法的区别:
javaScript中的每一个function中都会有apply和call两个方法,两个方法唯一不同的是传递的参数不同,都可以改变当前this的指向,如果第一个参数不传,表示的则是window。引用:https://blog.csdn.net/qq_39201210/article/details/82685290
// 场景:当生产车间,需要用到别人的零件,
// 可以用call或apply将别人的函数拿过来为自己所用
// 如这是车座部件
function Sit(h,w){
this.carHeight = h;
this.carWidth = w;
}
// 车颜色
function Color(c){
this.carColor = c;
}
// 车轮
function Wheel(size){
this.size = size;
}
// 这是车间
function Car(name,h,w,c,size){
// 自己的东西
this.name = name;
// 直接拿别人的部件来用
Sit.call(this,h,w);//这里的this,就将原本Sit的this指向改为了Car本身
Wheel.call(this,size);
Color.call(this,c);
}
var car = new Car('我的车',100,100,'绿色','超大');
// 使用apply
function Car2(name,h,w,c,size){
// 自己的东西
this.name = name;
// 直接拿别人的部件来用 apply传参必须是对象的形式 [] {}等
Sit.apply(this,[h,w]);//这里的this,就将原本Sit的this指向改为了Car2本身
Wheel.apply(this,[size]);
Color.apply(this,[c]);
}
var car1 = new Car2('我的车',100,100,'绿色','超大');
如果在调用 apply和call的时候,第一个参数为null,则调用的方法中的this,代表的是window
Bind:
Bind的使用跟上面的apply和call方法的使用是一样的,唯一不同的是bind是复制,将函数复制给变量,然后再进行调用,而apply和call是直接调用。
Var f2 = f1.bind(null.10,20);
在调用的时候需要 : f2(); — 直接变量调用
而apply和call则是方法名称调用,不需要单独的调用
将函数当做参数进行传递:
如果要将函数当做参数进行传递,在传递的时候,直接将函数的名称当做实体进行传递即可,不需要加 **()**
Attr和propd的区别:
两个方法的用途都是一致的,都是用于获取属性的数据,但是在使用的时候,Attr如果获取没有定义的属性,则会返回undifunt,在使用的时候如果获取的属性需要返回false和true的时候,用该方法获取属性则为不妥,所以需要使用到prop的方法进行获取,也就是说如果要操作的属性的Boolean类型的,则用prop方法操作。
沙箱:
沙箱是一个模拟真实环境的虚拟环境,当虚拟环境消失之后,里面的所有的东西都会消失
浅拷贝:
将一个对象中的属性和方法,拷贝到另一个对象的内存中
深拷贝:
将一个对象的属性直接拷贝到当前对象中,为当前对象的属性在内存中开辟一块真实的地址将数据放在内存中,深拷贝基本上是用不到的
还没有评论,来说两句吧...