ES6 新特性
ES6ES6是 ECMAScript 2015 的简称,是 JavaScript 语言的一个重要版本,引入了许多新的语法和功能,使得 JavaScript 更加强大和灵活 let 和 constlet 变量不能重复声明 12let star = '罗志祥';let star = '小猪'; // error let 有块级作用域 1234{ let girl = '周扬青';}console.log(girl); // error 不仅仅针对花括号,例如 if() 里面 不存在变量提前 12console.log(song); // errorlet song = '恋爱达人'; 不影响作用域链 1234let school = 'abc';function fn() { console.log(school); // abc} const const 用来定义常量,一旦声明,不可修改 1const A =...
js 中 for 循环中使用 var 和 let 的区别
var12345for(var i = 0; i < 3; i++) { setTimeout(function() { console.log(i); })} var 声明提升 使用 var 关键字声明的变量会自动提升到函数作用域顶部,为局部变量 若 var 声明不是包含在函数内,则提升到 script 标签下方,成为全局变量 for循环有一个特别之处,就是设置循环变量的那部分是一个父作用域,而循环体内部是一个单独的子作用域 所以原 for 循环可以分解为: 123456789101112131415161718192021222324252627282930var i = undefined // 全局变量 i = 0i < 3{ setTimeout(() => { console.log(i); });}i++// i == 1i < 3{ setTimeout(() => { ...
栈上分配 标量替换
逃逸分析所有的对象都在堆上吗? 在《深入理解Java虚拟机》中关于Java堆内存有这样一段描述: 随着 JIT 编译期的发展与逃逸分析技术逐渐成熟,栈上分配、标量替换优化技术将会导致一些微妙的变化,所有的对象都分配到堆上也渐渐变得不那么"绝对"了 在 Java 虚拟机中,对象是在 Java 堆中分配内存的,这是一个普遍的常识。但是,有一种特殊情况,那就是如果经过逃逸分析(Escape Analysis)后发现,一个对象并没有逃逸出方法的话,那么就可能被优化成栈上分配。这样就无需在堆上分配内存,也无须进行垃圾回收了。这也是最常见的堆外存储技术 此外,前面提到的基于 OpenJDK 深度定制的 TaoBao VM(淘宝虚拟机),其中创新的 GCIH(GC invisible heap)技术实现 off-heap,将生命周期较长的 Java 对象从 heap 中移至 heap 外,并且 GC 不能管理 GCIH 内部的 Java 对象,以此达到降低 GC 的回收频率和提升 GC...
webpack 错误提示:Set 'mode' option to 'development' or 'production' to enable defaults for each environment
今天在学习 TypeScript 中,使用 webpack 打包时报一下错误: WARNING in configurationThe mode option has not been set, webpack will fallback to production for this value.Set mode option to development or production to enable defaults for each environment. 上网查了一下资料,解决方案是在 webpack.config.js 配置文件中 添加:mode: 'development' 123module.exports = { mode: 'development'}
TypeScript
TypeScript 是 JavaScript 的一个超集 .batten { position: relative; } #astronaut-4-animation { position: absolute; width: 250px; top: -90%; right: -9%; } lottie.loadAnimation({ path: '/json/astronaut/4.json', loop: true, autoplay: true, renderer: 'canvas', container: document.getElementById('astronaut-4-animation'), }); TypeScript 是一种开源的编程语言,它添加了静态类型和其他一些特性,使得编写大型应用程序更加容易,支持 ECMAScript 6 标准。特点: 支持最新的 JavaScript...
Mac 快速切换 Node 版本
如果你要在 Mac 环境中管理 Node.js 版本,可以使用 n 工具。n 工具可以帮助你轻松地安装、升级和管理多个 Node.js 版本 安装 n 工具:你可以使用 npm 全局安装 n 工具。在终端中运行以下命令: 1npm install -g n 安装给定版本的 Node.js:安装完 n 工具后,你可以使用以下命令来安装指定版本的 Node.js: 1n 14.17.6 切换 Node.js 版本:如果你需要在不同的项目中切换 Node.js 版本,可以使用以下命令: 1n 16.6.0 查看安装的 Node.js 版本:你可以使用以下命令查看当前已经安装的 Node.js 版本: 1n 这个命令会列出已经安装的 Node.js 版本,并且用星号 * 标识当前正在使用的版本 查看官方 node 版本列表 1npm view node versions
Nexus
在 Mac 上使用 Nexus 与在其他平台上使用基本相同。下面是在 Mac 上使用 Nexus 的一般步骤: 下载和安装 Nexus:首先,你需要从Nexus官方网站下载并安装 Nexus 解压 Nexus 安装包:将下载的 Nexus 安装包解压缩到你选择的目录中 1tar -xvf nexus-x.x.x-xx.tar.gz 配置 Nexus 数据目录:在解压缩的 Nexus 目录中,找到 nexus-x.x.x-xx 文件夹,并将其重命名为 nexus。然后,将 Nexus 数据目录从默认位置(${NEXUS_HOME}/data)更改为你选择的目录 12cd nexusmv nexus-x.x.x-xx data/ 配置环境变量(根据自己需要选择配置) 12export NEXUS_HOME=/usr/local/nexus-3.60.0-02-mac/nexus-3.60.0-02PATH=$PATH:$NEXUS_HOME/bin 然后保存退出,在终端中执行刷新配置命令 1source...
IDEA 输入 mvn 提示 command not found
之前已经配置好 maven 配置,但是 打开 IDEA 终端 输入 mvn 命令时 提示 1command not found: mvn 这里就很坑,明明已经配置好了,但还是不能用,尝试了很多办法还是不行,查了资料才知道使用以下命令即可: 1source ~/.bash_profile 使用此方法每次重启电脑都需要重新配置一下 IDEA
IDEA 快捷键
编辑类快捷键 p + s + v + m 快速生成 main 方法 1public static void main(String[] args) {} s + o + u + t 输出语句 1System.out.println(); control + J 快速查看文档 command + N 生成代码(getter,setter,构造函数,hashCode / equals,toString) control + O 覆盖方法(重写父类方法) control + I 实现方法(实现接口中的方法) command + option + T 使用if…else,try…catch,for,synchronized等包围选中的代码 command + / 注释/取消单行注释 command + option + / 注释/取消多行注释 option + ↑ 连续选中代码块 option + ↓ 减少当前选中的代码块 option + ↵ 显示意向动作和快速修复代码 command + option + L...
unicode-range
CSS 的 unicode-range 属性与 @font-face 规则结合使用,可以单独设置某个字体 小吉崽汁博客使用的是润圆体,但是我对于其中的某个标点符号感到很不喜欢,但是我又不想换字体,这时候就可以用了 unicode-range 了 12345@font-face { font-family: "PunctuationFont"; src: url(path/to/punctuation-font.ttf); /* 替换为实际的字体文件路径和文件名 */ unicode-range: U+2000-206F; /* Unicode 范围选择器,表示标点符号的区域 */} 这样的话除了标点符号,其他的字体都是 PunctuationFont,标点符号是默认的字体。对于 unicode 的值,mac 可以直接查看字体册,上面都有具体的 unicode 值