美文网首页
2021-11-15

2021-11-15

作者: sun_hl | 来源:发表于2021-12-28 15:20 被阅读0次

一、JavaScript Map 和 Object 的区别(https://www.cnblogs.com/ysx215/p/11387938.html)

1、Key filed

在 Object 中, key 必须是简单数据类型(整数,字符串或者是 symbol),而在 Map 中则可以是 JavaScript 支持的所有数据类型,也就是说可以用一个 Object 来当做一个Map元素的 key。

2、元素顺序

Map 元素的顺序遵循插入的顺序,而 Object 的则没有这一特性。

3、继承

Map 继承自 Object 对象。
二、# 手写事件总线 EventBus
三、面试题

第一题:

图片1.png

结果为:1,3,2

第二题:

图片2.png

调用fun(2,3,4)
结果为:[[Array(4),Array(4), Array(4)],[Array(4),Array(4),Array(4)]]

第三题:

function Foo() {
    getName = function () { alert (1); };
    return this;
}
Foo.getName = function () { alert (2);};
Foo.prototype.getName = function () { alert (3);};
var getName = function () { alert (4);};
function getName() { alert (5);}
Foo.getName(); // 2
getName(); // 4
Foo().getName();  // 1
getName(); // 1
new Foo.getName();// 2
new Foo().getName(); // 3
new new Foo().getName();// 3

var a=0,b=0;
function A(a){
A = function(b){
    alert(a+b++);
}
alert(a++);
}
A(1); // 1
A(2);// 4

第四题

// [{a:1, b:1, c:4}, {a:2, b:1, c:4}, {a:3, b:1, c:4}]
        var obj = {a:[1,2,3], b:1, c:4};
        function test(obj, key) {
            const {[key]: arr, ...rest} = obj;
            const result = [];
            for(let i in arr) {
                result.push({[key]: arr[i], ...rest});
            }
            console.log(result);
            return result;
        }
        test(obj, 'a');

程序题

var a = {};
var b = {key: "123"};
var c = {key: "456"};
a[b] = "b";
a[c] = "c";
console.log(a[b]); // 'b'
console.log(a);
console.log(Object.keys(a));// ["b"]
var a = {};
var b = Symbol('123');
var c = Symbol('123');
a[b] = "b";
a[c] = "c";
console.log(a[b]);
console.log(Object.keys(a));

var num = 4;
function fn() {
  console.log(num);
  console.log(this.num);
  var num = num - 1;
  console.log(num);
  this.num = this.num--;
  console.log(this.num);
}

fn();// undefined 4 3 3
function fn() {};
let o = new fn();

o.__proto__ === fn.prototype ;
o.__proto__.__proto__ === Object.prototype;
fn.__proto__ === Function.prototype;
fn.__proto__.__proto__ === Object.prototype;

Function.__proto__ === Function.prototype;
Object.__proto__ === Function.prototype;

function myNew() {
    let obj = {};
    obj.__proto__ = myNew.prototype;
    let result = myNew.apply(obj,args);
    return typeof result === object ? result : obj;
}
/* 2. */
var num = 4;
function fn() {
  console.log(num);
  console.log(this.num);
  var num = num - 1;
  console.log(num);
  this.num = this.num--;
  console.log(this.num);
}

fn();

/* 非严格模式 */
undefined 4 3 3
/* 严格模式 */
第一次 console.log(num) 报错


/* 5. */
async function async1() {
  console.log('1');
  await async2();
  console.log('2');
}
async function async2() {
  console.log('3');
}
console.log('4');
setTimeout(function() {
  console.log('5');
  Promise.resolve().then(function() {
    console.log('6');
  });
}, 0);
setTimeout(function() {
  console.log('7');
  Promise.resolve().then(function() {
    console.log('8');
  });
}, 0);
async1();
new Promise(function(resolve) {
  console.log('9');
  resolve();
}).then(function() {
  console.log('10');
});
console.log('11');
// 4 1 3 9 11 2 10 5 6 7 8

相关文章

  • 生来庸目,难装星河。 南雁先生2021-11-15

  • 老婆的新手机

    2021-11-15 晴 周一 “猪爸,快帮我去取快递,我的手机到了!” 昨晚,老婆正在做饭,接到了...

  • 2021-11-14帕尔梅拉斯连战连捷,主场不弱的弗鲁米嫩塞,能

    周日006世欧预:西班牙VS瑞典 比赛时间:2021-11-15 03:45 西班牙:西班牙上轮1-0小胜希腊,由...

  • 2021-11-21 思考成长周复盘

    一 时间 2021-11-15 ~ 2021-11-21 二 围绕精力提升所做的事情 五点早起 简书日更写作 运动...

  • 《金吾生〈正蒙〉日记495.2021-11-15》

    《金吾生〈正蒙〉日记495.2021-11-15》 今天是辛丑己亥丁卯,十月十一,2021-11-15星期一。 【...

  • 2021-11-15

    幸福日记326 2021-11-15 周一 昨日作息:7:00-23:10 有记录就有进步 今天又15号了 停下来...

  • 约练四

    郭芳艳坚持原创分享第1302天 2021-11-15 11.15-11.22 第一次 角色: 咨询师 约练感悟: ...

  • 2021-11-15周一

    2021-11-15 每日复盘 过完周末,周一早上总是起不来,老觉得睡不够。起来后,煮个粥,蒸鸡蛋,洗漱,护肤,换...

  • 可怜天下父母心

    2021-11-15 周一 晴 今天周一,天气晴朗,气温回升到20度。昨晚访客不断,导致我今天困得很。下午实在熬...

  • 亲子日记第89篇

    2021-11-15晴 今天孩子照常上学,我比较忙碌,要照顾老人还要接送孩子们,有时会有疲惫,会不安,会迷茫,感觉...

网友评论

      本文标题:2021-11-15

      本文链接:https://www.haomeiwen.com/subject/qvjqtrtx.html