前端js
菜到不会下载软件
安装软件真的难
展开
-
字节跳动一面面试回顾总结
在面试了字节跳动基础框架组前端后的总结:1、flex是什么?都有那些属性?Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性;属性有flex-direction、flex-wrap、flex-flow、justify-content、align-items、align-content、order、flex-grow、flex-shrink、flex-basis、align-self等属性2、JavaScript中都有那些数组的方法?原创 2022-03-31 17:18:06 · 1036 阅读 · 0 评论 -
算法题 位1的个数(简单题)
题目描述:编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 '1' 的个数(也被称为汉明重量)。例题描述:题目分析:题目的要求很简单,就是要求将输入的32位无符号整数中含有1的个数统计出来解题思路:当我拿到这道题目的时候,我首先想到的是通过将他拆分为数组,一个一个的循环判断来做,这样的作法是没有问题的,但是可能是平台的隐藏要求?还是什么的,这种方法得出来的结果在vs code上运行的和在力扣上运行的是完全不一样的,我盲目猜测,也许是他将..原创 2022-02-06 18:52:26 · 314 阅读 · 0 评论 -
算法题 爬楼梯
题目描述:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?示例描述:题目分析:就是爬楼梯的时候,他会有多少种方法,其实这是一个斐波那契数列,仔细地观察就会发现,当n=1的时候,有一种方法;n=2的时候,两个;n=3的时候有3个......以此类推解题思路:刚刚开始的时候,我想用二叉树,因为他只有两个跨越台阶的方式,不是1就是2,所以想使用递归的方法,但是发现这样做不出来,所以就换了一种方法,如果使用数原创 2022-02-05 19:22:43 · 365 阅读 · 0 评论 -
算法题 二进制求和(简单)
题目描述:给你两个二进制字符串,返回它们的和(用二进制表示)。输入为 非空 字符串且只包含数字 1 和 0。例子描述:题目分析:题目告诉我们这不存在一个空的字符串,所以不用考虑没有的情况;这是一个二进制求和的问题,同位两个数如果都为1则进1补0,如果两个数有一个是1,一个是0,则为1;解题思路:我们在学习javascript的时候,会发现其实可以将字符串转换为二进制的形式、八进制甚至是十六进制的形式,所以我们可以先将他化为十进制,然后将其相加过后,再次转换为二进制即可v原创 2022-02-05 16:28:43 · 317 阅读 · 0 评论 -
算法 多数元素(简单题)
题目描述:给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。例题描述:题目解析:这道题刚开始看的时候,考虑的是他是否会返回两个输出?但是仔细一想发现是不可能的,因为⌊ n/2 ⌋是向下取整,如果是偶数个的元素,那么这个值就是n的一半,并且这个要求是大于,那么说明一定要求元素至少比n/2大,这样的元素在偶数的时候只有一个;当n是奇数个元素的时候,他向下取整的时候,就会取(n原创 2022-02-03 15:46:53 · 497 阅读 · 0 评论 -
贪吃蛇游戏 js网页版
在学习了前端三大件之后,对于自己的学习情况进行一个总结,所以写了一个网页版本的简单小游戏,贪吃蛇,成果如下:首先介绍一下:分数可以计数总共吃了多少东西,红色的是贪吃蛇的蛇头,蓝色的是食物,还有黄色的,黄色的是身体。代码如下:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible"原创 2022-02-01 23:37:57 · 5557 阅读 · 5 评论 -
存在重复元素 II(简单题)
题目描述:给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的 绝对值 至多为 k。示例描述:题目分析:要求我们找到数组中的重复元素,并且将这两个重复元素的索引差取绝对值之后不大于k,如果只是分析到这里,这道题目肯定是会错误的,他其实有几个隐含的条件:比如说条件一:当没有重复元素的时候,返回的是false;条件二,当有多个数组元素的值相等时,一定要取索引值最小的那一个,可以看到示例图第二个的描原创 2022-01-14 17:04:44 · 285 阅读 · 0 评论 -
算法第二十一天 合并两个有序数组(简单题)
题目描述:给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n 。示例描述:题目分析:原创 2022-01-14 14:41:22 · 135 阅读 · 0 评论 -
算法第二十一天 合并两个有序数组(简单题)
题目描述:给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n 。示例描述:分析题目:原创 2022-01-14 14:29:30 · 144 阅读 · 0 评论 -
算法第二十天 只出现一次的数字(简单题)
题目描述:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。示例描述:题目分析:题目告诉我们找出只出现了一次的那个数字即可解题分析:题目中给了我们,很多数字都出现了两次,只有一个没有出现两次,所以我首先想到的是暴力的求解,虽然这个的时间空间等等复杂度都很高,但这确实是一个很好的方法来解决这个问题,我采取的方法是,找到两个相同的数字,因为如果你找不相同你会发现很难找,找到两个相同的数字之后,直接删除这两个,数组的长度就原创 2022-01-13 20:09:53 · 204 阅读 · 0 评论 -
算法第十九天 加1
题目描述:给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。例题描述:题目分析:这道题目的意思就是将数组中的数值组合起来看作是一个数,这个数的大小加一之后的值再输出出来即可解题思路:先要将这个数组转化为数字。然后加1,再将他转化为数组就可以了错误解题代码:var num =digits[digits.length-1].原创 2022-01-13 19:10:17 · 97 阅读 · 0 评论 -
算法十八天 最后一个单词的长度(简单)
题目描述:给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中最后一个单词的长度。单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。例题描述:题目解析:就是要求求出字符串中最后一个单词的长度,注意:字符串最后不是单词是空格的时候不能算单词解题思路:化为数组,通过数组来完成对最后一个单词长度的求解代码如下:var lengthOfLastWord = function(s) { var word =s.split(' ')原创 2022-01-12 14:57:48 · 68 阅读 · 0 评论 -
算法第十七天 有效的括号(简单)js
题目描述:给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。例子描述:代码: var isValid = function(s) { const obj = {')':'(', ']':'[', '}':'{'}; const stack = []; for(let p of s) {原创 2022-01-12 14:19:07 · 104 阅读 · 0 评论 -
算法第十六天 最长公共前缀(简单题)js
题目描述:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。例子描述:题目分析:他要求找的是字符串数组中最长的公共前缀,而这个公共前缀必须是字符串数组中所有数组元素都有的才可以,有公共前缀就输出,如果没有则返回空字符串。解题思路:这是一道数组的题目,我们需要对数组中的元素进行比较,仔细观察不难发现,这个数组其实可以将他看作“二维数组”,因为当我们得到的数组元素,他其实是一个字符串,我们需要从这些字符串中得到他们的公共前缀,第一步需要循环数组原创 2022-01-12 12:38:15 · 286 阅读 · 0 评论 -
第十五天算法 罗马数字转整数(简单)js
题目描述:罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做II,即为两个并列的 1 。12 写做XII,即为X+II。 27 写做XXVII, 即为XX+V+...原创 2022-01-11 22:59:31 · 202 阅读 · 0 评论 -
第十四天算法题 回文数(简单)
题目描述:给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。例子描述:解题思路:其实这道题的意思就是把数字反转之后,对比是否相同。代码:var isPalindrome = function(x) { if(x>=0 && x<10) return true else if(原创 2022-01-11 18:53:56 · 724 阅读 · 0 评论 -
第十三天 计数
题目描述:统计数组 arr 中值等于 item 的元素出现的次数题目实例:解题思路:非常简单,暴力简缩加if判断即可function count(arr, item) { var num=0 for(let i=0;i<arr.length;i++){ if(arr[i] ==item){ num++ } } return num}...原创 2022-01-10 15:19:25 · 48 阅读 · 0 评论 -
第十三天 斐波那契数列
题目描述:用 JavaScript 实现斐波那契数列函数,返回第n个斐波那契数。 f(1) = 1, f(2) = 1 等解题相关知识:首先需要斐波那契数列:指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)解题思路:就是先判断当n=0,1以及大于1的时候的数值即可 function fibonacci(原创 2022-01-10 15:16:10 · 97 阅读 · 0 评论 -
第十二天 根据包名在指定空间中创建对象
题目描述:根据包名,在指定空间中创建对象输入描述:namespace({a: {test: 1, b: 2}}, 'a.b.c.d')输出描述:{a: {test: 1, b: {c: {d: {}}}}}解题思路:这道题目的要求是要创建对象,他给了两个变量,让我们输出一个对象包含着三层对象的一个数值,主要考核的是基础对象的知识与概念首先复习一下对象的概念:对象初始概念:var person = {firstName:"Bill", lastName:"Gate原创 2022-01-10 15:05:44 · 149 阅读 · 0 评论 -
第十一天 dom节点的查找
题目描述:查找两个节点的最近的一个共同父节点,可以包括节点自身输入描述:oNode1 和 oNode2 在同一文档中,且不会为相同的节点解题想法:第一眼看到这个题目的时候,以为是根据题目直接找dom最近的一个根节点,事实上这道题目的要求也是这样的,所以这道题目其实很简单,找到两个节点的父节点,输出即可,所以我使用了while循环判断来做这道题目function commonParentNode(oNode1, oNode2) { while(true){原创 2022-01-10 12:26:19 · 296 阅读 · 0 评论 -
算法第十天(简单题) 存在重复元素
题目描述:给定一个整数数组,判断是否存在重复元素。如果存在一值在数组中出现至少两次,函数返回true。如果数组中每个元素都不相同,则返回false。题目要求:分析题目:由题目我们可以知道,当数组中有重复的元素的时候(也就是两个元素相同),那么就要求返回true,如果没有相同的元素,那么就返回false解题思路:根据题目所给信息,我们可以使用两个for循环暴力求解,下面是求解过程:var containsDuplicate = function(nums) ...原创 2021-12-26 14:11:43 · 3219 阅读 · 1 评论 -
算法第九天(简单题)链表的中间结点
题目要求:给定一个头结点为head的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。分析题目:很明显这给的是一个链表,要求的是返回链表中间的值,如果链表的个数为奇数,则返回中间节点即可,但是当链表的个数是偶数的时候,我们就会发现有两个中间节点,再看题目要求,返回第二个中间节点即可解题思路:我的想法是,确定中间点,如果是只有一个的情况下,返回链表后续内容,当中间节点有两个的时候,则返回第二个中间节点,以及其后续的内容。代码如下:var middl..原创 2021-12-18 22:28:45 · 729 阅读 · 0 评论 -
算法第八天(简单题)反转字符串中的单词Ⅲ
var reverseWords = function(s) { const newArray=s.split(' ') const an=[] for(i=0;i<newArray.length;i++){ an.push(newArray[i].split('').reverse().join('')) } return an.join(' ')};原创 2021-12-17 22:52:55 · 631 阅读 · 0 评论 -
算法第七天(简单)反转字符串 语言:javascript
题目描述:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。题目分析:题目的要求就是将字符串反转过来,满足这个条件就可以了,要求定义一个函数解题思路:因为这道题他的声明是递归、双指针,所以我想采用箭头函数的方式,这个函数的作用是翻转字符串即可,然后调用这个函数就可以了代码如下:var reverseString = function(s) {.原创 2021-12-16 08:55:45 · 826 阅读 · 0 评论 -
算法第六天(简单)两数之和Ⅱ-输入有序数组
题目描述:给定一个已按照 非递减顺序排列的整数数组numbers ,请你从数组中找出两个数满足相加之和等于目标数target 。函数应该以长度为 2 的整数数组的形式返回这两个数的下标值。numbers 的下标 从 1 开始计数 ,所以答案数组应当满足 1 <= answer[0] < answer[1] <= numbers.length 。你可以假设每个输入 只对应唯一的答案 ,而且你 不可以 重复使用相同的元素。题目分析:题目中明确给出,需要将两个数相加并...原创 2021-12-15 10:58:53 · 1470 阅读 · 0 评论 -
算法第五天(简单题) 移动零
var moveZeroes = function(nums) { let n = nums.length let left = 0, right = 0 for(let i = 0; i < n; i++){ if(nums[i]!=0){ temp = nums[left] nums[left] = nums[right] nums[right] = temp .原创 2021-12-14 22:40:51 · 540 阅读 · 0 评论 -
算法题第四天(中等第二题)轮转数组问题
题目描述:给你一个数组,将数组中的元素向右轮转k个位置,其中k是非负数。题目分析:从示例中我们可以得知的是,他要求按照k的个数将数组轮转,并且轮转k次,每次将数组最右边的数移动到数组开始,并将后续数组依次向后推解题思路:定义一个函数,其功能是翻转数组,目的是通过翻转最后得到想要的结果其次通过多次调用函数,实现目标代码如下:var rotate = function(nums, k) { const reverse=(nums,left,right)=&...原创 2021-12-13 12:05:33 · 678 阅读 · 0 评论 -
算法第四天(简单题)有序数组的平方(javascript)
今天是刷算法的第四天,继续坚持加油题目描述:给你一个按非递减顺序排序的整数数组nums,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。分析题目:他的要求很简单,第一要求将数组中的元素平方,第二要求非递减排序,关于非递减排序,其实可以直接理解为升序排序,因为下面的案例中可以推出!解题思路:当我拿到这道题之后,我发现这个题目真的还是蛮简单的,我的思路就是暴力循环,将原数组平方化,之后直接升序排列就可以了。在升序排列的时候,如果你直接使用数组.sort()函数的化,发现得到...原创 2021-12-13 10:13:53 · 383 阅读 · 0 评论 -
算法练习第三天(简单)搜索插入位置
今天是练习算法的第三天题目描述:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。注意:题目要求的是:时间复杂度必须是O(log n)知识点回顾:O(log n)的本质:输入规模翻倍,操作次数只增加一(具体可以参考国王赏麦的那个故事,就是我们初中学幂运算的那个例子)解题分析:首先,我们需要做出判断,目标值是否在数组中,如果在数组中,那么我们就可以直...原创 2021-12-12 13:56:46 · 586 阅读 · 0 评论 -
第二天算法(简单)第一个错误版本
第二天 var low=0;var high=n; var num=n; while(low<=high){ var mid=Math.floor((low+high)/2); if(isBadVersion(mid)){ num=mid high=mid-1 }else { lo.原创 2021-12-11 23:25:25 · 244 阅读 · 0 评论 -
力扣二分查找(难度:简单)之解题思路
从今天开始,争取每天都刷一道力扣js的题目,提高自己的能力题目描述:给定一个n个元素有序的(升序)整型数组nums 和一个目标值target ,写一个函数搜索nums中的 target,如果目标值存在返回下标,否则返回 -1。解题思路:首先题目要求我们使用二分查找的方式,所以我们需要使用到的是二分查找的知识点。上面就是二分查找的原理图,在本题中我们需要理清思路,第一步,首先判断给出的nums数组,他是否为空,如果为空,则直接返回-1;第二、其实我们需要定义左右以及中间...原创 2021-12-10 11:21:45 · 127 阅读 · 0 评论 -
jQuery学习总结(二)、ready函数、#idName选择器、class选择器、html元素选择器、祖先后代选择器、父子选择器
一、ready(Fun)函数jQuery的ready(Fun)函数由一个合法的jQuery对象调用,含义是这个对象准备好了,自动执行ready函数的入参函数,此函数被视为自动执行函数示例:$('input').ready(function(){ $('input').get(0),value ="初始值"})在需要文档准备好后自动执行某些js操作: $(document).ready(function(){ js操作.....})也可以简...原创 2021-09-27 19:23:39 · 408 阅读 · 0 评论 -
学习jQuery第一天总结(一)、each(function)循环函数、jQuery与DOM相互转换、判断是jq还是dom,data函数
一、JQuery核心基础jquery的核心是函数,简写$();示例:使用jQuery查找所有元素,并且显示出来 <div> <p id="p_1">迟日江山丽</p> <p>春风花草香</p> <p>泥融飞燕子</p> <p>沙暖睡鸳鸯</p> </div><script>原创 2021-09-26 23:39:07 · 952 阅读 · 0 评论 -
判断整数、数组颠倒reverse,数组转换字符串,join、toString、toLocaleString
一、判断一个数是不是整数 使用isNaN()判断所输入的数是否是整数用法:isNaN(x)当输入的是整数的时候,值为false ,否则为trueif (isNaN(a)){ alert("您输入的不是一个整数!!!")}二、数组相关概念2.1 reverse颠倒数组中元素的排序注意:该方法会改变原来的数组,不会创建新的数组var arr = [1, 2, 3]console.log(arr.reverse())最后输出的结果为:...原创 2021-09-22 16:27:46 · 110 阅读 · 0 评论 -
关于js闭包、关于call()、apply()、bind()等方法的一点理解
一、js闭包首先,需要搞清楚什么是闭包:闭包是嵌套的内部函数有点抽象,上例子:function outExample(){ var a=1 function innerExample(){ return a*a //这里的a调用的不是全局变量,而是outExample中的函数局部变量 } }1.2、产生闭包的条件1、函数原创 2021-09-21 10:21:51 · 211 阅读 · 0 评论 -
js数组中关于splice()、slice()、concat()push()、pop()等方法的应用
一、总结:splice()方法既可以删除也可以添加数组元素slice()方法基于当前数组中的一个或者多个创建数组concat()方法将两个数组连接起来push()方法每次压入多个元素,最终返回更新后的数组长度pop()方法弹出数组最后的一个元素二、具体分析2.1 splice()方法splice方法用来删除或者增加数组元素注意:会改变原始数组splice三种用法:删除元素语法格式:array.splice(index,howmany)var color .原创 2021-09-17 11:36:26 · 466 阅读 · 0 评论 -
查找数组元素的几种方法 indexOf() 、pop()
描述找出元素 item 在给定数组 arr 中的位置输出描述:如果数组中存在 item,则返回元素在数组中的位置,否则返回 -1方法一:这是最简单的,也是最容易想到的一些方法function(arr,item){ for(var i=0;arr.length;i++){ if(arr[i]==item){ return i } } return -1 //如果在for循环中找到原创 2021-09-15 20:55:04 · 966 阅读 · 0 评论 -
text-align用法、list-style与text-decoration的区分
一、text-align:语法:text-align是把段落最后一行与某个对齐text-align:center | left | right | auto分别对应的内容:center是指将段落最后一行放在文本中间left是指将段落最后一行放在文本的左边right是指将段落的最后一行放在文本的右边auto最后一行被调整,并向左对齐。二、关于list-style与text-decoration的区分因为自己在写网页的时候,经常会将这两个使用的范围搞混,所..原创 2021-09-14 23:25:37 · 792 阅读 · 0 评论 -
一个登录页面
一、鼠标指针位置坐标语法格式:event.clientX //获取水平方向的坐标event.clientY //获取垂直方向的坐标二、一个登录页面这是html页面,主要的功能是构建页面<body> <table id="myTable" cellspacing="0" cellpadding="0"> <tr> <td colspan="2"><img src="xl...原创 2021-09-13 23:10:15 · 82 阅读 · 0 评论 -
块级元素与行内元素
因为自己每次在写前端页面的时候,总是会把块级元素与行内元素搞混,也不知道他们到底有什么作用,所以今天做一个总结,希望能够加深对自己的一个印象一、块内元素 1.1 一个块内元素占一行,想要使其水平移动,可以使用浮动排列 <div>div属于一个块内元素</div> <div>一个块内元素占据一行</div> 1.2块级元素可以设置宽高,并且宽度高度以及外边距,内填充都可随意控制。...原创 2021-09-12 19:16:34 · 195 阅读 · 0 评论