@new: hsl(hue(@old), 45%, 90%);
hsl: h:代表的是色相,s:代表的是饱和度,l:代表的是明度
@new会有hue(@old)的色调,但是饱和度和亮度不一样
es6模块和commonjs的差异
- CommonJS 模块输出的是一个值的拷贝,ES6 模块输出的是值的引用。
- CommonJS 模块是运行时加载,ES6 模块是编译时输出接口。
script加载
script默认是同步加载:先下载,然后执行(暂停渲染)
defer 和 async都是异步下载:
defer:先下载等页面渲染结束后再按顺序执行
async:下载完就执行,无法保证执行顺序
js class的继承
class A {
}
class B {
}
// B 的实例继承 A 的实例
Object.setPrototypeOf(B.prototype, A.prototype);
// B 的实例继承 A 的静态属性
Object.setPrototypeOf(B, A);
const b = new B();
Object.setPrototypeOf = function (obj, proto) {
obj.__proto__ = proto;
return obj;
}
Thunk Generator 小记
// Thunkify 源码
function thunkify(fn) {
return function() {
var args = new Array(arguments.length);
var ctx = this;
for (var i = 0; i < args.length; ++i) {
args[i] = arguments[i];
}
// yield 执行完后实际上返回的是一个function
return function (done) {
var called;
// 增加回调方法
args.push(function () {
if (called) return;
called = true;
// timeout计时结束后调用value传进来的方法
done.apply(null, arguments);
});
try {
// 执行最开始的读文件的方法
fn.apply(ctx, args);
} catch (err) {
done(err);
}
}
}
};
var readFile = function (name, callback) {
setTimeout(() => callback(null, name), 1000);
}
var readFileThunk = thunkify(readFile);
var gen = function* (){
var t1 = yield readFileThunk('test1');
console.log(t1.toString());
var t2 = yield readFileThunk('test2');
console.log(t2.toString());
}
//var g = gen();
//var r1 = g.next();
var run = function (fn) {
var g = fn();
var next = function (err, data) {
// 一个操作结束的回调
var result = g.next(data);
if (result.done) return;
// value是一个function
// 执行这个value方法,并且传入一个next方法
result.value(next);
}
next();
}
run(gen);
js反射
Reflect将一些操作对象的方法放到Reflect上:
eg:给obj增加toString方法
- Reflect.apply(Function.prototype.toString, obj, args)
- Function.prototype.toString.apply(obj, args) (函数对象)
数组去重
[...new Set(array)]
Null 传导运算符
a?.b
a是否有b属性,如果有就往下执行
js 原型笔记
function A() {
this.a = 'a';
}
A.prototype.b = 'b';
var a = new A();
console.log(a.a);
var b = {};
b.__proto__ = A.prototype;
A.call(b);
console.log(b.a);
__proto__指向创建该对象的构造函数的原型对象
prototype指向构造函数的原型对象
electron修改下载源
修改.npmrc文件
electron_mirror=https://npm.taobao.org/mirrors/electron/
registry=https://registry.npm.taobao.org
