【前端面试题】JS题中的一些坑(第二期)

1.用sort和一个函数来实现对数组的排序(从小到大)

直接分析答案(重点是sort())

function numberSort(a,b)
{
  return a - b;
}
var arr=new Array("23","6","12","35","76");
document.write(arr.sort(numberSort));

①当sort()的方法参数为空时,元素按照转换为的字符串的诸个字符的 Unicode 位点进行排序

②有方法参数,只需要记得 升序排序 return a - b; 降序排序 return b - a

③return a 和 b的减法运算是什么原理?

  • a - b < 0,那么 a 会被排列到 b 之前
  • a - b = 0,a 和 b 的相对位置不变
  • a - b > 0,那么 b 排列到 a 之前

注意!!!sort()方法是会改变数组原结构的,在其他题里会有涉及

2.下面哪些关于块内声明函数的用法是正确的?

正确答案:

if (x) {  var foo = function() {}}

记住一句话:如果确实需要在块中定义函数,要用函数表达式来声明函数

/* 这是正确的 */

if (x) {

        var foo = function() {};

}

/* 这是错误的 */

if (x) {

        function foo() {};

}

3.以下语句输出的结果是什么?

console.log(undefined + 1)

踩坑点:选的是undefined或1

知识点:undefined和数字1计算时,先调用隐式转换,把undefined转化为数字类型

第一个重点在这,undefined转化为Number类型,结果是NaN(Not-a-Number)

第二个重点,NaN和任何数字进行加法计算,结果都是NaN

所以正确答案是:NaN

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值