2. 对象


js内置对象(是基本数据类型的包装类型)

基本数据类型调用方法表面上是矛盾的,但是js底层为我们进行了转换

Boolean

new Boolean();会将 0 -0 null undefined “” false都为false的对象

但是使用时都会当做true使用

Boolean();会将0 -0 NAN null undefined false 都为false本质是类型转换

1
typeof 

Number

Number();

会将不能转换为数字的变量转换为NAN

1
2
var a=5;
console.log(typeof(a));//number

String

索引charAt(index);返回对应字符

查找字符串indexOf(“String”);返回索引

1
2
3
var a="abcdef";
var b=a.substring(0,3);
console.log(typeof b);

new 和不new的区别

new Date();

Date();

一样

new Number();

Number();

不一样

因为会调用toString方法

function是引用类型

call和apply,bind

call就是将函数中的this指针指向call中的第一个参数

apply和call一样,只是第二个参数是一个数组

bind只是单纯的将第一个参数修改为函数的this指针,但不调用,返回一个函数

1
2
3
4
5
function test(){
console.log('阿巴阿巴阿巴');
}
test();//标准调用
test.call();//底层调用方式
1
2
3
4
5
6
7
8
9
function test(){
console.log(this);
console.log(name,age);//打印wangwu和35
}
var obj={name:'lisi',age:23};
test.call(obj,'wangwu',35);//修改this指针
test.apply(obj,['zhangsan',18]);
var fn=test.bind(obj);
fn();

Author: pkq
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint policy. If reproduced, please indicate source pkq !
  TOC