Skip to content

Latest commit

 

History

History
69 lines (54 loc) · 1.99 KB

张鹏-20180701.md

File metadata and controls

69 lines (54 loc) · 1.99 KB

leetcode 算法题

删除排序数组中的重复项

var removeDuplicates = function(nums) {
    var j = 0;
    for(var i=0; i<nums.length; i++) {
        if(nums[i] != nums[j]){
            j++;
            nums[j] = nums[i];

        }
    }

    return j+1;
};

英文技术文章

javascript

javascript 中包含原始类型,对象,还有函数。

  • 原始类型:Number,boolean,string,undefined,null(文章中没有提到 NaN)
  • 对象:一个动态的键值对集合
  • 原始类型 VS 对象:原始类型不可变,对象可变

小知识点:

  1. 变量可以使用 var,let,const 定义。var 定义的变量是函数作用域,let 定义的是块级作用域。
  2. JavaScript 中的对象继承是通过原型链模式。
  3. javascript 是单线程,函数执行是通过事件队列执行,所以单个函数不能执行太久,否者浏览器会卡死

技术技巧

使用 promise+generate 模拟 ES7 的 aync,await

function run(gen){
    var args = [].slice.call(arguments ,1) ,it;
    it = gen.apply(this, args);

    return Promise.resolve()
        .then(function handleNext(value) {
            var next = it.next(value);
            return (function handleResult(next){
                if(next.done) {
                    return next.value;
                }
                else {
                    return Promise.resolve(next.value)
                        .then(
                            handleNext,
                            function handleErr(err){
                                return Promise.resolve(
                                    it.throw(err)
                                )
                                .then(handleResult)
                            }
                        )
                }
            })
        })
}

这是段神奇的代码!