
js
粉儿姐
不要当一个装睡的人,做一个清醒的人
展开
-
手撕源码之手写call
【代码】手撕源码之手写call。原创 2024-05-14 09:39:42 · 153 阅读 · 0 评论 -
babel插件
遗憾的是,目前vscode无法识别该语法,会在代码中报错,虽然并不会有什么实际性的危害,但是影响观感。只转换那些已经形成正式标准的语法,对于某些处于早期阶段、还没有确定的语法不做转换。上节课补充:@babel/polyfill 已过时,目前被。用于提供一些公共的API,这些API会帮助代码转换。该插件可以让你轻松的为某个方法绑定this。如果要转换这些语法,就要单独使用插件。该插件可以让你在类中书写初始化字段。该插件会移除源码中的控制台输出语句。下面随便列举一些插件。原创 2024-05-10 10:56:58 · 287 阅读 · 0 评论 -
babel预设
具体的配置见:https://www.babeljs.cn/docs/babel-preset-env#options。需要根据兼容的浏览器范围来确定如何编译,和postcss一样,可以使用文件。由于该预设仅转换新的语法,并不对新的API进行任何处理。可以让你使用最新的JS语法,而无需针对每种语法转换设置具体的插件。可以在编译结果中注入这些新的API,它的值默认为。,表示不注入任何新的API,可以将其设置为。,表示根据API的使用情况,按需导入API。,该配置的默认值是false。来描述浏览器的兼容范围。原创 2024-05-10 10:55:03 · 331 阅读 · 0 评论 -
babel预设
具体的配置见:https://www.babeljs.cn/docs/babel-preset-env#options。需要根据兼容的浏览器范围来确定如何编译,和postcss一样,可以使用文件。由于该预设仅转换新的语法,并不对新的API进行任何处理。可以让你使用最新的JS语法,而无需针对每种语法转换设置具体的插件。可以在编译结果中注入这些新的API,它的值默认为。,表示不注入任何新的API,可以将其设置为。,表示根据API的使用情况,按需导入API。,该配置的默认值是false。来描述浏览器的兼容范围。原创 2024-05-10 10:53:33 · 278 阅读 · 0 评论 -
原型和原型链
默认情况下,prototype是一个普通的Object对象,Function原型是一个对象,所以Function原型得隐式原型指向Object原型。//false 因为{}是通过new Object()创建的。猴子补丁:在函数原型中加入成员,以增强其对象的功能,猴子补丁会导致原型污染使用需谨慎。Object是一个对象,是Function new出来的。// 答案:是, new 一个函数返回的就是一个对象。// 答案:是, new 一个函数返回的就是一个对象。// a的构造函数时test还是Object。原创 2024-05-14 09:19:49 · 694 阅读 · 0 评论 -
手写promise
这个简单就看前面一个promise的状态,如果是fulfilled的话就调用then的第一个参数onFullFilled,如果状态是rejected,就调用then的第二个参数onReject。1.1)onFullFilled的参数是此前promise的兑现值,如果onFullFilled不是一个函数的话,就以此前的兑现值作为其兑现值,如果onFullFilled是一个函数,那么就以onFullFilled的返回值作为其兑现值。对于异步的情况,需要让handler是一个数组,保存所有then的参数。原创 2024-04-11 16:53:42 · 1016 阅读 · 0 评论 -
运算符规则
把{}和[]转换为原始类型分别为''和'[Object Object]'。然后特殊情况有字符串,那就拼接字符串返回'[Object Object]'null和undefined都是原始类型,然后把这两个转换为数字。是0+NaN.看规则有一个NaN的话就得到NaN.两者都是原始类型 ,特殊情况:undefined和null只有与自身比较或者互相比较时,才会返回true。两者都是原始类型,然后转换为数字就是0>NaN,特殊情况有NaN一定是false。null && 2返回null。原创 2024-04-03 17:07:13 · 289 阅读 · 0 评论 -
js类型转换
类型转换只有这四种,例如如果要对象转数字,那么就需要先把对象转成原始类型,再从原始类型转到数字。空数组转原始类型是一个空字符串。空对象转原始类型是'[object Object]'。原创 2024-04-03 16:31:10 · 270 阅读 · 0 评论 -
ES6参数默认值
2.参数默认值修改了arguments的行为。arguments可以获取到函数参数列表,在严格模式下,修改了形参的值不影响arguments,但是非严格模式下,并且没有参数默认值的时候,修改了形参的值,arguments里对应的值也被修改了。另外arguments.length的取值是实际传给函数的参数个数。3.参数默认值修改了函数的length的行为。但是当函数参数有默认值的时候,函数的length是函数参数第一个默认值前面的参数个数。在let const变量声明之前有一个暂时性死区,是不能使用变量的。原创 2024-04-03 11:20:56 · 610 阅读 · 0 评论 -
ES6展开运算符
1.展开可迭代对象(简单理解为数组和伪数组),如数组、 NodeList 、arguments。3.实现对象的浅拷贝和对象混入(对象属性的覆盖,后边的覆盖前边的)可以通过展开运算符把一个伪数组转换为数组。2.实现数组的浅拷贝。原创 2024-04-03 09:45:36 · 634 阅读 · 0 评论