前端
文章平均质量分 59
水星灭绝
meiyou
展开
-
列出二维数组每组排列组合JS版本
二维数组排列组合原创 2023-01-23 20:52:13 · 202 阅读 · 0 评论 -
详解动态规划01背包问题--JavaScript实现
01动态规划原创 2023-01-23 16:26:05 · 1797 阅读 · 0 评论 -
HJ16 购物单 王强决定把年终奖用于购物,他把想买的物品分为两类:主件与附件,附件是从属于某个主件的
遍历一维数组组合原创 2023-01-22 23:04:04 · 1208 阅读 · 0 评论 -
一维数组中取N个元素列出所有组合
一维数组中取N个元素,所有组合原创 2023-01-22 19:29:03 · 783 阅读 · 0 评论 -
# js中Array方法
js中Array方法原创 2023-01-11 22:20:32 · 94 阅读 · 0 评论 -
JS实现数组快速排序
快速排序法const log = console.log;function rand(min, max) { let f = Math.min(min, max); let t = Math.max(min, max); let len = Math.abs(t - f); let r = Math.floor(f + Math.random() * len); return r;}log("random ", rand(7, 292));let a原创 2021-06-07 12:17:58 · 264 阅读 · 0 评论 -
javascript中的隐式转换
前言javascript是一门残疾的垃圾语言,有很多莫名其妙的隐式转换,产生一些正常人难以理解的结果。基本类型number、string、boolean、null、undefined、object、symbol原创 2021-05-28 00:07:51 · 171 阅读 · 0 评论 -
cocos监听按钮,监听动画结束
// Learn TypeScript:// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html// Learn Attribute:// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html// Learn life-cycle callbacks:// - https://docs.cocos.co.原创 2021-05-14 19:19:32 · 745 阅读 · 0 评论 -
cocos独立窗口恢复到tab条上
动画编辑器原来是tab。点击右上角的方框重叠按钮,变成独立动画编辑器窗口独立的动画编辑器窗口要复原成tab页。按住1“动画编辑器字样”,拖拽到2TAB条上,复原了。复原了。原创 2021-05-13 17:45:34 · 443 阅读 · 0 评论 -
cocos creator断点调试
第一种:VS Code + Chrome首先创建一个 Hello World 的项目 Cocos Creator 安装 VS Code 扩展插件:VS Code 安装 Debugger for Chrome 扩展插件安装 Debugger for Chrome 扩展插件成功后,切换到 Debug 模式,设置 launch.json 类型 为 Chrome设置成功后可以看到生成了 launch.json 文件如下:接下来再在 Cocos Creator 中添加 Chrome De原创 2021-04-30 13:58:24 · 1050 阅读 · 0 评论 -
js中Object.getOwnPropertySymbols和create、getOwnPropertyNames
直接看结果const log = console.log;let ksymbol = Symbol.for("iamsymbol")let k1 = "iamk1"let k2 = "iamk2"let k3 = "iamk3"let obj = { [k1]: "v1", [k2]: "v2", [ksymbol]: "vsym"};let no = Object.create(obj, { [k3]: { value: "v3" /原创 2021-04-09 11:29:32 · 344 阅读 · 0 评论 -
JS中迭代器和生成器区别
参考:https://blog.csdn.net/qq_34832846/article/details/86690124迭代器是可迭代对象,具有Symbol.iterator方法和next()方法,可以通过for..of代替普通for循环来迭代,省去循环引用变量,简化了循环过程。而生成器是创建迭代器的函数,生成器函数内部有yield关键字来提供暂停接口,作为创建的迭代器调用next()方法执行的节点。生成器函数与普通函数的区别是前者在function关键字后有星号(*),其他则和普通函数一样,可以传参原创 2021-03-25 16:08:46 · 1160 阅读 · 0 评论 -
js字符串处理
var family = require("./people/family/family");family.showInfo();family.son.showInfo("pp", 6);family.showParent();var s1 = "v1";var s2 = "v2";var s3 = s1.concat(s2);console.log("s1 = ", s1, ", s2 = ", s2, ", s3 = ", s3, ", ", s3.lastIndexOf("v2".原创 2021-03-21 14:56:09 · 118 阅读 · 0 评论 -
WebSocket 和 HTTP 的区别及原理
参考:https://www.v2ex.com/amp/t/473376参考:http://www.ruanyifeng.com/blog/2017/05/websocket.html 一、为什么需要 WebSocket? 初次接触 WebSocket 的人,都会问同样的问题:我们已经有了 HTTP 协议,为什么还需要另一个协议?它能带来什么好处?答案很简单,因为 HTTP 协议有一个缺陷:通信只能由客户端发起。举例来说,我们想了解今天的天气,只能是客户端向服务器发出请求,服务器返回查原创 2021-03-19 16:32:13 · 10129 阅读 · 0 评论 -
Http、Socket、WebSocket之间联系与区别
参考:https://www.cnblogs.com/aspirant/p/11334957.htmlWebSocket和Socket区别可以把WebSocket想象成HTTP(应用层),HTTP和Socket什么关系,WebSocket和Socket就是什么关系。HTTP 协议有一个缺陷:通信只能由客户端发起,做不到服务器主动向客户端推送信息。WebSocket 协议它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送技.原创 2021-03-19 14:29:51 · 176 阅读 · 0 评论 -
HTTP协议通信过程
参考:https://www.cnblogs.com/ghl1024/p/12080532.html 了解HTTP HTTP(HyperText Transfer Protocol)是一套计算机通过网络进行通信的规则。计算机专家设计出HTTP,使HTTP客户(如Web浏览器)能够从HTTP服务器(Web服务器)请求信息和服务。HTTP使用内容类型,是指Web服务器向Web浏览器返回的文件都有与之相关的类型。所有这些类型都被模型化,即Web服务器告诉Web浏览器该文件所具有的种类,是文档、GIF原创 2021-03-18 10:03:40 · 546 阅读 · 0 评论 -
tcp的三次握手、四次挥手
参考:https://blog.csdn.net/cuteyDan/article/details/79690098?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&dist_request_id=&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMa.原创 2021-03-14 15:30:39 · 263 阅读 · 0 评论 -
HTTP和TCP之间的关系
参考:https://blog.csdn.net/weixin_40784198/article/details/81434530四层:应用层、传输层、数据链路层、物理层互联网的模型被分为4层,从上至下每一层都依赖其底层协议。换言之,Application(应用层) 的协议操作成功的前提是Transport(运输层)的存在。没有运输层就没有应用层。好比没有任何道路的前提下就没有汽车可以行驶。而这种层次上的抽象是让开发者在设定某个层面的协议时不去考虑其他层面的问题。比如我要在运输层设计协议时,我唯原创 2021-03-12 13:57:24 · 321 阅读 · 0 评论 -
TCP/IP协议四层
TCP/IP协议包括链路层、网络层、传输层、应用层。TCP/IP协议(传输控制协议/互联网协议)不是简单的一个协议,而是一组特别的协议,包括:TCP,IP,UDP,ARP等,这些被称为子协议。在这些协议中,最重要、最著名的就是TCP和IP。因此,大部分网络管理员称整个协议族为“TCP/IP”。分层:计算机网络中,实际应用的网络协议是TCP/IP协议族,TCP/IP的应用层大体上对应着OSl/RM模型的应用层、表示层和会话层,TCP/IP的网络链路层对应着OSI/RM的数据链路层和物理层,而传输层和原创 2021-03-12 12:40:54 · 7442 阅读 · 0 评论 -
nodejs导入模块
目录如下:$ tree.|-- src| |-- MyEntry.js| `-- people| |-- family| | `-- family.js| |-- man| | `-- son.js| `-- woman| `-- daughter.js`-- tsconfig.json5 directories, 5 filesson.jsmodule.exports原创 2021-03-03 16:29:13 · 839 阅读 · 1 评论 -
JS中的立即执行函数写法
例子://立即执行函数(function shengming(x) { console.log("shengming like " + x);})("立即执行方法1");//shengming like//立即执行函数(function aaa(x) { console.log("aaa " + x);}("立即执行方法二"));var biaodashi = "hfjekwlfej";//定义函数function bbb(biaodashi) { c.原创 2021-02-28 13:15:46 · 955 阅读 · 1 评论 -
Javascript中AMD规范下requirejs实现模块化编程
JS中模块化编程方法,就用实现了AMD的requireJS做例子。下载requireJS放到项目根目录下在html中加入引入require.js的代码my.html中data-main后面跟随的就是我的入口JS,相当于其它语言中的main<!DOCTYPE html><html><head></head><body> <h3>title1:</h3> <p id=".原创 2021-02-24 14:20:29 · 310 阅读 · 0 评论 -
JS中的CommonJS和AMD
参考:https://www.cnblogs.com/moxiaowohuwei/p/8692359.htmljs中function立即执行函数两种写法:(function (p1, p2) { console.log("p1 ", p1, ", p2 ", p2);})(38, 292);(function (p3, p4) { console.log("p3 ", p3, ", p4 ", p4);}(83, 22));结果:$ node MyEntry.js原创 2021-02-18 19:10:44 · 460 阅读 · 0 评论 -
js的删除和插入
let myArray = [11, 22, 33];console.log('原数组:', myArray); //原数组: [ 11, 22, 33 ]myArray.push(44, 55);console.log('用push在数组后面插入元素:', myArray); //用push在数组后面插入元素: [ 11, 22, 33, 44, 55 ]myArray.unshift(66, 77);console.log('用unshift在数组前面插入元素:', myArray); //.原创 2021-01-16 16:50:17 · 210 阅读 · 0 评论 -
js中Promise.all、Promise.race
一、Pomise.all的使用Promise.all可以将多个Promise实例包装成一个新的Promise实例。同时,成功和失败的返回值是不同的,成功的时候返回的是一个结果数组,而失败的时候则返回最先被reject失败状态的值。Promse.all在处理多个异步处理时非常有用,比如说一个页面上需要等两个或多个ajax的数据回来以后才正常显示,在此之前只显示loading图标。需要特别注意的是,Promise.all获得的成功结果的数组里面的数据顺序和Promise.all接收到的数组顺序是.原创 2021-01-15 13:23:03 · 248 阅读 · 0 评论 -
js中的Promise.all、Promise.race
一、Pomise.all的使用Promise.all可以将多个Promise实例包装成一个新的Promise实例。同时,成功和失败的返回值是不同的,成功的时候返回的是一个结果数组,而失败的时候则返回最先被reject失败状态的值。需要特别注意的是,Promise.all获得的成功结果的数组里面的数据顺序和Promise.all接收到的数组顺序是一致的,即p1的结果在前,即便p1的结果获取的比p2要晚。这带来了一个绝大的好处:在前端开发请求数据的过程中,偶尔会遇到发送多个请求并根据请求顺序获取和使用数原创 2021-01-13 18:11:08 · 1277 阅读 · 0 评论 -
js中的promise和async
promise异步类 参考:https://www.runoob.com/js/js-promise.htmlPromise 类有 .then() .catch() 和 .finally() 三个方法,这三个方法的参数都是一个函数,.then() 可以将参数中的函数添加到当前 Promise 的正常执行序列,.catch() 则是设定 Promise 的异常处理序列,.finally() 是在 Promise 执行的最后一定会执行的序列。 .then() 传入的函数会按顺序依次执行,有任何异常都..原创 2021-01-12 18:57:02 · 1082 阅读 · 0 评论 -
JS中的Date用法
const log = console.log;let old = Date.now();let d = new Date(old)let oa = [d.getFullYear(), d.getMonth(), d.getDate(), " ", d.getHours(), d.getMinutes(), d.getSeconds()];log("old ", oa.join(":"));setTimeout(function() { let d = new Date(); .原创 2021-01-08 16:19:13 · 138 阅读 · 0 评论 -
js中window和location、document
代码把te2.html放到tomcat里,网络访问一下试试:访问地址:http://localhost:8080/testjs/te2.html?ku=yourname&ka=yourage<!DOCTYPE html><html><head> <meta charset="utf-8" content="免费"> <!-- <meta http-equiv="refresh" content="3">原创 2021-01-05 17:53:29 · 322 阅读 · 0 评论 -
JS中的展开语法、剩余参数
就是"...array",把array拆开用逗号间隔。例子:const log = console.log;let ps = "heklelkwe";function spread(p) { log("spread ", ...p);}spread(ps);结果:$ node for.jsspread h e k l e l k w e参考:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Re原创 2020-12-29 15:52:20 · 1407 阅读 · 0 评论 -
JS中的==、===、Object.is区别
参考:https://blog.csdn.net/hezuco/article/details/80461371==:等于。 ===:严格等于。 Object.is():加强版严格等于。var a = 3; var b = "3"; a==b; // truea===b; // false,因为*a*,*b*的类型不一样 Object.is( a, b ); //false,因为*a*,*b*的类型不一样 ===,这个比较简单,只需要利用下面的规则来判断两个值是否恒等就行原创 2020-12-25 15:18:15 · 225 阅读 · 0 评论 -
JS中Array.map
JS中Array.maplet array2 = array1.map(function deal(num){xxx}):将array1数组中的元素用deal函数挨个处理,生成新的数组array2。array1没有改变。例子:const log = console.log;let numbers = [4, 9, 16, 25];function add3(num) { return num + 3;}log(numbers.map(add3));log("nu.原创 2020-12-24 15:26:18 · 186 阅读 · 0 评论 -
js属性的可枚举性和所有权
参考:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Enumerability_and_ownership_of_properties可枚举属性是指那些内部 “可枚举” 标志设置为true的属性,对于通过直接的赋值和属性初始化的属性,该标识值默认为即为true,对于通过Object.defineProperty等定义的属性,该标识值默认为false。可枚举的属性可以通过for...in循环进行遍历(除非该属性名是一个Sy...原创 2020-12-24 14:28:48 · 106 阅读 · 0 评论 -
js原型
参考:http://blog.itpub.net/29900383/viewspace-1827359/__proto__是每个对象都具有的属性(在W3C标准的浏览器中,我们才可以直接访问);prototype是每个function对象都具有的属性;然而,constructor确是原型对象而非普通实例对象具有的属性,系统自动为原型对象预添加的。const log = console.log;function Person(pname) { this.name = pname;}原创 2020-12-23 16:45:09 · 134 阅读 · 0 评论 -
JS中prototype与Object.create
js中的Object.create例子:const log = console.log;let parent = { kp1: "vp1", kp2: "vp2" };let son = { ks1: "vs1", ks2: "vs2" };Object.setPrototypeOf(son, parent);log("keys = ", Object.keys(son));log("values = ", Object.values(son));log("getOwnProperty原创 2020-12-23 13:26:43 · 508 阅读 · 0 评论 -
js中globalThis
参考:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/globalThis全局属性globalThis包含全局的this值,类似于全局对象(global object)。例子:const log = console.log;function canMakeHTTPRequest() { return globalThis;}console.log(canM...原创 2020-12-22 17:28:49 · 858 阅读 · 0 评论 -
js中string与base64互转
使用atob和btoa都提示未定义。发现Buffer可以转例子:const log = console.log;let buffer = new ArrayBuffer(0);let s2b = Buffer.from("a").toString("base64");log(s2b, ", typeof = ", typeof(s2b));log(Buffer.from(s2b, "base64").toString());结果:$ node for.jsYQ== ,原创 2020-12-22 17:12:05 · 2008 阅读 · 0 评论 -
js中三个点用法、yiled*用法
在javascript中“...”的作用:将一个数组转为用逗号分隔的参数序列。const log = console.log;var arr1 = [0, 1, 2];var arr2 = [3, 4, 5];arr1.push(...arr2);log(arr1);log(arr2);log("max = ", Math.max.apply(null, [14, 3, 77]));log("max = ", Math.max(...[14, 3, 77]));let a1 = [原创 2020-12-22 14:33:05 · 933 阅读 · 0 评论 -
js中generator生成器
generator由function*定义generator(生成器)是ES6标准引入的新的数据类型。一个generator看上去像一个函数,但可以返回多次。与函数的不同之处generator和函数不同的是,generator由function*定义(注意多出的*号),并且,除了return语句,还可以用yield返回多次。next()方法会执行generator的代码,然后,每次遇到yield x;就返回一个对象{value: x, done: true/false},然后“暂停”。返回的原创 2020-12-21 16:01:41 · 180 阅读 · 0 评论 -
js中Date和Infinity
参考:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Infinity例子:const log = console.log;log("begin ", Date.now() / 1000);setTimeout(function() { log("last ", Math.floor(Date.now() / 1000));}, 3000);let d = new原创 2020-12-21 11:49:29 · 174 阅读 · 0 评论