09 2021 档案
摘要:1.私有属性 面向对象中在类内部才能访问的属性成为私有属性。js的类中属性前面#表示是私有属性。在类的外部无法访问。 class Person{ // 共有属性 name; // 私有属性 #age; #weight; // 构造方法 constructor(name, age, weight){
阅读全文
摘要:1.对象的扩展方法 Object.fromEntries 接收二维数组或者Map转化为对象 ES8 Object.entries可以将对象转化为二维数组 这两个方法算是逆运算 // 二维数组 const res = Object.fromEntries([ ['name','字节跳动'], ['jo
阅读全文
摘要:rest参数与spread扩展运算符已经在ES6中引入,但是ES6没有提供对象的实现 ES9中为对象提供了像数组一样的rest参数和扩展运算符 function connect({host, port, ...user}){ console.log(host);//127.0.0.1 console
阅读全文
摘要:1.Object.values()方法返回一个给定对象的所有可枚举属性值的数组 2. Object.entries()方法返回一个给定对象自身可比案例属性[key,value]的数组 3.Object.getOwnPropertyDescriptions()方法返回指定对象所有自身属性的描述对象 /
阅读全文
摘要:1.async函数 async函数的返回值是promise对象 promise对象的结果由async函数执行的返回值决定 async function fn(){ //返回字符串 // return 'yuanyuan'; //如果返回的不是Promise对象,那么返回的就是一个成功的Promise
阅读全文
摘要:1.Array.prototype.includes 用来判断数组是否含有某个元素 // Array.prototype.includes const mingzhu = ["西游记","红楼梦","三国演义","水浒传"]; //判断 console.log(mingzhu.includes('西
阅读全文
摘要:剑指 Offer 64. 求1+2+…+n var sumNums = function(n) { return n && n + sumNums(n-1); }; 考查了逻辑运算符的短路性质。 以逻辑运算符 && 为例,对于 A && B 这个表达式,如果 A 表达式返回 false ,那么 A
阅读全文
摘要:1. Object.is 判断两个值是否完全相等 console.log(Object.is(120,120));//true console.log(Object.is(120.121));//false console.log(Object.is(NaN,NaN));//true console
阅读全文
摘要:1.Number.EPSILON Number.EPSILON 是JavaScript表示的最小精度 EPSILON属性的值接近于 2.2204460492503130808472633361816E-16 他可以用来忽略掉浮点数的精度误差 例如我们都知道JavaScript中 0.1 + 0.2
阅读全文
摘要:es5构造函数继承 function Phone(brand, price){ this.brand = brand; this.price = price; } Phone.prototype.call = function(){ console.log("打电话"); } function Sm
阅读全文
摘要:简单来说静态成员就是类的属性而不是实例对象的属性 class Phone{ //静态属性 static name = "手机"; static call(){ console.log("打电话"); } } let Huawei = new Phone(); console.log((Huawei.
阅读全文
摘要:class只是语法糖,但本质上依旧是基于原型的继承 function Phone(brand, price){ this.brand = brand; this.price = price; } Phone.prototype.call = function(){ console.log("打电话"
阅读全文
摘要:1.数组去重 let arr = [1,2,3,4,5,4,3,2,1], arr2 = [4,5,6,5,6]; // 1.数组去重 let res = [...new Set(arr)]; console.log(res); 2.交集 // 2.交集 let res = [...new Set(
阅读全文
摘要:js异步编程学习生成器很好的例子用生成器不写成回调地狱的形式 例1.用生成器实现一个1s后控制台输出111,再2s后控制台输出222,再3s后控制台输出333 function one(){ setTimeout(()=>{ console.log(111); iterator.next(); },
阅读全文
摘要:技巧 1. 通过一些测试用例可以节省您的时间。 使用链表时不易调试。因此,在编写代码之前,自己尝试几个不同的示例来验证您的算法总是很有用的。 2. 你可以同时使用多个指针。 有时,当你为链表问题设计算法时,可能需要同时跟踪多个结点。您应该记住需要跟踪哪些结点,并且可以自由地使用几个不同的结点指针来同
阅读全文
摘要:707. 设计链表 单链表 class MyLinkedList { constructor () { this.data = null } // 获取链表中第 index 个节点的值。如果索引无效,则返回-1 get (index) { let curr = this.data for (let
阅读全文
摘要:1. 在调用 next 字段之前,始终检查节点是否为空。 获取空节点的下一个节点将导致空指针错误。例如,在我们运行 fast = fast.next.next 之前,需要检查 fast 和 fast.next 不为空。 2. 仔细定义循环的结束条件。 141. 环形链表 var hasCycle =
阅读全文
摘要:这种求和找下标数组的算法题本质上都是可以转化为把数组排序以后的双指针问题。 不管求几个数字之和都是转化为最后两个数的和用一个值来比较然后移动指针确定位置。 leetcode167. 两数之和 II - 输入有序数组 var twoSum = function(numbers, target) { l
阅读全文
摘要:该算法可以被描述为这样一个结论:记 f(x) 表示 x 和 x-1 进行与运算所得的结果(即 f(x)=x & (x−1)),那么f(x) 恰为 x 删去其二进制表示中最右侧的 1 的结果。 leetcode 461. 汉明距离 var hammingDistance = function(x, y
阅读全文
摘要:var关键字 var声明作用域 var变量提升 let声明 let声明的范围是块作用域,而var声明的范围是函数作用域 暂时性死区 let声明的变量不会在作用域中被提升 全局声明 var声明的变量会变成window对象的属性,而let不会 条件声明 let不能依赖条件声明模式 for循环中的let声
阅读全文
浙公网安备 33010602011771号