- 博客(18)
- 收藏
- 关注
原创 记录js常见问题
如何判断0.1+0.2和0.3是否相等0.1 + 0.2 === 0.3; // false二进制浮点数中的0.1和0.2(十进制转换成二进制计算的)并不是十分精确,她们相加的结果0.300000000000000041.设置一个误差范围:通常称为“机器精度”(machineepsilon),对 JavaScript 的数字来说,这个值通常是 2^-52 (2.220446049250313e-16) 。Es6中该值定义在 Number.EPSILON 中function numbersCl
2022-09-07 13:35:53
113
原创 你不知道的js,第三章对象
1.in和hasOwnProperty的区别in操作符检查属性是否在对象及其原型链中;hasOwnProperty只会检查属性是否在该对象中,所有普通对象都可以通过Object.prototype的委托来访问hasOwnProperty通过Object.create(null)创建的,可通过Object.prototype.hasOwnProperty.call(obj,“a”),显式的绑定到obj上。2. enumerable属性var myObject = { };Object.define
2022-04-28 17:30:23
118
原创 (一)解除对this的误解
this全面解析(你不知道的javaScript,笔记)(一)解除对this的误解1.为什么需要使用thisthis隐式的传递一个对象的引用,如果不使用,上面那段代码我们就需要显式的传入一个上下文对象2.对this的误解(1)this指向自身count的值为0,可见函数中的this并不指向foo函数对象,所以单说this指向自身并不准确需要如此强制的让this指向函数对象本身。(2)this的作用域第二种误解是this指向函数的作用域,这在有些时候并不适用试图跨越边界,使用t
2022-04-27 17:32:57
341
原创 深拷贝和浅拷贝
彻底搞懂深拷贝和浅拷贝内容:例如:了解js的数据类型掌握 Java 基本语法掌握条件语句掌握循环语句在这之前需要先搞懂简单的数据类型和复杂数据类型1.简单数据类型 = 赋值,值的复制Number String undefined null Boolean Symbol2.复杂数据类型(引用类型) =赋值,内存地址复制Function Array Object Data Math RegExpLet obj1={a:1}Let obj2=obj1Let a=1Let b=
2022-03-28 17:50:00
1247
原创 岛屿数量JScript
广度优先搜索(bfs)深度优先搜索(dfs)思路:沉没法(将这一块陆地置为0是为了不会重复计数),当遍历到字符‘1’,将其置为‘0’,并且count++,再查找该点的上下左右是否还有1,有的话都置为零递归结束条件是行或者列越界,小于0 或者等于0var numIslands = function(grid) { var count=0 function dfs(row,col){ if(row<0 || row>=grid.length || col&l
2020-07-09 15:09:42
136
原创 783. 二叉搜索树节点最小距离
**给定一个二叉搜索树的根节点 root,返回树中任意两节点的差的最小值。示例:输入: root = [4,2,6,1,3,null,null]输出: 1解释:注意,root是树节点对象(TreeNode object),而不是数组。给定的树 [4,2,6,1,3,null,null] 可表示为下图: 4 / \ 2 6 / \ 1 3 最小的差值是 1, 它是节点1和节点2的差值, 也是节点3和节点2的差值。由于二叉搜索树有以下特点:
2020-07-02 16:24:13
157
原创 二叉树最大深度
给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7],3/ 9 20/ 15 7返回它的最大深度 3 。方法1.root不存在时,返回02.root存在时,说明二叉树的深度至少为1,然后递归遍历root.left root.right 每次都当成一个新的根节点遍历3.Math.max函数求出左子树深度,与右子树数中比较大的值+根
2020-07-02 10:55:09
179
原创 leetcode:排列硬币
你总共有 n 枚硬币,你需要将它们摆成一个阶梯形状,第 k 行就必须正好有 k 枚硬币。给定一个数字 n,找出可形成完整阶梯行的总行数。n 是一个非负整数,并且在32位有符号整型的范围内。示例1:n = 5硬币可排列成以下几行:¤ 第一行¤ ¤ 第二行¤ ¤ …因为第三行不完整,所以返回2.按照题的意思是n枚硬币是按照1,2,3…n这样放置的问n枚硬币能放置多少行,相当于查找key行这个值在行构成的数组的哪个位置,返回离key最近的可构成完整的等差数列的函数,使用二分查找法查找,在ke
2020-06-30 11:17:11
177
原创 leetcode每日刷题
1021. 删除最外层的括号主要记录自己写题心得题目描述:有效括号字符串为空 ("")、"(" + A + “)” 或 A + B,其中 A 和 B 都是有效的括号字符串,+ 代表字符串的连接。例如,"","()","(())()" 和 “(()(()))” 都是有效的括号字符串。如果有效字符串 S 非空,且不存在将其拆分为 S = A+B 的方法,我们称其为原语(primitive),其中 A 和 B 都是非空有效括号字符串。给出一个非空有效字符串 S,考虑将其进行原语化分解,使得:S = P_1
2020-06-29 17:18:40
155
原创 JScript中for in与for of循环的区别
for…of语句创建的循环可以遍历对象。在ES6中引入的for…of可以替代另外两种循环语句for…in和forEach(),而且这个新的循环语句支持新的迭代协议。for…of允许你遍历可迭代的数据结构,比如数组、字符串、映射、集合等,循环集合本身的元素。1.for-in遍历数组的值 var arr = [1,2,3,4,5]; for(let val of arr.values()){ console.log(val)
2020-06-29 16:55:38
194
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人