从零开始的前端筑基之旅(面试必备,持续更新~)

最近忽然有些不安,不少东西看过是看过,可是终归不属于本身,过一阵子也就忘了。前阵子面试了几我的,发现对于不少知识点,都只是看过、听过、大概能说几句。想了一段时间,决定总结出本身的东西整理的结果是很欣慰的,发现了不少以为本身知道但其实真的不知道的知识点。javascript

本文是先整理出js的基础知识,面向初学者和即将面试的人群,我但愿给大家的是鱼竿,能够拿来钓各类面试官,固然,这须要我再努力一把,给出好鱼竿。css

若是你收获了新的知识,欢迎点赞关注评论,这是对做者最大的鼓励~html

前端路漫漫,与诸君共勉!前端

目录(就是目录):java

以 标题+摘要 的方式罗列,具体内容点击标题查看面试

代码规范

论如何优雅的写出不会挨揍的代码

写代码,必定要有良好的编程习惯。若是实在写很差怎么办呢编程

  1. No Code数组

    No code is the best way to write secure and reliable applications. Write nothing; deploy nowhere.浏览器

  2. 谢同事不杀之恩,平时多投喂些零食。网络

html

谈谈html 语义化

语义元素能够清楚地向浏览器和开发者描述其意义。即元素自己传达了关于标签所包含内容类型的一些信息。

为何要语义化?

  1. 页面结构: 使页面没有css的状况下,也可以呈现出很好的内容结构
  2. 有利于SEO: 爬虫依赖标签来肯定关键字的权重,所以能够帮助爬虫抓取更多的有效信息
  3. 提高用户体验: 例如title、alt能够用于解释名称或者解释图片信息,以及label标签的灵活运用。
  4. 便于团队开发和维护: 语义化使得代码更具备可读性,让其余开发人员更加理解你的html结构,减小差别化。
  5. 方便其余设备解析: 如屏幕阅读器、盲人阅读器、移动设备等,以有意义的方式来渲染网页。

js基础

朝花夕拾,从新介绍javascript类型

任何编程语言都不可缺乏的组成部分——“类型”。avaScript 是一种弱类型或者说动态语言。这意味着你不用提早声明变量的类型,在程序运行过程当中,类型会被自动肯定。

提问:0.1 + 0.2 === 0.3的结果是什么?那0.1 + 0.3 === 0.4的结果呢?

初学者不容错过的双等(==)小知识

提问: 1 === true的结果是什么? 那么 2 === true 的结果呢?

Clone:你真的知道深浅么?

数据分为基本数据类型(String, Number, Boolean, Null, Undefined,Symbol)和对象数据类型。

一、基本数据类型的特色:直接存储在栈(stack)中的数据

二、引用数据类型的特色:存储的是该对象在栈中引用,真实的数据存放在堆内存里
en。。。上面这两句严格来讲,是错的

朝花夕拾,从新介绍继承与原型链

只有对象类型才有继承与原型概念,不断向上追溯的原型共同组成了原型链

看完就能搞懂的this指向及箭头函数的讲解~

与其余语言相比,函数的 this 关键字在 JavaScript 中的表现略有不一样。this指当前执行代码的环境对象,函数的调用方式决定了this的值。

apply、call、bind的区别与精简实现

  • apply() 方法接收一个指定的this值和一个包含多个参数的数组来调用一个函数。
  • call() 方法接收一个指定的 this 值和一个参数列表来调用一个函数。
  • bind() 方法建立一个新的函数,在 bind() 被调用时,这个新函数的 this 被指定为 bind() 的第一个参数,而其他参数将做为新函数的参数,供调用时使用

使用 callapply 函数的时候要注意,若是传递给 this 的值不是一个对象...

让人恍然大悟的词法做用域及做用域链讲解

做用域是指程序源代码中定义变量的区域。做用域规定了如何查找变量,也就是肯定当前执行代码对变量的访问权限。

JavaScript 采用词法做用域(lexical scoping),也就是静态做用域。代码一旦写好,不用执行, 做用范围就已经肯定好了,这个就是所谓的词法做用域。

简单介绍的执行上下文和执行栈

执行上下文是评估和执行 JavaScript 代码的环境的抽象概念。Javascript 代码都是在执行上下文中运行。

执行栈,是一种拥有 LIFO(后进先出)数据结构的栈,被用来存储代码运行时建立的全部执行上下文。

JavaScript 的可执行代码(executable code)的类型只有三种,全局代码、函数代码、eval代码。对应着,JavaScript 中有三种执行上下文类型。

你可能不知道的变量提高

实际上, let / const 也存在变量提高

五百字的闭包详解与一千字的使用场景

  • 闭包就是内部函数,咱们能够经过在一个函数内部或者 {} 块里面定义一个函数来建立闭包。闭包能够访问外部做用域,即便这个外部做用域已经执行结束。
  • 闭包在没有被外部使用的状况下,随执行结束销毁
  • 闭包的外部做用域是在其定义的时候已决定,而不是执行的时候。

看完必须dei懂的事件循环/event loop讲解

javascript是一门单线程语言,在最新的HTML5中提出了Web-Worker,但javascript是单线程这一核心仍未改变,无论谁写的代码,都得一句一句的来执行。 事件循环,能够理解为实现异步的一种方式,用来协调用户交互,脚本,渲染,网络这些不一样的任务。

懒人整理的js函数式编程讲解

  • 函数式编程是一种编程范型,它将电脑运算视为数学上的函数计算,而且避免使用程序状态以及易变对象。
  • 函数式编程更增强调程序执行的结果而非执行的过程,倡导利用若干简单的执行单元让计算结果不断渐进,逐层推导复杂的运算,而不是设计一个复杂的执行过程。
  • 函数式编程的思惟过程是彻底不一样的,它的着眼点是函数,而不是过程,它强调的是如何经过函数的组合变换去解决问题,而不是我经过写什么样的语句去解决问题

前端领域,咱们能看到不少函数式编程的影子:ES6 中加入了箭头函数,Redux 引入 Elm 思路下降 Flux 的复杂性,React16.6 开始推出 React.memo(),使得 pure functional components 成为可能,16.8 开始主推 Hook,建议使用 pure function 进行组件编写……

能够不会用但你必需要了解的Web Worker详解

Web Worker (工做线程) 是 HTML5 中提出的概念,它让咱们能够在页面运行的 JavaScript 主线程中加载运行另外单独的一个或者多个 JavaScript 线程;

Web Worker 提供的多线程编程能力与们传统意义上的多线程编程(Java、C++ 等)不一样,主程序线程和 Worker 线程之间,Worker 线程之间,不会共享任何做用域或资源,它们间惟一的通讯方式就是一个基于事件监听机制的 message。

未完待续

后续还会花费一到两周陆续补充一些js基础知识,而后就会写css部分,
若是能够,请尽可能收藏关注,这是对个人最大承认。能力有限,若是你有好的知识点或者不一样的意见,欢迎在下方评论,我会及时跟进。

相关文章
相关标签/搜索