首页
学习
活动
专区
工具
TVP
发布

李才哥

专栏作者
177
文章
284729
阅读量
30
订阅数
客户关系管理(CRM)
李才哥
2023-06-28
3280
vue2.6.11源码结构
李才哥
2023-06-28
1070
探索JavaScript面向对象编程的魅力与用途
在前端开发中,JavaScript是一门非常重要的语言。它不仅可以用于实现交互和动态效果,还可以通过面向对象编程的方式构建复杂的应用程序。本文将深入探索JavaScript面向对象编程的魅力和用途,帮助读者更好地理解和应用该编程思维方式。
李才哥
2023-06-23
1390
内存控制
这个限制可以通过 v8 提供的选项解除,如 node --max-old-space-size=1700 test.js
李才哥
2021-02-28
4050
异步编程
异步编程.png 异步编程 函数式编程 高阶函数 高阶函数则是可以把函数作为参数,或是将函数作为返回值的函数, 除了通 常意义的函数调用返回外,还形成了一种后续传递风格 在自定义事件实例中,通过为相同事件注册不同的回调函数,可以很灵活地处理业务逻辑 偏函数用法 通过指定部分参数来产生一个新的定制函数的形式就是偏函数 异步编程的优势与难点 优势 Node带来的最大特性莫过于基于事件驱动的非阻塞I/O模型 只要合理利用Node的异步模型与V8的高性能,就可以充分 发挥CPU和I/O资源的优势 难点 try/c
李才哥
2021-02-28
7330
异步I/O
O.png 异步I/O 为什么要异步 I/O 在跨网络的结构下,并发已经是现代编程中的标准配备了 在浏览器中 JavaScript 执行与 UI 渲染共用一个线程 前端通过异步可以消除掉UI阻塞的现象 采用异步并发下载资源 多线程的代价在于创建 线程和执行期线程上下文切换的开销较大 但是串行执行的缺点在于性能 Node在两者之间给出了它的方案 利用单线程,远离多线程死锁、状态同步等问题 利用异 步I/O,让单线程远离阻塞,以更好地使用CPU 异步 I/O 实现现状 非阻塞I/O跟阻塞I/O的差别为调用之后
李才哥
2021-02-26
8390
模块机制
· require()通过分析文件扩展名之后,可能没有查找到对应文件,得到一个目录
李才哥
2021-02-26
4280
Node简介
node.png node Node 的诞生历程 Node 的命名与起源 JavaScript比C的开发门槛要低 比Lua的历史包袱要少 有广泛的事件驱动方面的应用 为其导入非阻塞I/O库 没有额外阻力 JavaScript引 擎V8摘得性能第一的桂冠 为什么叫Node:每一个Node进程都构成这个网络应 用中的一个节点 Node 带来的意义 Node打破了过去JavaScript只能在浏览器中运行的局面 大大降低前后端转换所需要的上下文交换代价 Node 的特点 异步I/O 事件与回调函数 单线程 跨平
李才哥
2021-02-24
3010
async 函数
async 函数.png async 函数 含义 async 函数是什么?一句话,它就是 Generator 函数的语法糖 一比较就会发现,async函数就是将 Generator 函数的星号(*)替换成async,将yield替换成await,仅此而已 Generator 函数的执行必须靠执行器,所以才有了co模块,而async函数自带执行器 async和await,比起星号和yield,语义更清楚了 co模块约定,yield命令后面只能是 Thunk 函数或 Promise 对象,而async函数的a
李才哥
2021-02-24
6200
Generator 函数的异步应用
Generator 函数的异步应用.png Generator 函数的异步应用 传统方法 回调函数 事件监听 发布/订阅 Promise 对象 基本概念 所谓"异步",简单说就是一个任务不是连续完成的,可以理解成该任务被人为分成两段,先执行第一段,然后转而执行其他任务,等做好了准备,再回过头执行第二段 所谓回调函数,就是把任务的第二段单独写在一个函数里面,等到重新执行这个任务的时候,就直接调用这个函数 Promise 对象是一种新的写法,允许将回调函数的嵌套,改成链式调用 Generator 函数 第一步
李才哥
2021-02-24
9260
Reflect
Reflect.png Reflect 概述 Reflect对象与Proxy对象一样,也是 ES6 为了操作对象而提供的新 API 将Object对象的一些明显属于语言内部的方法(比如Object.defineProperty),放到Reflect对象上 修改某些Object方法的返回结果,让其变得更合理 让Object操作都变成函数行为 Reflect对象的方法与Proxy对象的方法一一对应,只要是Proxy对象的方法,就能在Reflect对象上找到对应的方法 静态方法 Reflect.apply(t
李才哥
2021-02-24
2770
Generator 函数的语法
Generator 函数的语法.png Generator 函数的语法 简介 Generator 函数是 ES6 提供的一种异步编程解决方案,语法行为与传统函数完全不同 语法上,首先可以把它理解成,Generator 函数是一个状态机,封装了多个内部状态 执行 Generator 函数会返回一个遍历器对象,也就是说,Generator 函数除了状态机,还是一个遍历器对象生成函数 一是,function关键字与函数名之间有一个星号 二是,函数体内部使用yield表达式,定义不同的内部状态 总结一下,调用 G
李才哥
2021-02-24
3730
Iterator 和 for...of 循环
Iterator 和 for...of 循环.png Iterator 和 for...of 循环 Iterator(遍历器)的概念 一种统一的接口机制,来处理所有不同的数据结构 为各种不同的数据结构提供统一的访问机制。任何数据结构只要部署 Iterator 接口,就可以完成遍历操作 一是为各种数据结构,提供一个统一的、简便的访问接口; 二是使得数据结构的成员能够按某种次序排列; 三是 ES6 创造了一种新的遍历命令for...of循环,Iterator 接口主要供for...of消费 默认 Iterat
李才哥
2021-02-24
3390
Promise
Promise.png Promise Promise 的含义 Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大 对象的状态不受外界影响。Promise对象代表一个异步操作,有三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败) 一旦状态改变,就不会再变,任何时候都可以得到这个结果。Promise对象的状态改变,只有两种可能:从pending变为fulfilled和从pending变为rejected 基本用法 ES6
李才哥
2021-02-23
6830
Reflect
Reflect.png Reflect 概述 Reflect对象与Proxy对象一样,也是 ES6 为了操作对象而提供的新 API 将Object对象的一些明显属于语言内部的方法(比如Object.defineProperty),放到Reflect对象上 修改某些Object方法的返回结果,让其变得更合理 让Object操作都变成函数行为 Reflect对象的方法与Proxy对象的方法一一对应,只要是Proxy对象的方法,就能在Reflect对象上找到对应的方法 静态方法 Reflect.apply(t
李才哥
2021-02-23
2520
Proxy
Proxy.png Proxy 概述 Proxy 用于修改某些操作的默认行为,等同于在语言层面做出修改,所以属于一种“元编程”(meta programming),即对编程语言进行编程 ES6 原生提供 Proxy 构造函数,用来生成 Proxy 实例 Proxy 实例的方法 get(target, propKey, receiver):拦截对象属性的读取,比如proxy.foo和proxy['foo']。 set(target, propKey, value, receiver):拦截对象属性的设置,比
李才哥
2021-02-23
6890
对象的扩展
对象的扩展 对象的扩展.png 属性的简洁表示法 ES6 允许直接写入变量和函数,作为对象的属性和方法。这样的书写更加简洁。 属性名表达式 JavaScript 定义对象的属性,有两种方法 方法一是直接用标识符作为属性名,方法二是用表达式作为属性名,这时要将表达式放在方括号之内 注意,属性名表达式如果是一个对象,默认情况下会自动将对象转为字符串[object Object] 方法的 name 属性 函数的name属性,返回函数名。对象方法也是函数,因此也有name属性 如果对象的方法使用了取值函数(get
李才哥
2021-02-23
6980
数值的扩展
数值的扩展.png 数值的扩展 二进制和八进制表示法 ES6 提供了二进制和八进制数值的新的写法,分别用前缀0b(或0B)和0o(或0O)表示 Number.isFinite(), Number.isNaN() Number.isFinite()用来检查一个数值是否为有限的(finite),即不是Infinity Number.isNaN()用来检查一个值是否为NaN,如果参数类型不是NaN,Number.isNaN一律返回false 传统方法先调用Number()将非数值的值转为数值,再进行判断,而这两
李才哥
2021-02-23
5130
正则的扩展
正则的扩展.png 正则的扩展 RegExp 构造函数 第一种情况是,参数是字符串,这时第二个参数表示正则表达式的修饰符 第二种情况是,参数是一个正则表示式,这时会返回一个原有正则表达式的拷贝 ES5 不允许此时使用第二个参数添加修饰符,否则会报错 ES6 改变了这种行为。如果RegExp构造函数第一个参数是一个正则对象,那么可以使用第二个参数指定修饰符 字符串的正则方法 字符串对象共有 4 个方法,可以使用正则表达式:match()、replace()、search()和split() u 修饰符 E
李才哥
2021-02-23
3890
字符串的扩展
字符串的扩展 字符串的扩展.png 字符的 Unicode 表示法 JavaScript 允许采用\uxxxx形式表示一个字符,其中xxxx表示字符的 Unicode 码点 ES6 对这一点做出了改进,只要将码点放入大括号,就能正确解读该字符 codePointAt() JavaScript 内部,字符以 UTF-16 的格式储存,每个字符固定为2个字节 对于这种4个字节的字符,charAt方法无法读取整个字符,charCodeAt方法只能分别返回前两个字节和后两个字节的值 ES6 提供了codePoin
李才哥
2021-02-23
4300
点击加载更多
社区活动
RAG七天入门训练营
鹅厂大牛手把手带你上手实战
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档