javascript
withwz_
逆了苍天,踏破碧落黄泉
展开
-
前缀Trie 实现类似百度搜索的提示的站内搜索
实现一个站内导航搜索引子前缀Trie, 又叫字符Tire, trie来自单词retrieval, 一开始念作tree,后来改念try, 毕竟它与树是不一样的东西。网上许多文章都搞混了trie与树。 trie是通过”边“来储存字符的一种树状结构,所谓边就是节点与节点间的连接。trie每条边只能存放一个字符。它与hash树很相似,或者说它是哈希树的变种,哈希树是用边来存放一个整数(可以是一位数或两位数)。前树Tire与哈希树都是多叉树,换言之,父节点有N个子节点。前缀Tire主要用于字符串的快速检.原创 2020-05-17 14:34:38 · 758 阅读 · 0 评论 -
await 多级调用不起作用?
本意是先判断邮箱有没注册再加密密码再存储到数据库代码router.post("/register", async ctx => { const findResult = await User.find({ email: ctx.request.body.email }) if (findResult.length > 0) { ctx.status =...原创 2019-07-13 22:09:23 · 1841 阅读 · 0 评论 -
js对象的深拷贝和数组的深拷贝
对象的深拷贝对象是引用类型直接复制是复制的地址,修改的还是会在原对象上表现出来,用JSON.parse(JSON.stringify(a))做深拷贝let a = { number:1, gender:"male", name:"wz" } let b = a b.number = 2 console.log(a,b) let a = { ...原创 2019-07-14 15:43:23 · 158 阅读 · 0 评论 -
js处理异步的几种方式
1、回调函数封装了异步操作的函数接受一个匿名函数作为参数,当异步操作执行完后调用这个传递进来的匿名函数;function getData(callback){ setTimeout(() => { let name = 'xxx' callback(name) }, 1000);}getData((d)=>{ console.log(d)})缺...原创 2019-08-04 14:37:14 · 4624 阅读 · 0 评论 -
理解reduce方法,手写一个reduce方法
代码比白话更容易解释了…Array.prototype.myReduce = function (f, value=0) { for (let i = 0; i < this.length; i++) { value = f(this[i], value) } return value}let data = [4,8,15,16,23,42]let add =...原创 2019-08-06 19:20:34 · 2146 阅读 · 0 评论 -
js new运算符的本质
文章目录两个辅助函数测试完整代码两个辅助函数Function.prototype.method = function (name, func) { this.prototype[name] = func; return this;}Object.create = function (o) { var F = function () { }; F.proto...原创 2019-08-23 23:45:58 · 192 阅读 · 0 评论 -
JavaScript 严格模式(use strict)
啊原创 2019-08-12 20:05:56 · 119 阅读 · 0 评论 -
闭包
闭包的定义闭包包含自由(未绑定到特定对象)变量,这些变量不是在这个代码块内或者任何全局上下文中定义的,而是在定义代码块的环境中定义(局部变量)。 -----百度百科在日常JavaScript的代码编写中闭包是非常普遍的,只不过这种使用方法太普通了,我们并没有注意到。如果java程序员转的JavaScript一定会惊叹这种强大灵...原创 2019-08-21 19:29:01 · 126 阅读 · 0 评论 -
let和const 的变量提升
let和const生命虽然看上去是执行到了才会生效,但是实际上,他们还是会被预处理。如果当前作用域内有生命,就无法访问到外部的变量。const a = 2;if(true){ console.log(a) const a = 1}在这段代码中如果if里的a不提升则打印的是a=2,外边的2,但报的a是未定义,所以const虽说是不提升但还是被预处理了...原创 2019-06-19 13:40:34 · 2883 阅读 · 0 评论 -
js时间戳转时间
console.log(data.order.create_time, "转换前"); function getLocalTime(nS) { return new Date(parseInt(nS) * 1000) .toLocaleString() .replace(/:\d{1,2}$/, " "); } c...原创 2019-06-14 15:05:19 · 882 阅读 · 0 评论 -
原型__proto__和prototype
1.在JS里,万物皆对象。方法(Function)是对象,方法的原型(Function.prototype)是对象。因此,它们都会具有对象共有的特点。即:对象具有属性__proto__,可称为隐式原型,一个对象的隐式原型指向构造该对象的构造函数的原型,这也保证了实例能够访问在构造函数原型中定义的属性和方法。 2.方法(Function) 方法这个特殊的对象,除了和其他对象一...原创 2018-12-01 11:38:04 · 134 阅读 · 0 评论 -
js创建对象的几种方式
new一个Object的实例实例化一个Object对其添加属性和方法var person = new Object();person.name = &amp;amp;quot;wz&amp;amp;quot;;person.age = 21;person.sex = &amp;amp;quot;male&amp;amp;quot;;person.sayName = function(){ alert(&amp;原创 2018-11-25 10:17:39 · 6749 阅读 · 0 评论 -
原型继承
function Student(name) { this.name = name; this.hello = function () { alert('Hello, ' + this.name + '!'); } } // PrimaryStudent构造函数: function PrimaryStud...原创 2018-12-02 09:28:36 · 89 阅读 · 0 评论 -
js箭头函数的this指向
var x = 11; var obb = { x: 222, y: { x:333, obc: function f() { console.log(this) var x ...原创 2019-03-01 12:09:56 · 16346 阅读 · 4 评论 -
js数组操作常用的方法,删除指定元素、去除空值、是否包含另一个数组、去重
1、从数组中删除某一个指定的元素Array.prototype.remove = function(val) { let index = this.indexOf(val); if (index > -1) { this.splice(index, 1); } };2、去除数组中的空值function bouncer(arr) { /...原创 2019-05-02 22:00:27 · 1073 阅读 · 0 评论 -
浏览器复制console.log打印的对象
在Network复制对象是一样的找到想要复制的对象右键 store as global variable在弹出的console中copy temp1ctrl+v出来咯~原作者:http://www.cnblogs.com/fiy-noob/p/9776973.html...原创 2019-05-16 21:26:01 · 6999 阅读 · 1 评论 -
javascript操作原型实现继承
如果所有对象都有私有字段 [[prototype]],就对象的原型读一个属性,如果对象本身没有,则会继续访问对象的原型,直到原型为空为止从 ES6 以来,JavaScript 提供了一系列内置函数来操控原型Object.create 根据指定的原型创建新对象,原型可以使null;Object.setPrototypeOf 设置一个对象的原型;利用这三个方法,我们可以完全抛开类的思...原创 2019-05-25 20:29:26 · 127 阅读 · 0 评论 -
js字符串时间相减得出相减的天数
console.log('时间',params.bg_date, params.end_date) function DateMinus(date1, date2) { //date1:小日期 date2:大日期 var sdate = new Date(date1); var now = new Date(date2); var da...原创 2019-05-27 11:18:31 · 1203 阅读 · 0 评论 -
js数组操作
Js中的数组是一种特殊的对象,用来表示偏移量的索引是该对象的属性。文章目录一、对于数组的整体性操作二、数组的存取操作查找元素数组的字符串表示由已有数组创建新数组三、可变函数为数组添加元素从数组中删除元素从数组中间添加和删除元素为数组排序四、迭代器方法不生成新数组的迭代器方法生成新数组的迭代器方法一、对于数组的整体性操作对于数组的操作实际操作的是数组的索引var nums = [];for...原创 2019-01-13 15:42:15 · 9999 阅读 · 0 评论