day05

1-js 组成?

  (1)ECMAScript(JavaScript语法 )

  (2)DOM页面文档对象模型

  (3)BOM 浏览器对象模型

 

2-js 中有哪些数据类型?

  Undefined、Null、Boolean、Number、String、Object

 

3-typeof 和 instanceof 的区别

  typeof 是用来区分 undefined, number, boolean, string, function, object 的

  instanceof是用来判断 A 是否为 B 的实例,表达式为:A instanceof B,如果 A 是 B 的实例,则返回 true,否则返回 false。 在这里需要特别注意的是:instanceof 检测的是原型。 

 

4-怎么判断两个对象相等

(1)

  JSON.stringify(obj)==JSON.stringify(obj);//true

 

(2)

  1. 先判断俩者是不是对象
  2. 是对象后俩者长度是否一致
  3. 判断俩个对象的所有key值是否相等相同
  4. 判断俩个对象的相应的key对应的值是否相同
  5. 来一个递归判断里面的对象循环1-4步骤
function diff(obj1,obj2){
        var o1 = obj1 instanceof Object;
        var o2 = obj2 instanceof Object;
        // 判断是不是对象
        if (!o1 || !o2) {
            return obj1 === obj2;
        }
 
        //Object.keys() 返回一个由对象的自身可枚举属性(key值)组成的数组,
        //例如:数组返回下表:let arr = ["a", "b", "c"];console.log(Object.keys(arr))->0,1,2;
        if (Object.keys(obj1).length !== Object.keys(obj2).length) {
            return false;
        }
 
        for (var o in obj1) {
            var t1 = obj1[o] instanceof Object;
            var t2 = obj2[o] instanceof Object;
            if (t1 && t2) {
                return diff(obj1[o], obj2[o]);
            } else if (obj1[o] !== obj2[o]) {
                return false;
            }
        }
        return true;
    }

  

5-js 中函数有哪些定义方式?

函数表达式

格式为 let a= function(){}

函数声明

格式为 let function a(){}

匿名函数

格式为 function(){}

 

6-js 中函数有哪些调用形式?

  (1)以函数形式调用

function fun(){
    alert("hello world");
}
fun();

  (2)函数以对象方法调用

var myObject = {
    firstName:"John",
    lastName: "Doe",
    fullName: function () {
        return this.firstName + " " + this.lastName;
    }
}
myObject.fullName();         // 返回 "John Doe"

  (3)使用构造函数调用函数

// 构造函数:
function myFunction(arg1, arg2) {
    this.firstName = arg1;
    this.lastName  = arg2;
}

// This creates a new object
var x = new myFunction("John","Doe");
x.firstName;                             // 返回 "John"

  (4)使用apply()和call()方法调用

  apply()

function myFunction(a, b) {
    return a * b;
}
myArray = [10,2];
myFunction.apply(myObject, myArray);   // 返回 20

  call()

function myFunction(a, b) {
    return a * b;
}
myFunction.call(myObject, 10, 2);      // 返回 20

  

 

posted @ 2021-01-31 14:27  fenye  阅读(81)  评论(0)    收藏  举报