- 博客(17)
- 收藏
- 关注
原创 waitgroup的微妙之处
其实我之前理解说waitgroup的add和done无法同步,当时就觉得很奇怪for(i = 1;i <3 ;i++){add(3)go func(){done}()wait}看过源码的都知道,done其实就是add,那么如果说我协程运行的很快,比方说我现在第一个协程都运行完了,然后我去做这个wait,那这算不算同步呢??再比方说吧for(3){go fu...
2019-11-09 19:42:47 212
原创 go readfile详解buffer
需要判断到底是文件不存在还是其他原因注意:当文件不存在的时候返回的err是nil。这里返回的data是[]byte。func readAll(r io.Reader, capacity int64) (b []byte, err error) { var buf bytes.Buffer // If the buffer overflows, we will get bytes.ErrT...
2019-11-09 17:09:40 756
原创 js数组对象去重
function(array){var obj = {};return array.filter(function(value, index)=>{return obj.hasOwnProperty(typeof item + JSON.stringify(item)) ? false : (obj[typeof item + JSON.stringify(item)] = tr...
2019-08-23 18:54:01 280
原创 数组扁平化
function flat(){array = []for(var i = 0;i < arr.length;i++){if(Array.IsArray(arr[i]))array.concat(flat(arr[i]))elsearray.push(arr[i]);}return array}
2019-08-23 16:01:32 140
原创 bind的原生实现
function.prototype.mybind = function (othis){var arr = Array.prototype.slice.call(argumets, 1);var self = this;var found = function(){return self.call(this instanceOf found ? this :self, arr.con...
2019-08-20 13:51:51 205
原创 ES6的class中的extends是如何实现的?
来个原生的函数class Parent{constructor(name, number){this.name = name;this.number = number;return {number:number;}}}class Child{constructor(name,age,number){super(name,number);this.age = age;...
2019-08-20 12:06:50 505
原创 promise实现异步并行和异步串行
异步并行promise.all(pronises);确保操作能并行执行,但是缺点,只要一个失败那就完蛋;可以改进const arr = [name1, name2, neme3];all.map(functin(id){return new Promise(function(resolve, rejict){}).then((data)=>{array.push(data)})....
2019-08-19 10:22:56 858
原创 js排序(快速排序,插入排序, 堆排序)
插入排序,平均和最坏均为O(N ^ 2),若已经预先排序好, 那么为O(N)void Insertionsort(array){var N = array.length;for(var i = 1; i < N; i++){var tmp = array[i];//检测array[i]找到满足array[i] > array[i - 1]的, 不符合的前移, j >...
2019-08-17 18:59:47 155
原创 js中的class如何转移成ES5呢
var Person = function(){function Person(name,age){if(!(this instanceof Person))throw Error(“Must Use NEW”);this.name = age;this.age = age;}_prototype(Person,[{key:“saynothing”, value:function ...
2019-08-17 12:07:39 829
原创 从BFC到浮动到定位
详解一个块级BFC的内部当然有普通的盒子,其中普通的盒子内部又有BFC块。注意,是folat的高度参与BFC的计高度算,不代表所有BFC都能参与计算。两个BFC区域不会重叠。当然说的是相邻的BFC...
2019-08-16 16:47:11 101
原创 css绘制图形
一定要设置border-style,不然默认为noneborder-width有默认值通过border-radius设置弧度。。通过background和background-clip显示背景颜色,主要background-clip可选择content-box,padding-box,margin-box。都没毛病,注意当然background背景的颜色被边框覆盖。如果统一设置了bor...
2019-08-15 19:49:01 125
原创 找出数组中重复出现的元素
function remove(arr){var new_arr = [];var new_arr2 = [];arr.forEach((val, index)=>{//new_arr是对数组去重if(new_arr.indexOf(val) === -1){new_arr.push(val);}else //对重复的元素本身去重{if(new_arr2.indexO...
2019-08-15 16:38:57 692
原创 js实现事件机制
function Emitter() {this._listener = [];}Emitter.prototype.bind = function(eventName, callback) {//每一个_listener中为[callback1,callback2];var listener = this._listener[eventName] || [];listener.pus...
2019-08-15 13:00:53 286
原创 reactjs源码解析-createElement
const RESERVED_PROPS = {key: true,ref: true,__self: true,__source: true,};const ReactElement = function(type, key, ref, self, source, owner, props) {const element = {// 此标记允许我们将其唯一标识为React元素...
2019-08-14 11:02:08 126
原创 寄生组合继承
function Parent(age:number){this.age= age;this.sayAge=function(){console.log(this.age);}}Parent.prototype.sayParent = function(){alert(“this is parentmethod!!!”);}function children(age:...
2019-08-13 20:21:01 114
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人