10 2022 档案
摘要:好看的效果 参考链接 1.复选框: 思路是使用复选框并进行隐藏,然后自己写一个div,并且用:before来放进div复选框这,不少地方采用绝对定位,在:checked时更改对应颜色。 <div class="container"> <h2>To it</h2> <ul> <li> <input t
阅读全文
摘要:SIMD "单指令,多数据",主要用在3D图形运算,物理模拟等项目中。 //可以实现数组的一次性相加 var a = SIMD.Float32x4(1, 2, 3, 4); var b = SIMD.Float32x4(5, 6, 7, 8); var c = SIMD.Float32x4.add(
阅读全文
摘要:同步遍历器的问题 在迭代器的实现方法中,next()内部只能同步操作,出现异步操作会有问题,需要异步遍历器,其next方法会返回一个Promise对象,异步遍历器部署在Symbol.asyncIterator属性上。 //可以对应地放到await后面 const asyncIterator = as
阅读全文
摘要:编程风格 let取代var 尽量使用const(全局特别如此) 静态字符串不用双引号,使用单引号或者反引号。 使用数组对变量赋值或使用对象或函数返回多个值时,使用解构赋值,如: const arr = [1, 2, 3, 4]; const [first, second] = arr;//first
阅读全文
摘要:模块 CommonJs(用于服务器),AMD(用于浏览器) // CommonJS模块,生成对象 let { stat, exists, readfile } = require('fs'); // ES6模块 import { stat, exists, readFile } from 'fs';
阅读全文
摘要:Class的数据类型是函数,类本身就指向构造函数 Class Bar{ } var b=new Bar(); //类的实例的方法与类原型的方法相同: class B{} let b=new B(); b.constructor B.prototype.constructor Class内部的toSt
阅读全文
摘要:async async函数是Generator函数的语法糖.将*换成await,将yield转换为await,不需要co模块那样的执行器来保证自动执行,返回值是Promise(那还用那么麻烦的东西干嘛,cao)。 const asyncReadFile = async function () { c
阅读全文
摘要:协程 协程的流程:协程A执行,执行到一半就将执行权转移给协程B,协程B交还执行权,然后A恢复执行。 如下所示: function* asyncJob(){ ... var f=yield readFile(fileA);//分界,执行到此处时会将执行权交给其它协程。 ... } Generator函
阅读全文
摘要:Generator 本质上相当于一个状态机,还是一个遍历器对象生成函数,可依次遍历函数内部的每一个状态。 function* hello(){ yield '1'; yield '2'; return 'ending'; } var hw=hello();//状态转移的过程 hw.next();//
阅读全文
摘要:Iterator的概念 遍历器的遍历过程: 创建一个指针对象,指向当前数据结构的起点。 不断调用指针对象next方法指向下一个成员 每次调用时会返回{value:xxx,done:bool}的对象 默认值为done:false,value:undefined var it = makeIterato
阅读全文
摘要:Promise Promise有三种状态:pending(进行中),fulfilled(成功),rejected(失败) 只能从pending到fulfilled,或者从pending到rejected Promise参数的不同: 参数是Promise实例,Promise.resolve不做修改返回
阅读全文
摘要:Set const set = new Set([1, 2, 3, 4, 4]); [...set] // [1, 2, 3, 4] let set = new Set(); set.add({}); set.size // 1 set.add({}); set.size // 2 //两个对象总是
阅读全文
摘要:Object.is() ==的缺点:会自动转换类型,而 的NaN不等于自身,+0等于-0,可以使用Object.is()来严格判断 Object.assign() 用于对象合并 const target={a:1}; const source={b:2}; Object.assign(target,
阅读全文
摘要:属性的简洁表示法 使用简写属性的办法:const baz = {foo};等价于const baz = {foo: foo}; ES6 表达对象的新形式,使用表达式的情况: let propkey = "dd"; let obj = { [propkey]: true, ["a" + "bc"]:
阅读全文
摘要:扩展运算符 console.log(...[1, 2, 3]) // 1 2 3 //你甚至可以在后面放置表达式 const arr=[ ...(x>0?['a']:[]), 'b', ]; //替代apply方法 //ES5用法 var args=[0,1,2]; f.apply(null,arg
阅读全文
摘要:函数的默认值 function log(x, y = 'World') { console.log(x, y); } //惰性求值 let x = 99; function foo(p = x + 1) { console.log(p); } foo() // 100 x = 100; foo()
阅读全文
摘要:RegExp构造函数 原来的有两种情况: var regex = new RegExp('xyz', 'i'); // 等价于 var regex = /xyz/i; var regex = new RegExp(/xyz/i); // 等价于 var regex = /xyz/i; //不允许 v
阅读全文
摘要:1.字符串可以通过for...of进行遍历字符. 2.遍历器可以识别大于0xFFFF的码点,传统的for无法识别这样的码点 let text = String.fromCodePoint(0x20BB7); for (let i = 0; i < text.length; i++) { consol
阅读全文
摘要:装饰器 装饰器语法: type Decorator = (value: Input//被装饰的值,在属性被装饰时为undefined。 , context: { kind: string;//装饰类型,可能取值为class,method,getter,field,accessor name: str
阅读全文
摘要:final关键字 父类的私有方法是默认为final的,因此无法继承和重写,如果子类中还有则是新成员。 基本类型的final域重排序规则:如 public class FinalDemo{ private int a;//普通域 private final FinalDemo b;//final域 }
阅读全文
摘要:深度测试 大部分系统的深度缓冲是24位的,深度缓冲会和深度值进行比较,如果通过则更新,否则丢弃。 屏幕坐标可以在GLSL中通过gl_FragCoord在片段着色器中访问,其中的z是片段的真正深度。 glEnable(GL_DEPTH_TEST)用来开启深度测试,同时glClear(GL_COLOR_
阅读全文
摘要:使用>的效果 h1到hn使用# 使用-的效果 粗体 粗斜体 斜体 [这是图片链接]!(https://mp.weixin.qq.com/s/s5IhxV2ooX3JN_X416nidA) int main(){ cout<<"这是代码块"; } 使用*也是一点 链接语法 脚注 可以内嵌html标签
阅读全文