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 中包含原始类型,对象,还有函数。
- 原始类型:Number,boolean,string,undefined,null(文章中没有提到 NaN)
- 对象:一个动态的键值对集合
- 原始类型 VS 对象:原始类型不可变,对象可变
小知识点:
- 变量可以使用 var,let,const 定义。var 定义的变量是函数作用域,let 定义的是块级作用域。
- JavaScript 中的对象继承是通过原型链模式。
- 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)
}
)
}
})
})
}
这是段神奇的代码!