一段代码让你了解Event-Loop console.log(1); setTimeout(() => { console.log(2); }, 0); new Promise((resolve, reject) => { console.log(3); resolve(); }).then(data => { console.log(4); setTimeout(() => { console.log(5); }, 0); }); 讲解之前先看一段代码,可以先预测一下代码的执行结…
手写bind前我们先回顾一下bind有哪些特性,以便更好的理解bind和实现bind. bind的特性 var obj = { a: 100, say(one, two) { console.log(this.a, one, two); } } var obj2 = { a: 300 } var res = obj.say.bind(obj2, 1, 2); res(); //300 1 2 可以看出: bind是函数的方法,只有函数可以调用 bind的第一个参数是this指向,剩下的参数作为调…
之前对于闭包的理解只是很肤浅的,只是浮于表面,这次深究了一下闭包,下面是我对闭包的理解. 什么是闭包? 引用高程里的话 => 闭包就是有权访问另一个作用域中变量的函数,闭包是由函数以及创建该函数的词法环境组成而成 记住,闭包是一个函数,废话不多说,先来个例子: function makeFunc() { var name = "Mozilla"; function displayName() { alert(name); } return displayName; } var m…
提起原型链,大家并不陌生,但是对于新人来说一提到原型方面的东西就会比较懵.在我自一次面试的时候,面试官也给我提了这样的问题,当时就按照我的理解说了一些,但是很肤浅,在此我希望给刚入门的前端小伙伴聊一下我理解的原型链. ***** __ proto__ 这个属性是每个对象都有的属性,指向创建该对象的构造函数原型,其实这个属性指向了 [[prototype]],但是 [[prototype]] 是内部属性,我们并不能访问到,所以使用 __ proto __ 来访问. function add(){}…
在近期的复习期间遇到null和nudefined,于是通过查找资料,想写一篇文章来说明他们的区别.. javaScript高级程序设计: 在使用var声明变量但未对其加以初始化时,这个变量的值就是undefined.   null值则是表示空对象指针. 下面是我自己的想法 ``` null==undefined   ==>true null===undefined   ==>false var arr;    arr==>undefined null是一个空对象而undefined就是u…
      讲这个方法之前,我们应该先了解下插入节点时浏览器会做什么.         在浏览器中,我们一旦把节点添加到document.body(或者其他节点)中,页面就会更新并反映出这个变化,对于少量的更新,一条条循环插入也会运行很好,也是我们常用的方法.代码如下:     for(var i=0;i<5;i++) { var op = document.createElement("span"); var oText = document.createTextNode(i)…
作为一个初级的前端工程师,在开发的过程中遇到了许多问题,其中使元素垂直居中这个问题难住了我,可能在大家看来这是一个非常小的问题,但是却困扰了我很长时间,于是决定做一个总结!!! 废话不多说,直接上代码,里面有我的思考过程 案例一 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>div实现垂直居中</title&…
Java工程师修炼之路(校招总结) 前言 在下本是跨专业渣考研的985渣硕一枚,经历研究生两年的学习积累,有幸于2019秋季招聘中拿到几个公司的研发岗offer,包括百度,阿里,腾讯,今日头条,网易,华为等. 一路走来也遇到很多困难,也踩了很多坑,同时我自己也探索了很多的学习方法,总结了很多心得体会,并且,我对校园招聘也做了一些研究和相应的准备. 在今年的秋季招聘结束以后,我也决定把这些东西全部都写成文字,做成专题,以便分享给更多未来将要参加校招的同学. 微信公众号[程序员江湖] 作者黄小斜,斜…
1. 原型 / 构造函数 / 实例 原型(prototype): 一个简单的对象,用于实现对象的 属性继承.可以简单的理解成对象的爹.在 Firefox 和 Chrome 中,每个JavaScript对象中都包含一个__proto__ (非标准)的属性指向它爹(该对象的原型),可obj.__proto__进行访问. 构造函数: 可以通过new来 新建一个对象 的函数. 实例: 通过构造函数和new创建出来的对象,便是实例. 实例通过__proto__指向原型,通过constructor指向构造函…
js运行机制 本章了解一下js的运行原理,了解了js的运行原理才能写出更优美的代码,提高运行效率,还能解决开发中遇到的不理解的问题. 进程与线程 进程是cpu资源分配的最小单位,进程可以包含多个线程. 浏览器就是多进程的,每打开的一个浏览器窗口就是一个进程. 线程是cpu调度的最小单位,同一进程下的各个线程之间共享程序的内存空间. 可以把进程看做一个仓库,线程是可以运输的货车,每个仓库有属于自己的多辆货车为仓库服务(运货),每个仓库可以同时由多辆车同时拉货,但是每辆车同一时间只能干一件事,就是运…