变量声明和作用域
摘要:变量声明 声明方式 显式声明:用命令声明一个变量,比如(var,let,const) 隐式声明:不用命令声明 var a = 1 //显式声明 b=1 //隐式声明 console.log('jjjj',a,b) //jjjj 1 1 两者的区别 1.隐式声明不需要用命令 2:显式声明可以不赋值,隐
阅读全文
posted @
2021-09-27 17:37
Shyno
阅读(100)
推荐(0) 编辑
变量提升和块级作用域
摘要:变量提升 变量提升是一种现象,即"js是从上往下执行的"和实际结果有所出入. console.log('b',b) var b =1 //undefined 这里有两个问题. 1.未声明的变量为啥能使用. 2.为啥补声明的变量值为undefined 首先,我们要明白"var b = 1",实际上是好
阅读全文
posted @
2021-09-27 17:37
Shyno
阅读(159)
推荐(0) 编辑
前端浅谈--同步与异步
摘要:什么是同步? 在单线程的情况下,从上往下按顺序执行就是同步. 什么是异步? 通俗点解释很简单:不是同步的就是异步.也就是说他不是按顺序执行的. 那如何更深刻得去理解. 1)浏览器的渲染进程中JS解析线程就一个,所有的js代码都是他进行解析. 2)浏览器的渲染进程是有多个子线程的.这个我在<前端浅谈-
阅读全文
posted @
2021-09-24 18:41
Shyno
阅读(1671)
推荐(0) 编辑
前端浅谈---同源策略与跨域
摘要:同源策略 首先明确一点,同源策略是浏览器的策略.其目的是防止非同源页面胡搞,非同源资源互取. 1.谁和谁同源 当前页面的url和iframe嵌套的页面url 当前页面的url和向服务器发送的url,主要是针对XMLHttpRquest发送的请求 2.怎样算是同源 https://i.cnblogs.
阅读全文
posted @
2021-09-23 17:50
Shyno
阅读(256)
推荐(0) 编辑
前端浅谈-协议相关(http/https)
摘要:当DNS工作完之后得到了一个网址 https//192.168.1.255/index.html 这个并不符合标准的请求路径.接下来就是https的功能了.讲https前先讲讲它的前身http协议 HTTP协议 http协议是超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP
阅读全文
posted @
2021-09-18 17:07
Shyno
阅读(297)
推荐(0) 编辑
前端浅谈---协议相关(TCP连接)
摘要:TCP连接 http的描述里面,我弱化了交互过程的描述,因为它相对复杂.所以我在此单独描述.客户端和服务端传递数据时过程相对谨慎和复杂,主要是开始和结束的过程.而这整个过程就是TCP连接.连接流程大体包括: 三次握手 握手是见面时建立信任的过程.其主要目的是确认彼此的身份和明确是确认有需求而不是来找
阅读全文
posted @
2021-09-18 17:01
Shyno
阅读(380)
推荐(0) 编辑
前端浅谈-协议相关(DNS协议)
摘要:从应用层到实体层的协议太多了,我们并不能一一涉及,目前来说就打算整理可能会与前端相关的协议. 前端面试常会问到一个问题-"从输入一个url到页面渲染经历了哪些过程".这其实是一个相当复杂的过程,所以总结的时候常常是归纳了几个重要的步骤.而这次我将尝试通过结合协议的方式去理解它们. URL组成 首先,
阅读全文
posted @
2021-09-17 15:55
Shyno
阅读(190)
推荐(0) 编辑
前端浅谈-路由跳转
摘要:页面请求 当我们在浏览器地址栏输入url时,web会向服务端发送请求,请求相关的资源.所以,一般情况下,当我们的url发生变化时.页面会重新向服务端发送请求. 前端路由 前端路由是有单页面模式的开发情况下衍出来的东西,也就是说:单一页面,无需刷新url,无需向后端请求,从而实现页面部分内容更新.对于
阅读全文
posted @
2021-09-16 17:51
Shyno
阅读(1217)
推荐(0) 编辑
前端浅谈-浏览器渲染原理
摘要:主要是整理当浏览器拿到html和css之后怎么把它们渲染成我们能看到的页面. GUI渲染线程大致流程如下: 接下来我们分环节从前往后得分析渲染流程 DOM tree 和CSSOM tree 什么是tree?就是树,它代表了一直关系.节点和节点之间是有关系的,根节点是谁,兄弟节点有哪些等.所以DOM
阅读全文
posted @
2021-09-13 19:09
Shyno
阅读(293)
推荐(0) 编辑
前端浅谈-Js的组成
摘要:这里主要想详细的分析一下浏览器渲染过程,但东西比较多.所以分成多个部分. JS由三个部分组成,分别为ECMAScript、BOM、DOM. 其中BOM是浏览器层面的东西,而DOM是页面层面的东西.简单来说,BOM是包含整个浏览器的,它的核心对象是window,而DOM是页面里的所有东西,它的核心对象
阅读全文
posted @
2021-09-13 13:46
Shyno
阅读(241)
推荐(0) 编辑
前端浅谈-浏览器工作进程
摘要:这块儿主要是大体上理解浏览器的工作流程,对于前端来说,其中渲染部分是最重要的. 进程和线程 稍微通俗点来描述它们,就是我一个系统要做一件事,比如造车,要装发动机、机身、轮胎等等子任务.我可以只安排一个人去做,那整个造成的进程就是只有一个线程.但是如果我安排多个人去做,那就是多个线程,而且这几个人可以
阅读全文
posted @
2021-09-13 11:07
Shyno
阅读(229)
推荐(0) 编辑
前端浅谈----宿主环境
摘要:前言:最近发现越学习问题越多,或者说很多问题不久之前刚搞懂,过一段时间就忘记了.根本原因自己没有理解.所以就想系统得学习和整理一下前端相关的东西.争取能更好得吸收现有的知识体系. 什么是宿主环境? 我们常说前端HTML、CSS、javascript这三者为前端三基佬,也就是说作为一个前端,就必须会这
阅读全文
posted @
2021-09-08 18:39
Shyno
阅读(684)
推荐(0) 编辑
从零开始写一个前端脚手架七、定制化项目信息
摘要:我们目前已经把模板代码拉取到本地了,并且项目的文件名已经修改成了我们在命令行输入的名称.但是模板代码里的package.json里的部分信息仍是从模板带下来的,所以我们需要去修改里面的一些信息. 在文件已经生成的情况下修改文件信息,就要用到node的fs 具体的操作步骤为 1.获取当前执行命令的路径
阅读全文
posted @
2021-09-03 15:53
Shyno
阅读(275)
推荐(0) 编辑
从零开始写一个前端脚手架六、模板代码部署
摘要:我们在准备阶段就说过,最好准备一些模板代码.在脚手架生成的时候直接将其直接拿来用. 获取模板代码主要是两种方式: 1.内置在脚手架中,然后通过node file去操作,克隆文件. 好处有:(1)我们可以在脚手架中内置多个模板,比如对应ts的代码模板,对应js的代码模板,对应不同用户权限的代码模板.不
阅读全文
posted @
2021-09-03 15:53
Shyno
阅读(345)
推荐(0) 编辑
从零开始写一个前端脚手架五、用户交互
摘要:我们在初始化的时候需要知道一些信息,比如用户希望项目叫什么名字、项目的描述等,或者其他更高级的操作,比如git会让你登录等操作.我们就需要与用户进行交互 此时就需要在准备阶段安装的inquirer,它的基本功能是让用户在命令行"做题",然后拿到答案,根据答案再进行后续操作 基本用法 const in
阅读全文
posted @
2021-09-03 15:51
Shyno
阅读(186)
推荐(0) 编辑
从零开始写一个前端脚手架三、脚手架初始化
摘要:我们在bin里面新建了一个index.js,这个文件的作用是作为脚手架的初始化文件,可用来作为其他脚本的入口. 初始化文件编写 #!/usr/bin/env node 'use strict' //定义脚手架的文件路径 process.env.NODE_PATH=__dirname+'/../nod
阅读全文
posted @
2021-09-03 15:51
Shyno
阅读(259)
推荐(0) 编辑
从零开始写一个前端脚手架四、初始化进程提示(chalk)
摘要:我们之前说过bin里面的index.js文件是作为入口文件存在的.实际上的初始化内容在.action里面操作的,为了方便管理,我们把实际操作的代码抽出来放一块儿管理 创建指令文件 在根目录创建一个commands文件夹,然后在里面新建一个init.js文件.所以现在的目录为 然后init.js里面的
阅读全文
posted @
2021-09-03 15:51
Shyno
阅读(307)
推荐(0) 编辑
从零开始写一个前端脚手架二、脚本配置
摘要:模块准备好之后,我们就需要开始编写脚本. 在根目录新建一个bin文件夹,然后在bin文件夹中新建一个脚本文件,比如index.js,那么此时的文件目录为 node脚本编写 接下来就是关于index.js里面的node脚本编写了.具体的后续再讨论,目前我们就在里面写入最简单的代码 #!/usr/bin
阅读全文
posted @
2021-09-02 18:08
Shyno
阅读(335)
推荐(0) 编辑
从零开始写一个前端脚手架一、准备阶段
摘要:该系列主要是自主学习时的整理性文档,对于网上的不少博客有借鉴和学习.主体方向部分借鉴了@前端小黑 的博客 .感谢其提供了一个清晰地方向 贴上原地址:前端工程化 搭建自己的脚手架工具详细步骤 前端搭建项目的时候类似create-react-app或者vue-cli脚手架都是输入一个命令,然后填一些或多
阅读全文
posted @
2021-09-02 17:37
Shyno
阅读(239)
推荐(0) 编辑