js 进阶
haokur
你不必等到准备好一切 , 才出发
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
也说说闭包
在一次面试的时候, 被问到谈谈闭包. 一直觉得闭包这个词, 玄而又玄, 英文名叫 closure , 翻译过来叫闭包. 并不能一眼从字面上看出一点玄机. 在用 chrome 浏览器调试的时候, 发现了函数对象上的一个 [[scope]] 属性. 数组类型. 凡自建函数 , [[scope]] 至少是有一个元素, 那就是全局作用域 也就是 整个 window 对象, 用 debugge...原创 2018-05-26 02:00:24 · 376 阅读 · 0 评论 -
javascript 基本方法扩展
一门语言会涌现出大量框架和库,说明它本身的不完善性。 js 本身实现了核心功能,一些高级方法,需要使用者去完善。 市面上有多如牛毛的库,这里也提供一些应用中常用的高级方法。原创 2018-07-18 17:12:58 · 522 阅读 · 0 评论 -
javascript 进阶之 - 预编译
引言 在 javascript 的世界里, 恨不能所有的东西都能打印, 都能 debugger 打断点, 一步一步看其执行的逻辑 . 但是: 有些属性限制了访问, 比如 [[Scopes]] , [[Class]] [[Caller]] … 让你不得而知其到底是个啥, 只能道听途说, 半猜地似懂非懂. 有些内置方法, 无法用代码查看 , 比如 Object 里面到底都进行了哪些操作. 有些...原创 2018-06-02 14:34:45 · 284 阅读 · 0 评论 -
Javascript 那些套路
模块化 自己想要一个库 , 想让这个库可以通过 import 或者 require 导入, 也兼容浏览器直接导入时. ( 以 Tool 为例) ; (function (global, factory) { var isSupportModule = typeof exports !== 'undefined' && typeof module !== 'undef...原创 2018-06-14 15:29:31 · 544 阅读 · 0 评论 -
javascript 进阶之 - 执行上下文
引言 执行上下文 = 执行 + 上下文 ; 也就是说执行上下文, 必然是伴随这执行的发生. 那么怎么才能执行? 浏览器解析到 <script> 标签时或者成功加载外部脚本后, 会逐行执行, 也叫全局执行. 在逐行读到函数调用时, 也会执行, 这是函数的执行. 还有逐行读到比较特殊的 eval 语句, 也会执行 , 暂且称作 eval 执行. 相应的执行则会生成不同的上...原创 2018-06-05 18:39:03 · 564 阅读 · 0 评论 -
javascript 进阶之 - 原型和原型链
引言 常规情况 , 原型 prototype 本质是一个对象 {} ; 原型链的 链 本质是一个对象引用 , 指向特定的 prototype 对象 ; prototype 和 __proto__ 都是对象上的一个属性; 也就是说 , 非常规的情况, 是可以手动修改 prototype 和 __proto__ 为任何值的. 为什么需要 prototype ? 就像工厂需要通过对原材料经...原创 2018-06-05 16:41:15 · 244 阅读 · 0 评论 -
javascript 应用之 - 防抖节流
防抖 什么是防抖? 为什么要防抖? 频繁触发 , 只在停下来 n 秒之内无触发后 , 才执行相关操作 ; 因为有些复杂的操作, 如操作DOM , 频繁的触发很影响性能, 可能会把浏览器卡住. 核心 维护一个定时器, 也就是说对用户的操作 , 做延迟执行 每次触发都先清除 1 中的定时器, 不管执行了与否 . 简单实现 function debounce(func, waitTim...原创 2018-06-04 22:19:18 · 208 阅读 · 0 评论 -
javascript 进阶之 - Promise
引言 promise 主要解决了回调地域, 也就是嵌套太深的 callback, 而采用链式方式. 如: // 普通方式 $.get({ url:'url', success:function(){ $.get({ url:'url2', success:function(){ ...原创 2018-06-03 18:58:19 · 504 阅读 · 0 评论 -
javascript 进阶之 - 事件循环
引言 js 引擎是单线程, 所以同一个时间只能做一件事. js 的执行顺序核心是队列 , 而执行的核心是执行栈. 总是从事件队列取事件执行. js 代码有同步执行代码和异步代码, 却并不是以一段代码要执行的时间做区分. 解析到 <script> 标签 , 或者成功加载一个脚本文件, 是在事件队列中添加了一个事件. 粗略流程模拟 浏览器开启 -> js 引擎开启 -&gt...原创 2018-06-03 17:17:37 · 472 阅读 · 0 评论 -
Nodejs 开发命令行工具
准备工作 安装 Nodejs Nodejs 官网下载 起步 新建一个目录,作为命令行工具源码目录。 mkdir webflow-cli 初始化 package.json 文件 npm init --yes 进入命令行工具源码目录(webflow-cli),并且新建 bin 文件夹,并创建主程序,wflow.js cd webflow-cli mkdir bi...原创 2018-08-06 21:15:57 · 4472 阅读 · 0 评论
分享