Kylen Blog

JS进阶系列-第四篇-执行上下文

JS的执行顺序如果要问到JavaScript代码的执行顺序,想必每个JavaScript的开发者第一印象都是顺序执行。 但是真正代码运行时又会有一些怪异的状况出现,比如: 1234foo(); // foofunction foo() { console.log('foo');} 然后我们被告知JavaScript有一个变量声明提升的概念,函数就会声明提升。这么一看......

JS进阶系列-第三篇-面向对象

面向对象面向对象的概念OOP(object-oriented programming)面向对象程序设计是一种程序开发的方式。常常与面向过程的程序设计方式比较。 面向对象程序设计和传统的思想不同的是:传统的程序主张将程序看作一系列函数的集合,或者一系列对电脑下达的指令。面向对象的程序设计中每一个对象都应该能够接收数据、处理数据并且能够将数据传达给其他对象,因此它们都可以被看作是一个小型的“机器......

JS进阶系列-第二篇-内存空间

前言像C语言这样的底层语言一般都有底层的内存管理接口,像malloc()和free()。像JavaScript这样的语言在创建变量的时候自动完成了内存的分配,并且在不需要的时候自动释放。释放的过程称之为“垃圾回收”。这个“自动”就是混乱的根源,它让我们以为使用JavaScript code就不用关心内存管理。 JavaScript的内存空间我们coding的时候应该都想过一个问题,我们定义的......

JS进阶系列-第一篇-什么是单线程?

前言程序的问题,从语言本身到具体执行,很容易牵扯到计算机、操作系统的问题,再深挖就容易牵扯到物理和数学问题,再挖就只能用祭出量子力学了。 我们不得不承认透过编程可以一窥世界本质。而计算机无疑是世界上最伟大的发明之一。 这里就简单的挖一下单线程。 同步、异步 阻塞、非阻塞 并行、并发同步和异步关心的是消息通信机制同步:发出一个调用时,没有得到结果,该调用就不返回异步:发出一个调用,直接返回调用......

JS进阶系列-第零篇-引言

为何有这个系列?我把JS分为基础和进阶两个部分,基础部分主要包含JS本身的一些标准和常用的属性和方法等。进阶部分则主要包括JS运行机制,也可说是JS执行引擎的知识点,以及在此基础上的JS的一些高级技巧。 熟悉掌握JS基础知识之后,熟练使用各类型变量的各种属性方法,封装函数,已经可以驾驭很多业务场景。但不免很多时候对一些细节会产生疑惑。比如面试中经常问到的变量申明提升、异步代码执行顺序等问题。......

图片和文字的随机API

前言blog中需要使用一些随机的图片和句子,于是在网络上找了一些,把一些感觉挺有价值的整理放到这里。 随机文字类别的API: 一言一言指一句话,提供一句话服务,包含动画、漫画、游戏、小说等七个分类,这个应该是相当有名了。 今日诗词根据时间、地点、天气、事件智能推荐,好像很腻害。每次返回一句诗词 古诗词·一言API今日诗词的旧版 https://www.liutianyou.com/26......

使用七牛云搭建个人图片服务器

前言写笔记、blog、文章教程中都可能会出现图片这种资源,图片本身可以直接存放在项目中,作为项目的静态资源,也可以统一存放在图片服务器上。图片的服务器的优势主要在于可扩展性和性能。图片服务器本身就分担了图片服务消耗的资源,再者可针对图片服务做优化,例如图片缓存等。对于我们使用者来说,使用图片服务器,可以专注于内容,而不用花费过多的精力在图片存储和管理上。这种提供图片存储和服务的图片服务器也叫......

数据结构的堆、栈和操作系统的堆内存、栈内存的区别

前言喜欢瞎琢磨的人应该都过这个疑问。数据存在堆中、栈中。。数据结构中也有堆栈这种数据结构,这两者却不是一个意思。栈内存和数据结构栈有关系,堆内存和数据结构堆却毫无瓜葛。一脸懵逼。 做为一名前端工程师,我估摸着产生这种疑惑最大的问题在于不是很理解内存空间的概念。我们平时所说的堆内存、栈内存其实我们并没有对它有一个明确的定义,然后随着对堆、栈这种数据结构有有了一定的认识之后一对比就发现问题了。当......

Alfred workflow小白入门

Alfred是什么Alfred是一款提效神器,可通过热键、关键字、文本扩展等快速搜索Mac和网络;并且可以自定义操作。 Alfred的基础能力差不多是SpotLight(聚焦搜索)的一个加强版,可以快速搜索和使用Mac上的资源。对应到实际的操作包括:应用搜索、文件搜索、文本内容搜索、通讯录搜索、使用计算器、使用词典等等等 直接听起来好像没什么了不起,但只要使用过,就会感受到Alfred带来的......

使用github+hexo搭建个人blog

基本思路Github page + hexo前者提供静态站点托管服务,后者快速构建blog。平时写blog的流程:码字 –> 本地构建 –> 部署到github GitHub pageGithub是一个代码托管平台和开发者社区,开发者可以在Github上创建自己的开源项目并与其他开发者协作开发。 GitHub Pages是一种静态站点托管服务,旨在直接从GitHub存储库托管您......