webStorm 开发,配置 ts(TypeScript)的 FileWatchers
平时的 TS 文件都交给 webpack 了,写个 demo 又不想手动编译,那只能麻烦编辑器了~ 安装 TSscriptpnpm install typescript -g # 查看版本 tsc -v 在 webStorm 中设置 watcher 看高亮 在 setting 中找到 tools/File Watchers, 点击下面的 + 按钮添加一个 watcher 各项配置如下# Program tsc # Arguments - tsc 的参数 $FileName$ --outfile $FileNameWithoutExtension$.js --target esnext --allowJs # Output paths to refresh $FileNameWithoutExtension$.js # Working directory $FileDir$
微信小程序 - typeScript 的配置与热加载
本篇可了解如何在小程序中使用和配置 TypeScript,并配置热重载 项目结构 建议由官方开发工具生成的目录结构。(注意时间和版本区别导致结构的异同) + ├── config // 这层文件夹需不需要随便你 + │ │── index.js // 自动编译运行 js ├── app.js // 全局 js ├── miniprogram // 如果是官方工具生成项目,应该会有这个目录 │ │── app.ts │ │── component │ │ .... └── .... 编辑 /config/index.js 没有依赖先安装依赖:npm child_process node-watch -S -D const exec = require('child_process').exec; const watch = require('node-watch'); const path = require('path'); // 路径,根据自己的情况更换 const basicPath =...
win10 重装系统,电脑出现:"由于最近更改电脑硬件而无法正常启动",或重装卡在:"海内存知己"等问题解决方法
前言本篇不仅可以学到如何重装系统,还能解决在重装中遇到的各种问题,绝了。(也是佩服我,重装一次改遇到的问题全有了) 罗列问题(按装系统顺序列出~) 开机出现 "由于最近更改电脑硬件而无法正常启动",如下图 重装出现 "Windows 安装程序无法将 Windows 配置为此计算机的硬件上运行",如下图 上一步中使用 msoobe.exe 出现或卡在 海内存知己,天涯若比邻,如下图 U盘 重装系统 微软官方 PE 中出现 "缺少计算机所需的介质驱动程序。。。",看下图 专业版系统可能会出现:点击关机后又重新启动的情况(这个莫得图 ~) 开装 ~ 如果你只是单纯的想重装系统建议使用微软官方的 u盘 制作工具,一键制作启动盘,并且他的镜像下载速度更快~ 使用 Rufus 制作系统盘 软件地址不留了 下载正版的Win10镜像 MSDN 地址 不建议去一些啥系统之家下载 Ghost 之内的镜像,或者使用排名名列前茅的 制作启动盘工具,安全问题另说,系统肯定不会是纯净的 开始制作 分区类型默认 MBR,如果你需要...
算法- js 二叉树,二叉查找树的基本实现及递归与循环的版本
二叉树 二叉树是一种属性结构,它的特点是每个节点最多只有两个分支节点,一颗二叉树通常由根节点,分支节点,叶节点组成,而每个分支节点也常常被称作为一颗子树。 根节点:二叉树最顶层的节点 分支节点:除了根节点以外且拥有叶子节点 叶节点:除了自身没有其他节点 中节点:当前节点的父节点(中序遍历) 层 根的层次为0(一般来说),根的直接左右孩子层次为1,以此类推逐渐递增 度 二叉树节点的度数指该节点所含子树的个数 二叉树的深度是指所有节点中最深节点(叶节点)所在层数 常用术语: 在二叉树中,我们常常用父节点和子节点来描述,你如图中的2为6和3的父节点,反之6和3是2的子节点 二叉树的三个性质 在二叉树的第 i 层上,之多有 2 ^ (i - 1) 个节点 i=1时,只有一个根节点,2^(i-1) = 2^0 = 1深度为k的二叉树至多有2^k-1个节点. i=2时,2^k-1 = 2^2 - 1 =...
异或运算符 ^ 理解与应用
简单搞一题 异或运算符 ^特性 交换律:a ^ b ^ c <=> a ^ c ^ b 任何数与 0 异或,为任何数:0 ^ n => n 相同的数异或为 0 搞一题 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 输入: [2,2,1] 输出: 1 var singleNumber = function(nums) { let xor; for (let i = 0; i < nums.length; i++) { xor ^= nums[i] } }; 根据特性 1,所以上面的可以理解为2 ^ 2 ^ 1 => 0 ^ 1 => 1
面试 - js 在指定数组中找出不重复的两数之和为 target
简单搞一题,逆思维解法 原题 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] 解var twoSum1 = function(nums, target) { for (let i = 0, length = nums.length; i < length; i++) { const current = nums[i]; const diff = target - current; if (diff === current) continue; const tIndex = nums.lastIndexOf(diff); if (tIndex >...
面试 - js 二分法,二分查找
记录二分法 二分法 二分查找是一种高效搜索法,是一种可以在有序数组中搜索到特定元素的算法 优缺点 优:比较次数少,查找速度快,平均性能好, 缺: 要求待查表为有序表,且插入删除困难, const arr = [2, 1, 3, 5, 6, 4, 7]; function bubbleSort(arr) { if (!arr.length) return arr; const copyArr = arr.slice(); for (let i = 0, length = copyArr.length; i < length; i++) { for (let j = 0; j < length - i - 1; j++) { const current = copyArr[j]; const next = copyArr[j + 1]; if (current > next) [copyArr[j], copyArr[j + 1]] = [next,...
面试- 头条的简单的一道面试题
很简单~ 但是容易错~ 原题 执行代码求输出,并说明为什么,严格模式下输出有变化吗,为什么 var a = function () {this.b = 3;} var c = new a(); a.prototype.b = 9; var b = 7; a(); console.log(b); console.log(c.b); 点击展开 console console.log(b); // 3 console.log(c.b); // 3 比较容易混淆的是可能不会注意到最后函数 a 的执行~
配置 React 源码的本地调试环境
配置 React 源码的本地调试环境 creat-react-app <项目名称> yarn run eject clone 官方源码(目前是 master latest)小版本可能会有些许异同,可以根据命令行的报错信息再去搜索(镜像 react 仓库,clone 慢的可以使用这个) 根目录中执行git clone --depth=1 https://github.com.cnpmjs.org/facebook/react.git src/react 修改相关配置 链接本地源码react/config/webpack.config.js resolve: { alias: { 'react-native': 'react-native-web', - ...(isEnvProductionProfile && { - 'react-dom$': 'react-dom/profiling', - 'scheduler/tracing':...
node 中 request 的 302 的相关问题
在 node request 爬虫中遇到 302 的相关问题 followRedirect 不进行跳转 此时可获得跳转前的 response 的相关信息,这在某些场景中很有用~ rp({ uri, + followRedirect: false, headers: { "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3" } }, (err, resp, body) => { })