JavaScript
专注JS开发
AdleyTales
这个作者很懒,什么都没留下…
展开
-
关于什么是前端的同构
同构(isomorph)一词,这个概念本来是来源于数学,具体自行查阅,下面是以介绍在JS中的同构概念。在前端,同构JavaScript应用指的是,用JavaScript编写的应用能够同时运行于客户端和服务器。因此,只需编写一次代码,在服务器上执行它来渲染静态页面,同时执行于客户端以允许快速的交互。大前端演变的过程:【纯后端渲染】 -> 2.【单页面应用(纯前端渲染和交互)】 -> 3.【 同构(后端渲染和前端交互)】现在,同构和服务端渲染(server side ren.原创 2021-02-03 19:22:15 · 941 阅读 · 0 评论 -
在线预览pdf文件,使用pdf.js
1. 下载pdf.jspdf.js官方下载地址2. 解压3. 运行启动项目在本地环境(url以file://开头)无法运行,需要服务器环境。使用nginx,修改配置文件 nginx安装目录/conf/nginx.confserver { listen 8888; location / { root D:/studyspace/pdfjs-2.5.207-dist; } location /pdf/ { proxy_pass http://127原创 2020-11-16 14:34:12 · 1822 阅读 · 0 评论 -
chrome全屏、推出全屏
handleScreen () { var docElm = document.documentElement // 全屏 if (docElm.webkitRequestFullScreen) { docElm.webkitRequestFullScreen(); } // 退出全屏 if (document.webkitCancelFullScreen) { document.webkitCancelFullScreen(); }}原创 2020-11-16 14:19:43 · 200 阅读 · 0 评论 -
关于Object.assign的引用,浅拷贝
Object.assign是浅拷贝。具体是:第一级属性深拷贝,第一级以下的级别属性浅拷贝 。深拷贝父对象(一级目录),子对象(二级目录)不拷贝,还是引用。这一特性同python中对字典dict的copy一样,都只是在第一级目录深拷贝,内层还是引用。但是一般我们开发就可以解决实际需求了。...原创 2020-10-19 14:52:42 · 248 阅读 · 0 评论 -
JS中的**的性能问题
在javascript中对数字的n次方可以简写成 10**3 = 1000 代替101010。但是这种写法在v8中确有性能问题,尽量少用!实验过程源代码let start_time = Date.now();for(let a=0;a<1001;a++){ for(let b=0;b<1001;b++){ for(let c=0;c<1001;c++){ // ** 重点关注这一行 if(a**2 +.原创 2020-07-16 09:18:42 · 275 阅读 · 0 评论 -
编程语言对比选择
编程语言对比选择Javascript/nodejs /* io密集 v14.2的node计算能力爆表 计算时间长的交给go这种并发协程做合适 /Typescript / js界的java/c# 约束了类型,非常棒 ,可以用起来 程序的开发体验,维护都会很大提升 /Python /脚本,自动化运维,自动化工具合适, 简单方便库也多,虽然质量参差不齐/Go / cpu密集计算强劲,计算密集的程序并不会阻塞 而node是计算密集后并发能力就会骤降,原因是单现成,阻塞了 其他的异步io都会等待 */Rus原创 2020-06-25 22:10:50 · 203 阅读 · 0 评论 -
vscode 远程调试nodejs
{ // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "type": "node", "request": "attach", "name": "远程调试", "address": "1原创 2020-05-29 09:42:58 · 369 阅读 · 0 评论 -
javascript/nodejs 冒泡排序
const arr = [13140, 71150, 98016, 2672, 65544, 70876, 60106, 82363, 28026, 34237, 85866, 29737, 20727, 85706, 43209, 65053, 2680, 22995, 62578, 95850, 98706, 26733, 23287, 64355, 27903, 78561, 33467, 53185, 40984, 9096, 95357, 77789, 10036, 59389, 92273, 5原创 2020-05-18 21:36:37 · 2444 阅读 · 0 评论 -
webstrom设置nodejs智能提示
File -> Settings -> Languages&Frameworks -> Javascript -> Libraries,在右侧找到Download,滚动找到node,点击Download即可。原创 2019-12-06 15:55:19 · 150 阅读 · 0 评论 -
JavaScript锁定对象的属性 Object.freeze
var obj = { foo: 'bar'}Object.freeze(obj)console.log(obj); // { foo: 'bar' }obj.foo = 'abc123';console.log(obj); // { foo: 'bar' }原创 2019-07-09 17:31:05 · 1325 阅读 · 0 评论 -
JavaScript中 iOS端 newDate NAN
在ios端中,使用如下方法会获得NaN,安卓手机则是正常计算 new Date("2019-02-26 18:34:33").getTime()解决方法:用正则把 ‘-’ 换成 ‘/’ ,让时间格式变成以下格式 new Date("2019/02/26 18:34:33").getTime()代码: var date = '2019/02/26 18:34:33'.rep...原创 2019-06-03 12:55:57 · 401 阅读 · 0 评论 -
JavaScript 通过 useragent 判断当前的环境是微信 Android iOS
export const uaHelper = () => { let ua = navigator.userAgent; // 微信端 let wx = /MicroMessenger/i.test(ua); if(wx) return 'wx'; // Android终端 let android = ua.indexOf('Androi...原创 2019-05-31 10:07:16 · 1129 阅读 · 0 评论 -
JavaScript 混淆数组-更改数组元素顺序
// 混淆数组function randomArray(arr){ return arr.sort(() => Math.random() -0.5);}console.log(randomArray([1,2,3,4,5]));// [ 1, 3, 2, 5, 4 ]原创 2019-05-07 09:23:32 · 1475 阅读 · 0 评论 -
JavaScript - 创建特定大小的数组,比如生成 1-100,模拟python中range
// 生成0-9数字[...Array(10).keys()]// [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ]原创 2019-05-07 09:26:42 · 3821 阅读 · 0 评论 -
JavaScript - 最简洁的数组去重
[...new Set(arr)]原创 2019-05-07 09:27:57 · 361 阅读 · 0 评论 -
JavaScript中 padStart padEnd 字符串补全值方法
ES2017 引入了字符串补全长度的功能。如果某个字符串不够指定长度,会在头部或尾部补全。padStart()用于头部补全,padEnd()用于尾部补全。'x'.padEnd(5,'v'); // "xvvvv"'c'.padStart(4,'ss'); // "sssc"...原创 2019-05-07 09:34:32 · 406 阅读 · 0 评论 -
JavaScript - 生成随机颜色值,随机十六进制代码
// 随机十六进制代码, eg: #ff0000function randomColor(){ return '#'+Math.floor(Math.random() * 0xffffff).toString(16).padEnd(6, '0');}原创 2019-05-07 09:37:27 · 1041 阅读 · 0 评论 -
JS 随机生成字符串 数字+字母组合
Math.random().toString(36).substr(2)原创 2018-11-19 11:23:39 · 2670 阅读 · 0 评论 -
设置localStorage过期时间
/** * [以秒做单位, 设置localStorage过期时间] */ var localStorageUtil = { set(key, val, expire){ var exp = expire ? Date.now() + expire*1000 : -1; localStorage.setItem(...原创 2019-01-04 10:33:28 · 2664 阅读 · 0 评论 -
JS 利用set去重,再转数组
let arr = [1,2,3,4,2,3]; let s = new Set(arr); console.log(s); // Set(4) {1, 2, 3, 4} var s1 = Array.from(s); console.log(s1); // [1, 2, 3, 4]原创 2019-02-25 09:32:59 · 1570 阅读 · 0 评论