随笔分类 - JavaScript
摘要:不同平台(win,ubuntu,Mac)之间同步环境 这个代码非常简单,我们将本地某一个环境导出,然后去第二台电脑导入即可,代码如下: conda activate my-env # 进入目标环境 conda env export > my-env.yml # 导出我们的环境,包括:包、版本、cha
阅读全文
摘要:JavaScript在ES6语法中新增了箭头函数,相较于传统函数,箭头函数不仅更加简洁,而且在this方面进行了改进。this作为JavaScript中比较诡异的存在,许多文章对于this的解释也不尽相同,本篇文章试图厘清JavaScript中函数与this的关系。 1. JavaScript的函数
阅读全文
摘要:1 Object.create() Object.create(null) 创建的对象是一个空对象,在该对象上没有继承 Object.prototype 原型链上的属性或者方法,例如:toString()、hasOwnProperty() 等方法 Object.create() 方法接受两个参数:
阅读全文
摘要:在 JavaScript 中,大部分东西都是对象,数组是对象,函数也是对象,对象更加是对象。不管我们给数组和函数定义什么内容,它们总是有一些相同的方法和属性。比如说hasOwnProperty(),toString()等。 这说明一个对象所拥有的属性不仅仅是它本身拥有的属性,它还会从其他对象中继承一
阅读全文
摘要:1 问题由来 学懂 JavaScript 语言,一个标志就是理解下面两种写法,可能有不一样的结果。 var obj = { foo: function () {} }; var foo = obj.foo; // 写法一 obj.foo() // 写法二 foo() 上面代码中,虽然obj.foo和
阅读全文
摘要:1 函数柯里化 函数柯里化的是一个为多参函数实现递归降解的方式。其实现的核心是: 要思考如何缓存每一次传入的参数 传入的参数和目标函数的入参做比较 这里通过闭包的方式缓存参数,实现如下: const curry = (fn) => { let params = [] const next = (..
阅读全文
摘要:先看明白下面: 例1 var name = '小王', age=17 var obj = { name: '小张', objAge: this.age, myFun: function(){ console.log(this.name + '年龄' + this.age) } } obj.objAg
阅读全文
摘要:1 可选链接运算符?. 可选链接运算符(Optional Chaining Operator) 处于ES2020提案的第4阶段,因此应将其添加到规范中。它改变了访问对象内部属性的方式,尤其是深层嵌套的属性。它也可以作为TypeScript 3.7+中的功能使用。 相信大部分开发前端的的小伙伴们都会遇
阅读全文
摘要:1 多个条件 如果有多个条件,可以在数组中存储多个值。 //Longhand if (x 'abc' || x 'def' || x 'ghi' || x 'jkl') { //logic } //Shorthand if (['abc', 'def', 'ghi', 'jkl'].includes
阅读全文
摘要:方法1:.或[]符号 let test = {name: 'lei'} // 创建对象 test.name // 获取name属性值,返回:lei test["name"] // 获取name属性值,返回:lei test.age // 获取不存在的属性age,返回:undefined test["
阅读全文