大师网-带你快速走向大师之路 解决你在学习过程中的疑惑,带你快速进入大师之门。节省时间,提升效率

key社

Key是ビジュアルアーツ(Visual Art's)旗下的一个品牌,创立于1998年7月21日,是日本大阪市的一所游戏制作公司,以制作感人的Galgame而著称于业界。Key的游戏剧情充满幻想与温情,其充满张力的剧情总是能令人感动得泪流不止,也正因为如此,Key的游戏都被称作为泣きゲーム(令人哭泣的游戏)。由于Key也被叫做“键”,因此在爱好者人群中,Key与Leaf会社(“叶”)常常并称为“键叶”或“叶键”(网上主要使用后者)。而Key迷则被称作是“键っ子”。

ES6 -- 变量的解构赋值

ES6 -- 变量的解构赋值 解构赋值的应用: 1、变量交换 var x = 1 var y = 2 var [x, y] = [2, 1] 2、函数值返回 function f() { return [1, 2] } 3、Json 对象获取 obj = { a: 'a', b: [1, 2, 3], c: { a: '1', b: '2' } } var {a, b, c} = obj 4、函数参数的默认设置 Jquery.ajax = function (url,{ async = true, beforeSend = function () {}, cache = true, complete = function () {}, crossDomain = fase, global = true }) { // .

javaScript循环总结(for,for-in,for-of,forEach,map,filte

arr.length; }, arr) arr: arr // [1, 4, 9] 如果这个参数不指定,则使用全局对象代替(在浏览器是为window),严格模式下甚至是undefine map array.map(function(item, index, arr), thisValue) map的用法和forEach几乎一样,只不过,map的callback必须有return值,如果没有return,得到的结果都为undefined;写法跟上面的filter几乎一样,但是返回的结果,这里是布尔值,也就是说是否满足条件,filter返回的是满足条件后的结果;

Immutable 详解及 React 中实践

Immutable 详解及 React 中实践 1.immutable.js 在React、Redux中的实践以及常用API简介https://yq.aliyun.com/articles/69516 2.# immutableJS一些API 3.https://www.w3cplus.com/javascript/immutable-js.html Immutable.js 的 API 主要包含以下几部分: formJS(),将 JavaScript Object 和 Array 彻底转换为 Immutable Map 和 List is(),与 Object.is() 类似都是对值的比较,但它会将 Immutable Iterable 视为值类型数据而不是引用类型数据,如果两

react-native-storage文档介绍

react-native-storage文档 //load 读取 storage.load({ key: 'user', id: '1001' }). //同步远程数据(刷新) storage.sync = { // sync方法的名字必须和所存数据的key完全相同 // 方法接受的参数为一整个object,所有参数从object中解构取出 // 这里可以使用promise。或是使用普通回调函数,但需要调用resolve或reject。 user(params){ let {id, resolve, reject, syncParams: {extraFetchOptions, someFlag}} = params;

React源码学习——ReactElement.createElement

React源码学习——ReactElement.createElement 最近在学习React的源码,从比较简单的创建ReactElement开始学起,以下是今天要啃的源码,可能有些地方还不是很深入,相信随着了解的增多,对react的理解也会更加深入: ReactElement.createElement = function (type, config, children) { var propName; } } } } return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);

为什么写动态循环组件时要给动态子项加key值

为什么写动态循环组件时要给动态子项加key值 写动态子组件时,如果没有给动态子项添加key prop,则会报一个警告: warning:Each child in an array or iterator should have a unique "key" prop.Check the render method of 'APP'. 这个警告指的是,如果每一个组件是一个数组或迭代器的话,那么必须有一个唯一的key prop。那么这个key prop是做什么的? 思考.

ES6通过WeakMap解决内存泄漏问题

// MapIterator {"foo" = 11, "bar" = 22, "mazey" = 413} m.forEach((value, key, map) = { console.log("键:%s,值:%s", key, value); // true 三、通过WeakMap解决内存泄漏问题 当使用Dom对象绑定事件时,Dom对象消失后若没有及时释放内存(置null),便会一直存在内存中。 使用WeakMap保存Dom对象不会出现这样的问题,因为Dom对象消失后,JS的垃圾回收机制便会自动释放其所占用的内存。 按钮 let wm = new WeakMap();

vue2.0学习-方法轮子(持续佛系更新)

vue2.0学习-方法轮子(持续佛系更新) 排序方法 sort() 在使用时附加方法,解决类似于这样的排序bug:23,3,35 function sortNumber(a,b){ return a-b } 即使用时是:sort(sortNumber) 原生的对象形式的数组排序方法 //数组对象方法排序: function sortByKey(array,key){ return array.sort(function(a,b){ var x=a[key]; var y=b[key]; } 对象形式的数组排序方法 用法: sortByKey(this.students,'age');

统计字符串

统计字符串 一:统计每个字符出现的次数 /* * 统计各个字符出现的次数 * 思路: * 1. 定义一个空对象 * 2. 循环数组,如果对象的key存在,就给这个key的值+1,否则key的值就为1 * */ function count(str){ let obj = {} let countArr = [] let result = {} for(let i=0;length-1 return len } console.log(count1(str,"j")) 方法二: console.log(("jj222ddd".i =2){ console.log("第一个重复的是:"+key); break } } } firstRepeat("112fff4")

数组去重

数组去重 数组去重是将数组中重复的元素 一:Set对象 /* * Set():一组key的集合,不存储value,因为key不能重复,所以set会直接过滤掉相同的元素 * 需要提供一个arr作为输入或者直接直接创建一个空set对象 * * */ var arr = [1,1,2,3,4,1,2,5] console.log([. for(let i=0;i arr.length;j uniqueArr.length;j++){ if(arr[i]===uniqueArr[j]){ repeat=true;repeat){ uniqueArr.push(arr[i]) } } return uniqueArr } console.log(unique(arr))

localStorage

window.localStorage){ alert("浏览器不支持localStorage"); lstorage.age = 12; console.log(typeof lstorage['name']) // string console.log(typeof lstorage['age']) // string console.log(typeof lstorage['job']) // string // 关于打印出string类型:因为localStorage只支持string类型 3. 读取数据 if(! // 读取数据 console.log(lstorage.name) // 小明 console.log(lstorage["age"]) // 12 console.log(lstorage.getItem("job")) // student } 4. 修改数据 if(!i lstorage.length;

解析vue2.0的diff算法

== ch) { updateChildren(el, oldCh, ch) }else if (ch){ createEle(vnode) //create el's children dom }else if (oldCh){ api.removeChildren(el) } } } const el = vnode.el = oldVnode.el 这是很重要的一步,让vnode.el引用到现在的真实dom,当el修改时,vnode.el会同步变化。 节点的比较有5种情况 if (oldVnode === vnode),他们的引用一致,可以认为没有变化。 if(oldVnode.text ! null : newCh[newEndIdx + 1].

缓存常见问题及分析

setCache(key, retValue); } 如果使用本地缓存,可以用guava代替上述功能,guava默认支持多线程的并发访问。 Cache cache = CacheBuilder.newBuilder(). try { cache.get(key, new Callable () { @Override public Object call() throws AnyException { return getFromDB(key);

数据库主从一致性问题

数据库主从一致性问题 背景 上一篇我写了为了处理高并发带来的数据库压力问题,引出了数据库读写分离技术。其思想总结为:一主多从、读写分离,冗余多个读库。然而存在一个明显的问题就是:从数据库同步数据的同时可能给业务方返回的是旧的数据,即所谓的脏读现象。如图所示: image.png 【1】系统先对Master-DB进行了一个写操作,写主库;

Json对象平铺展开key

Json对象平铺展开key https://stackblitz.com/edit/json-object-unfold-key-value keyValue.js const obj = {}; export function getKey(v, k = '') { for (const key in v) { let rKey = k + key; if (k.indexOf('[') !== -1) { rKey += ']' } if (v[key] instanceof Array) { this.getKey(v[key], `${rKey}[`); } else { obj[rKey] = v[key]; } } return obj; } test.ts const { name:'124', ang: 1, arr: [1, 2, 3, 4, 5, 6], arrs: [['a', 'b'], ['c', 'd']] } console.log(v, getKey(v));

angular5.0封装underscore常用pipe并发布到npm全套流程

flatten(value); } } 使用 {{item.key}}:{{item.item}} invert 把object的每个key-value来个交换,key变成value,value变成key import { Pipe, PipeTransform } from '@angular/core'; } } 使用 {{item}} sample 随机选择一个或多个元素: import { Pipe, PipeTransform } from "@angular/core";git commit -m 'push to save' git push origin master" }, "peerDependencies": { "@angular/core": "*", "@angular/common": "*", "rxjs": "*", "underscore": "*" }, "ngPackage": { "$schema": ".

活用JS中的call、apply

var data2 = { "a": 4, "b": 5, "c": 6 }; console.group(data1); this.info[key] : " ") } }, words: function(str) { this.word.push(str) }, say: function() { let wLimit = this.info["words-limit"] str = this.info["fullname"] + this.info["words-emote"] + ':"' for(let i=0;")[1]) s = "{" + (s.replace(/(\=)(\w*)/g,':$2'). return data //+++++++++++答题结束+++++++++++ } try { var url1 = "http://www.abc.com/m/s/#page/2/? var url3 = "http://www.abc.com/m/s/#page? console.info(urlParser(url2));

JS对象克隆

[] : {} for (let key in obj) { if (obj[key] instanceof Object) { //判断对象中是否还有对象,有,继续递归 o[key] = clone2(obj[key]) } else { o[key] = obj[key] //只要不是对象就直接放进去 } } return o } // 代码再优化 function clone3(obj) { let o = obj instanceof Array ?

数组去重

= 0) { j = newArr.length while (--j = 0) { flag = this[i] !flag) { break } } flag newArr.push(this[i]) } return newArr.reverse() } 对象去除法 Array.prototype.unique2 = function () { let newArr = [], obj = {}, len = this.length for (let i = len - 1;*\1)/ig) arr1.forEach(item = { /[a-zA-z]/. newArr.push(item) : newArr.push(parseInt(item)) }) return newArr } console.log(arr.unique6()) 通过数组indexOF方法实现去重 Array.prototype.unique7 = function(){ var arr = [] for(var i=0;

如何实现VM框架中的数据绑定

var isTypeMatch = (data typeof data === "object"); }, /* 根据key来执行绑定在这个key上的所有函数,比如说person.age.range这个key, 它变动的时候,publish会执行绑定在person.age.range这个key上所有的function */ publish: function(key, newVal) { (this.subs || []). }, //给model中的某个key(例如person.age.range)添加绑定的function subscribe: function(key, callback) { var tgIdx;actionList = [callback]; if (removeIdx ! //渲染node });