2021-11-15

一、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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,884评论 6 513
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,212评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 167,351评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,412评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,438评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,127评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,714评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,636评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,173评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,264评论 3 339
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,402评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,073评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,763评论 3 332
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,253评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,382评论 1 271
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,749评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,403评论 2 358

推荐阅读更多精彩内容

  • 一、var 、let 、const的区别 var是ES5提出的,let和const是ES6提出的。var不存在块级...
    sun_hl阅读 115评论 0 0
  • 1、// 用js 实现一个无限极累加的函数, 形如: add(1) //=> 1;add(1)(2) //=> 2...
    sun_hl阅读 267评论 0 0
  • 前端经典面试题: 1、(前端面试题)https://zhuanlan.zhihu.com/p/84212558?f...
    who_are_you_阅读 348评论 0 2
  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 31,945评论 2 89
  • 前端面试问题集锦 JavaScript 部分 1、JQuery $(document).ready() 和 win...
    涯无凌阅读 945评论 0 2