补全JavaScript
代码,要求在页面上渲染出一个直角三角形,三角形换行要求使用"br
"实现。三角形如下:
*
**
***
解:
<script>
var triangle = document.querySelector('.triangle');
// 补全代码
let htm = '';
for (let i = 1; i <= 3; i++) {
for (let j = 0; j < i; j++) {
htm += '*';
}
htm += '
';
}
triangle.innerHTML = htm;
</script>
补全JavaScript
代码,要求以字符串的形式返回文件名扩展名,文件名参数为"filename
"。
注意:返回的扩展名格式为
.扩展
解:
<script>
const _getExFilename = (filename) => {
// 补全代码
const arr = filename.split(".")
return '.' + arr[arr.length - 1]
}
</script>
将字符串通过split
方法以.
分割成数组,数组最后一位既是扩展名称
补全JavaScript
代码,要求返回参数数字的千分位分隔符字符串。
输入:_comma(12300)
输出:'12,300'
解:
<script type="text/javascript">
function _comma(number) {
// 补全代码
if (number < 1000) {
return number + '';
};
return _comma(parseInt(number / 1000)) + ',' + number % 1000
}
</script>
举个例子:
当number
为14360时,number / 1000
为14.36,parseInt(number / 1000)
为14,_comma(parseInt(number / 1000))
为'14'
, number % 1000
为360,最终return
的结果为'14,360'
补全JavaScript
代码,要求每当id
为"input
"的输入框值发生改变时触发id
为"span
"的标签内容同步改变。
注意: 必须使用DOM0
级标准事件(onchange
)
解:
<body>
<input id="input" type="text" />
<span id="span"></span>
<script type="text/javascript">
// 补全代码
const inp=document.getElementById('input');
const spa=document.getElementById('span');
inp.onchange=()=>{
spa.innerText=inp.value
}
</script>
</body>
请补全JavaScript
代码,要求返回一个长度为参数值并且每一项值都为参数值的数组。
注意:请勿直接使用for/while
解:
<script type="text/javascript">
const _createArray = (number) => {
// 补全代码
return new Array(number).fill(number)
}
</script>
new Array(number)
表示生成有number个元素的数组,元素内容默认为空属性:
fill()
方法用一个固定值填充一个数组中从起始索引到终止索引内的全部元素。不包括终止索引。点击查看详情
arr.fill(value, start, end)
// - `value` 用来填充数组元素的值。
// - `start` 可选 起始索引,默认值为 0。
// - `end` 可选 终止索引,默认值为 this.length。
请补全JavaScript
代码,该函数接收两个参数分别为旧版本、新版本,当新版本高于旧版本时表明需要更新,返回true
,否则返回false
。
注意:
"X.X.X"
X∈[0,9]
解:
<script type="text/javascript">
const _shouldUpdate = (oldVersion, newVersion) => {
// 补全代码
const oldNum=oldVersion.split('.').join('')+0;
const newNum=newVersion.split('.').join('')+0;
return newNum>oldNum
}
</script>
版本号格式均为"X.X.X"
,且x
为0-9的数字,直接可以对其通过split('.')
分割成数组后为[x,x,x]
,再进一步使用join('')
将数组转换成字符串为'xxx'
,加个0转换成数字number
类型的,之后进行比较即可。
请补全JavaScript
代码,实现一个函数,要求如下:
[start,end]
和随机数个数"n
"生成随机数n
"大于数字范围的情况输入:getUniqueNums(2,10,4)
输出:[4,6,2,8]
解:
<script>
const _getUniqueNums = (start,end,n) => {
// 补全代码
const set=new Set();
while(set.size<n){
const num=parseInt(Math.random()*(end-start)+start);
set.add(num)
};
return [...set]
}
</script>
利用ES6
的Set
数据结构,保证其中的数据不重复,通过Set
的size
属性获取其元素个数与n
进行判断,少于指定元素时就生成随机数,然后通过add
方法向Set
中添加元素,之后返回时通过解构将Set
结构转换成数组。
请补全JavaScript
代码,根据预设代码中的数组,实现以下功能:
name
属性DOM0
级标准事件(onclick
)解:
<body>
<button class='up'>销量升序</button>
<button class='down'>销量降序</button>
<ul></ul>
<script>
var cups = [
{ type: 1, price: 100, color: 'black', sales: 3000, name: '牛客logo马克杯' },
{ type: 2, price: 40, color: 'blue', sales: 1000, name: '无盖星空杯' },
{ type: 4, price: 60, color: 'green', sales: 200, name: '老式茶杯' },
{ type: 3, price: 50, color: 'green', sales: 600, name: '欧式印花杯' }
]
var ul = document.querySelector('ul');
var upbtn = document.querySelector('.up');
var downbtn = document.querySelector('.down');
// 补全代码
function showList(list) {
let str = '';
list.forEach(item => {
str += `${item.name}`
})
ul.innerHTML = str
};
showList(cups);
upbtn.onclick = function () {
cups.sort((next, prev) => next.sales - prev.sales);
showList(cups);
};
downbtn.onclick = function () {
cups.sort((next, prev) => prev.sales - next.sales);
showList(cups);
};
</script>
</body>
请补全JavaScript
代码,该函数接受两个参数分别为数组、索引值,要求在不改变原数组的情况下返回删除了索引项的新数组。
解:
<script type="text/javascript">
const _delete = (array,index) => {
// 补全代码
return array.filter((_,i)=>i!==index)
}
</script>
请补全JavaScript
代码,要求每次调用函数"closure"时会返回一个新计数器。每当调用某个计数器时会返回一个数字且该数字会累加1。
注意:
解:
<script type="text/javascript">
const closure = () => {
// 补全代码
let num=1;
return ()=>num++;
};
</script>
这题主要考试的就是JS
的闭包,点击查看闭包详情