每天弄懂一道面试题/Js小知识
求最终 left、right 的宽度…
圣杯布局和双飞翼布局的理解和区别…
实现 Promise.retry…
给定一个整数数组,判断数组中是否有两个不同的索引 i 和 j..
给定一个整数数组和一个整数k ,判断数组中是否存在两个不同的索引i 和j ..
城市的天际线是从远处观看该城市中所有建筑物形成的轮廓的外部轮廓..
给定一个整数数组,判断是否存在重复元素..
找出所有相加之和为n 的k 个数的组合。 组合中只允许含有 1 -9 的正整数..
在未排序的数组中找到第 k 个最大的元素..
给定一个字符串 s ,你可以通过在字符串前面添加字符将其转换为回文串..
你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金..
给定一个二维网格board 和一个字典中的单词列表 words ..
设计一个支持以下两种操作的数据结构..
现在你总共有 n 门课需要选,记为 0 到 n-1 ..
0
n-1
给定一个含有n 个正整数的数组和一个正整数s , 找出该数组中满足其和**≥ ..
实现一个 Trie (前缀树),包含 insert , search ..
insert
search
现在你总共有 n 门课需要选,记为 0 到 n-1 。
反转一个单链表。
给定两个字符串s 和t ,判断它们是否是同构的。
统计所有小于非负整数n 的质数的数量。
删除链表中等于给定值val 的所有节点。
一个“快乐数”定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和.
给定范围 [m, n],其中 0 <= m <= n <= 2147483647,返回此范围内所有数字的按位与(包含 m, n 两端点).
给定一个由 '1' (陆地)和 '0' (水)组成的的二维网格,计算岛屿的数量…
'1'
'0'
给定一棵二叉树,想象自己站在它的右侧…
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金…
编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为…
颠倒给定的 32 位无符号整数的二进制位.
给定一个数组,将数组中的元素向右移动k 个位置.
给定一个数组,它的第i 个元素是一支给定的股票在第 i 天的价格.
所有 DNA 由一系列缩写为 A,C,G 和 T 的核苷酸组成.
给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数.
一些恶魔抓住了公主(P )并将她关在了地下城的右下角.
实现一个二叉搜索树迭代器.
给定一个Excel表格中的列名称,返回其相应的列序号
给定一个大小为 n 的数组,找到其中的众数
给定一个正整数,返回它在 Excel 表中相对应的列名称。
给定一个已按照**升序排列 ** 的有序数组
给定两个整数,分别表示分数的分子numerator 和分母
比较两个版本号 version1 和 version2
给定一个无序的数组,找出数组在排序之后
峰值元素是指其值大于左右相邻值的元素
编写一个程序,找到两个单链表相交的起始节点。
设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。
假设按照升序排序的数组在预先未知的某个点上进行了旋转
给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列
nums
给定一个字符串,逐个翻转字符串中的每个单词。
根据 逆波兰表示法,求表达式的值。
给定一个二维平面,平面上有n 个点,求最多有多少个点在同一条直线上
在O (n logn ) 时间复杂度和常数级空间复杂度下
对链表进行插入排序
运用你所掌握的数据结构,设计和实现一个
给定一个二叉树,返回它的 后序 遍历。
给定一个二叉树,返回它的前序 遍历。
给定一个单链表L :L 0→L 1→…→L n -1→L n
为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)
pos
给定一个非空 字符串 s 和一个包含非空 单词列表的字典 wordDict
给定一个链表,每个节点包含一个额外增加的随机指针,
给定一个非空 整数数组,除了某个元素只出现一次以外,
老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,
在一条环路上有N 个加油站,其中第i 个加油站有汽油 gas[i] ** 升。
gas[i]
给定无向 连通 图中一个节点的引用,
给定一个字符串 s ,将 s 分割成一些子串,使每个子串都是回文串。
给定一个字符串 s ,将s 分割成一些子串,使每个子串都是回文串。
给定一个二维的矩阵,包含 'X' 和 'O' (字母 O )……
'X'
'O'
给定一个二叉树,它的每个结点都存放一个 0-9 的数字
0-9
给定一个未排序的整数数组,找出最长连续序列的长度。
给定两个单词(beginWord 和 endWord )和一个字典,找到从beginWord 到endWord ……
给定两个单词(beginWord 和 endWord )和一个字典 wordList ……
给定一个非空 二叉树,返回其最大路径和。
给定一个数组,它的第i 个元素是一支给定的股票在第 i 天的价格。
给定一个数组,它的第i 个元素是一支给定股票第 i 天的价格。
给定一个非负索引k ,其中 k ≤33,返回杨辉三角的第 k 行。
给定一个非负整数numRows, 生成杨辉三角的前numRows 行。
给定一个二叉树
给定一个完美二叉树 ,其所有叶子节点都在同一层,每个父节点都有两个子节点。
给定一个字符串S 和一个字符串T ,计算在 S 的子序列中 T 出现的个数。
给定一个二叉树,原地 将它展开为链表。.
给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路…….
给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径.
给定一个二叉树,找出其最小深度。
给定一个二叉树,判断它是否是高度平衡的二叉树。
给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。
将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。
给定一个二叉树,返回其节点值自底向上的层次遍历。
根据一棵树的中序遍历与后序遍历构造二叉树。
根据一棵树的前序遍历与中序遍历构造二叉树。
给定一个二叉树,找出其最大深度。
给定一个二叉树,返回其节点值的锯齿形层次遍历。
给定一个二叉树,返回其按层次遍历的节点值。
给定一个二叉树,检查它是否是镜像对称的。
如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。
二叉搜索树中的两个节点被错误地交换。
给定一个二叉树,判断其是否是一个有效的二叉搜索树。
给定三个字符串s1 , s2 , s3 , 验证s3 是否是由s1 和s2 交错组成的
给定一个整数 n ,求以1 …n 为节点组成的二叉搜索树有多少种?
给定一个整数 n ,生成所有由 1 …n 为节点所组成
给定一个二叉树,返回它的中序 遍历
给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式
反转从位置 m 到 n 的链表。请使用一趟扫描完成反转
一条包含字母 A-Z 的消息通过以下方式进行了编码
A-Z
给定一个可能包含重复元素的整数数组 nums ,返回该数组所有可能的子集(幂集)
格雷编码是一个二进制数字系统,在该系统中,两个连续的数值仅有一个位数的差异
给定两个有序整数数组nums1 和 nums2 ,将 nums2 合并到nums1 中, 使得num1 成为一个有序数组
给定一个字符串s1 ,我们可以把它递归地分割成两个非空子字符串,从而将其表示为二叉树
给定一个链表和一个特定值x ,对链表进行分隔,使得所有小于 x 的节点都在大于或等于
给定一个仅包含0 和 1 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积
给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次
给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中*没有重复出现
假设按照升序排序的数组在预先未知的某个点上进行了旋转。
给定一个排序数组,你需要在原地 删除重复出现的元素
给定一组不含重复元素 的整数数组nums ,返回该数组所有可能的子集(幂集)
给定两个整数 n 和 k ,返回 1 … n 中所有可能的 k 个数的组合
给定一个字符串 S 和一个字符串 T,请在 S 中找出包含 T 所有字母的最小子串
给定一个包含红色、白色和蓝色,一共n 个元素的数组
编写一个高效的算法来判断m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性
给定一个m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0
给定两个单词word1 和word2 ,计算出将word1 转换成word2 所使用的最少操作数
以 Unix 风格给出一个文件的绝对路径 ,你需要简化它。或者换句话说,将其转换为规范路径
假设你正在爬楼梯。需要 n 阶你才能到达楼顶……
实现 int sqrt(int x) 函数
int sqrt(int x)
给定一个单词数组和一个长度maxWidth ,重新排版单词,使其成为每行恰好有maxWidth 个字符……
给定两个二进制字符串,返回他们的和~
给定一个由整数 组成的非空 数组所表示的非负整数~
验证给定的字符串是否可以解释为十进制数字……
给定一个包含非负整数的 m xn 网格,请找出一条从左上角到右下角的路径……
机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角……
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )
给定一个链表,旋转链表,将链表每个节点向右移动k 个位置,其中k 是非负数
给出集合 [1,2,3,…,n] ,其所有元素共有n ! 种排列
[1,2,3,…,n]
给定一个正整数n ,生成一个包含 1 到n 2所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵
给定一个仅包含大小写字母和空格 ' ' 的字符串,返回其最后一个单词的长度
' '
给出一个无重叠的 , 按照区间起始端点排序的区间列表
给出一个区间的集合,请合并所有重叠的区间
给定一个非负整数数组,你最初位于数组的第一个位置……
给定一个包含m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序……
forEach…
给定一个整数数组 nums ,找到一个具有最大和的连续子数组……
n 皇后问题研究的是如何将 n 个皇后放置在 n ×n 的棋盘上……
实现pow(x , n ),即计算 x 的 n 次幂函数。
给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同
给定一个 n ×n 的二维矩阵表示一个图像
给定一个可包含重复数字的序列,返回所有不重复的全排列~
给定一个没有重复 数字的序列,返回其所有可能的全排列~
给定一个非负整数数组,你最初位于数组的第一个位置~
给定一个字符串( s ) 和一个字符模式( p ) ,实现一个支持 '?' 和 '*' 的通配符匹配~
s
p
'?'
'*'
给定两个以字符串形式表示的非负整数 num1 和 num2 ,返回 num1 和 num2 的乘积~
num1
num2
给定n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子~
给定一个未排序的整数数组,找出其中没有出现的最小的正整数
给定一个数组 candidates 和一个目标数 target ,找出 candidates^
candidates
target
给定一个无重复元素 的数组 candidates 和一个目标数 target ,找出^
报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数
编写一个程序,通过已填充的空格来解决数独问题
判断一个9x9 的数独是否有效。只需要根据以下规则 ,验证已经填入的数字是否有效即可 ……
给定一个按照升序排列的整数数组 nums ,和一个目标值 target ……
假设按照升序排序的数组在预先未知的某个点上进行了旋转……
给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号……
'('
')'
实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大……
给定一个字符串s 和一些长度相同的单词words。 找出……
给定两个整数,被除数 dividend 和除数 divisor……
dividend
divisor
给定一个haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出……
给定一个数组 nums 和一个值 val ,你需要……
给定一个排序数组,你需要在原地……
k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是k 的整数倍……
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表……
合并k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度……
给出n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的 括号组合……
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的……
给定一个只包括 '(' , ')' , '{' , '}' , '[' , ']' 的字符串,判断字符串是否有效……
'{'
'}'
'['
']'
给定一个链表,删除链表的倒数第n 个节点,并且返回链表的头结点……
给定一个包含n 个整数的数组 nums 和一个目标值 target ,判断 nums 中是否存在四个元素……
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合……
2-9
给定一个包括n 个整数的数组 nums ** 和 一个目标值 target……
给定一个包含 n 个整数的数组 nums ,判断 nums 中是否存在三个元素 a,b,c , 使得a + b + c = 0 ?找出所有满足条件且不重复的三元组
编写一个函数来查找字符串数组中的最长公共前缀。
罗马数字包含以下七种字符: I , V , X , L , C , D 和 M …
I
V
X
L
C
D
M
给定 n 个非负整数 a 1,a 2,…,a n,每个数代表坐标中的一个点(i ,ai ) …
给定一个字符串( s ) 和一个字符模式( p )。实现支持 '.' 和 '*' 的正则表达式匹配…
'.'
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数…
请你来实现一个atoi函数,使其能将字符串转换成整数…
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转列…
将一个给定字符串根据给定的行数,以从上往下、从左到右进行Z 字形排列…
给定一个字符串s ,找到s中最长的回文子串。你可以假设s的最大长度为 1000…
给定一个字符串,请你找出其中不含有重复字符的最长子串 的长度…
给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序 的方式存储的,并且它们的每个节点只能存储一位 数字…
给定一个整数数组 nums 和一个目标值 target ,请你在该数组中找出和为目标值的那两个 整数,并返回他们的数组下标…
vue-view-model…
isBatchingUpdates-dirtyComponents…
talk-modules….
judge-array….
loader-plugin….
Simplified-Twitter….
string…
heap…
array…
webpack…
数据类型转换…
关于css的透明度…
promise…
js的作用域…
js的异步历程…
深入es6…
深入了解DOM和BOM…
数组按顺序插值…
为什么token相对cookie安全…
数组去重…
取出数组中符合特定条件的元素…
more string…
Object.prototype.toString.call() 、 instanceof 以及 Array.isArray() …
call,apply…
关于ua…
想想其他的思路…
理解任务队列(消息队列)…
说说你的理解…
有几种方式实现…
介绍下 npm 模块安装机制,为什么输入 npm install 就可以自动安装对应的模块?…
假设4次挥手中,如果没有(稍等,还有最后一个包),那是不是就是三次挥手…
对象类型会调用 toString 方法转换成字符串 [object Object…
进行排序,输出结果…
对话框支持可拖拽…
flatten的基本实现,具体可以参考lodash库的flatten源码…
比如 sleep(1000) 意味着等待1000毫秒…
(5).add(3).minus(2) …
改造下面的代码,使之输出0 - 9…
什么是防抖和节流?有什么区别?如何实现?…
通过new的模拟实现,带大家揭开使用new获得构造函数实例的真相 new 一句话介绍…
将数组扁平化并去除其中重复数据,最终得到一个升序且不重复的数组…
每天5分钟弄懂一个知识点…
获取一年中所有周六周日…
算法题…
早在 2013年, 加里·伯恩哈德就在微博上发布了以下代码段…
来自某大厂的一道笔试题…
请把俩个数组 [A1, A2, B1, B2, C1, C2, D1, D2] 和 [A, B, C, …
模块化主要是用来抽离公共代码,隔离作用域,避免变量冲突等…
对数组进行冒泡排序算是比较简单的,冒泡排序也是容易理解的一种排序算法了,在面试的时候,很可能就会问到…
其中一个主要的区别在于浏览器的event loop 和nodejs的event loop 在处理异步事件的顺序是不同…
浏览器会把HTML解析成DOM,把CSS解析成CSSOM,DOM和CSSOM合并就产生了渲染树(Render Tree)…
Set 是一种叫做集合的数据结构,Map 是一种叫做字典的数据结构…
用const和let声明的变量,不会存在window对象中大家都知道在全局 …
某公司 1 到 12 月份的销售额存在一个对象里面……
你能否给出一个惊艳面试官的答案?
一道经常出现的面试题~
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标
computed是计算属性,得到的一个新值?
为什么要在列表组件中写 key,其作用是什么?
Vuex 的 mutation 和 Redux 的 reducer 中不能做异步操作
这里所说的同步异步, 是不是真正的同步异步, 它还是同步执行的……
比如有10000数据要处理~
例如 push、pop、splice 等方法
重点在:isBatchingUpdates,dirtyComponents的理解上。
一个考函数式编程(柯里化函数)的问题。
在這個提示中,我會通過一個例子向您展示Vue會如何與其它軟體衝突如果你不知道這一點。
有时候我们需要将一个对象的某些属性放到白名单里,这样来说,我们有一个数组代表了一张数据库表,并且为了一些功能我们需要从中选出(select)一些字段。
select
JavaScript 中一个很棒的相等比较解决方案
在这里 tap 是一个小怪物。一个可以用来快速调试、链式调用、匿名函数,还可以打印任何你想打印的东西的函数。
在 JavaScript 中 数组(Array)随处可见,使用ECMAScript 6 中的新特性 扩展运算符 你可以做很多很棒事情。在这边文章中,我将为你介绍在编码中有用的3个技巧。
一个控制超时的技巧
理解在 JavaScript 中如何使用 Bind 方法绑定对象和函数
Bind
分享三个让开发变得更高效的实用语法糖
在这个 tip,我将介绍 var 和 let 之间不同的作用域。我应该使用 let 替代 var 吗?让我们来看一下吧!
循环一个list从中寻找一个或一些值,是一个很常见的需求。但是即使我们要找的元素就是数组里的第一个,我们不也能从循环中直接return,只能遍历整个数组。本文教你如何使用.some和.every快速结束循环。
list
return
.some
.every
在一个表达式中,由左到右计算每个表达式并返回最后一个。
本周我做了一个简单的“复制到剪贴板”按钮,这是我第一次做这种功能,向大家分享一下我的实现方法。
有时我们需要不停的循环数组的元素,就像一组旋转的图片,或者音乐的播放列表。这里告诉你如何使一个数组拥有循环的能力。
使函数的参数与回调函数为可选参数。
如何更加高效的取得文件扩展名呢?
理解使用new与不使用new时将返回什么值
简单而优雅地操作DOM事件的方法
运用&&与条件断点的实用的log技巧
&&
log
在Javascript里,你可以简单的取得unix时间戳
使用reduce()函数时的一些建议
reduce()
理解并应用变量的声明。
跨浏览器且纯JavaScript检测document是否加载完成。
对于纯数字数组,使用内置函数Math.max()和Math.min()的方法。
JavaScript理论上说只传递原始类型和对象(或引用)类型的值。在引用类型的情况下引用值本身通过值传递。
你知道在函数参数内也可以使用解构吗?
冻结内置对象的原型方法。
计算数组的平均值与中位数
将JSON对象的参数选择性地生成字符串。
怎样给一个对象添加私有参数、getter或setter。
getter
setter
将多位数组转化为单一数组的三种不同方法。
移除包含不同类型数据的数组中重复的元素。
当你为存在的网站开发扩展插件时,由于现代的动态Javascript,操作DOM并不是很容易。
赋值是很常见的。有时候打字对于我们这些“懒惰的程序员”来说是很费时间的。所以,我们可以使用一些小把戏来使我们的代码更清楚更简单。
实现异步循环时,你可能会遇到问题。
我们可以创建一个函数,它可以仅用一行代码生成0…(N-1)数列。
对象是一个无序的对象集合。这意味着如果你想在对象里保存有序的数据,你需要重新处理它,因为对象里的数据不保证是有序的。
在JavaScript的方法里,arguments参数可以让你访问传递给该方法的所有参数。arguments是一个类数组对象;arguments可是使用数组标记访问,而且它有length参数,但是它没有filter、map和forEach这样内建到数组内的方法。因此,如下代码是一个非常常见的将arguments转换为数组的办法
arguments
filter
map
forEach
逻辑运算符是JavaScript的核心之一,在这里你将看到一种无论你传什么值都可以总是得到true或false的方法。
大家对斐波那契(Fibonacci)数列都很熟悉。我们可以再20秒内写出下面这样一个方法,它可以运行,但并不高效。它做了太多重复的运算,我们可以通过存储这些运算结果来使其加速。
柯里化(currying)与部分应用(partial application)是两种将一个函数转换为另一个有着较小普通参数个数的函数的方法。
短路求值是说, 只有当第一个运算数的值无法确定逻辑运算的结果时,才对第二个运算数进行求值:当AND(&&)的第一个运算数的值为false时,其结果必定为false;当OR(||)的第一个运算数为true时,最后结果必定为true。
||
你可能有一个很多名字组成的列表,需要过滤掉重复的名字并按字母表将其排序。
立即执行函数表达式( IIFE - immediately invoked function expression)是一个立即执行的匿名函数表达式,它在Javascript中有一些很重要的用途。
== (或者 !=) 操作在需要的情况下自动进行了类型转换。=== (或 !==)操作不会执行任何转换。===在比较值和类型时,可以说比==更快。
!=
===
!==
==
将字符串转换为数字是极为常见的。最简单和快速的方法是使用+(加号) 来实现。
+
在JavaScript中清空一个数组有很多方法,但这是一个最高效的方法。
Fisher-Yates Shuffling 算法对数组进行洗牌
在面向对象的Javascript中为对象建立一个方法时,返回当前对象可以让你在一条链上调用方法。
假如你需要拼接一些不确定类型的变量为字符串,你需要确保算术运算符在你拼接时不会起作用。使用concat
通常情况下~~X比Math.trunc(X)要快,但同时也会使你的代码做一些讨厌的事情。
~~X
Math.trunc(X)
在Node里,你可以让你的程序根据其运行自require('./something.js')或者node something.js而做不同的处理。如果你想与你的一个独立的模……
require('./something.js')
node something.js
通常下,你并不能给回调函数传递参数,但是你可以借助Javascript闭包的优势来传递参数给回调函数。
JavaScript并未提供contains方法。检测子字符串是否存在于字符串或者变量是否存在于数组你可能会这样做。
介绍一个ES6的新特性,箭头函数或许一个让你用更少行写更多代码的方便工具。
快速的测量javascript的性能,我们可以使用console的方法,例如 console.time(label)和 console.timeEnd(label)
console.time(label)
console.timeEnd(label)
在许多编程语言中,方法的参数时默认强制需要的,开发人员需要明确定义一个可选的参数。
理解变量提升有助于管理函数作用域
这是一些检查某对象是否有某属性的方法。
ES6中,JS现在有了引号拼接字符串的替代品,模板字符串。
这是一个快速、安全、可重用的方法将node list转换为DOM元素的数组。
JavaScript的严格模式使开发者更容易写出“安全”的代码。
写一个方法可以接受单个参数也可以接受一个数组,而不是分开写两个方法。这和jQuery的一些方法的工作原理很像(css 可以修改任何匹配到的选择器).
css
理解undefined与null的区别。
undefined
null
Javascript有一个原生方法sort可以排列数组。一次简单的array.sort()将每一个数组元素视为字符串并按照字母表排列。但是当你试图整理一个非ASCII元素的数组时,你可能会得到一个奇怪的结果。
array.sort()
我们怎样来提高和优化javascript里嵌套的if语句呢?
if
key是必须传递给从数组中动态创建的所有组件的一个值。它是一个唯一且固定的id,用来识别DOM中的每个组件,也可以让我们区别它是否是同一个组件。使用key可以确保子容器是可保存而且不需要重复创建的,还可以防止奇怪的事情发生。
JavaScript模块和构建步骤越来越复杂和多样化,但是新框架里的样板是什么样子的呢?
向一个数组中插入元素是平时很常见的一件事情。你可以使用push在数组尾部插入元素,可以用unshift在数组头部插入元素,也可以用splice在数组中间插入元素。