标准库(标准API)

标准库(标准API)

  • 库:liberary
  • API:应用程序编程接口,Application Programing Interface
  • 标准:ECMAScript标准

Object

静态成员

  • keys(某个对象),得到某个对象的所有属性名数组
var obj = {
            x: 123,
            y: "Asdfaf",
            z: true
        };
        // var obj1 = [234, 65, 2, 2, 3444, 111];
		// var arr1 = Object.entries(obj);
		// arr1=[]0,1,2,3,4,5];
        var arr = Object.entries(obj); 
        arr=["x","y","z"];
  • values(某个对象),得到某个对象的所有属性值数组
var obj = {
            x: 123,
            y: "Asdfaf",
            z: true
        };
        var arr = Object.values(obj); 
        arr=[123,"Asdfaf",true];
  • entries(某个对象),得到某个对象的所有属性名和属性值的数组
var obj = {
            x: 123,
            y: "Asdfaf",
            z: true
        };
        var arr = Object.values(obj); 
        arr=[["x",123],["y","Asdfaf"],["z",true];

实例成员

实例成员可以被重写

obj.toString = function(){
 	return this.x +,+ this.y;
	}

所有对象,都拥有Object的所有实例成员

  • toString方法:得到某个对象的字符串格式
var obj={
	x=1234,
	y="asdf"
	};
	console.log(obj.toString());//[object object]
	

默认情况下,该方法返回"[object Object]";

  • valueOf方法:得到某个对象的值

默认情况下,返回该对象本身

在JS中,当自动的进行类型转换时,如果要对一个对象进行转换,实际上是先调用对象的valueOf方法,然后调用返回结果的toString方法,将得到的结果进行进一步转换。

var obj={
	x:13,
	y:2323
	}
	(obj+1);-->(obj.valueOf().toString()+1);

Function

所有函数都具有Function中的实例成员

语法:arguments:在函数中使用,获取该函数调用时,传递的所有参数

arguments是一个类数组(也称为伪数组:没有通过Array构造函数创建的类似于数组结构的对象),伪数组会缺少大量的数组实例方法

arguments数组中的值,会与对应的形参映射

实例成员

  • length属性,得到函数形参数量
  • apply方法:调用函数,同时指定函数中的this指向,参数以数组传递
  • call方法:调用函数,同时指定函数中的this指向,参数以列表传递
function sayHello(a, b) {
            console.log(this.name, this.age);
            console.log(a, b);
        }

        var user1 = {
            name: "asfd",
            age: 123
        };

        var user2 = {
            name: "546345",
            age: 11
        };
        sayHello.apply(user1, [1, 2]);//"asfd",123
        sayHello.call(user2, 1, 2);//"546345",11
        call和apply的区别是传参方法不同
  • bind方法:得到一个新函数,该函数中的this始终指向指定的值。
//绑定this指向,适用于该函数需要多次调用的情况
function sayHello(a, b) {
            console.log(this.name, this.age);
            console.log(a, b);
        }

        var user1 = {
            name: "asfd",
            age: 123
        };

        var user2 = {
            name: "546345",
            age: 11
        };
        var newFunc = sayHello.bind(user1, 1, 2);
        newFunc();
        newFunc();
        newFunc();
        newFunc();
        newFunc();
        newFunc();
        newFunc();

通常,可以利用apply、call方法,将某个伪数组转换伪真数组。

function test() {
            console.log(arguments);
            //将arguments转换为真数组
            var newArr = [].slice.call(arguments)
            console.log(newArr);
        }
		//配合slice方法,返回一个真数组
        test(23, 5, 6, 2, 233, 5, 6, 7);

你可能感兴趣的:(标准库(标准API))