前端面试题JavaScript篇——2022-09-22

每日3题

1 以下代码执行后,控制台中的输出内容为?

console.log(+true, !'hello')

2 点击p标签时,会输出什么

const numbers=[1,2,3,4,5]
const [y] = numbers
console.log(y)

3 以下代码执行后,控制台中的输出内容为?

const fn = (x) => (y) => (z) => {
  console.log(x, y, z);
};

fn(1)(2)(3);
  • 公众号【今天也要写bug】更多前端面试题

答案及解析

1

// 答案:1 false
// 考察运算符和类型转换
// 相加运算符:如果+两边有字符串,则将两者拼接为字符串,否则进行相加运算
// +true,会将 true 转换成数字 1,最终输出 1
console.log(+true, !"hello");
// 在 JS 中,假值有:null;NaN;0;空字符串 ("" or '' or ``);undefined.
// 除此之外都是真值
// !真值 => 假值,!假值 => 真值
// 所以 !"hello" 为 false

2

// 答案:1
// 考察 ES6 数组的解构赋值
// ES6 允许写成这样:
// let [a, b, c] = [1, 2, 3]
// 这种写法可以从数组中提取值,按照对应位置,对变量赋值
const numbers = [1, 2, 3, 4, 5];
const [y] = numbers; // y 对应 1
console.log(y); // 故输出 1

3

// 答案:1 2 3
// 考察箭头函数的闭包和函数调用的结合性
const fn = (x) => (y) => (z) => {
  console.log(x, y, z);
};
// fn 相当于:
const fn = (x) => {
  return (y) => {
    return (z) => {
      console.log(x, y, z);
    };
  };
};

fn(1)(2)(3); // 函数调用的结合性是从左到右,等价于
const f1 = fn(1); // (y) => {...}
const f2 = f1(2); // (z) => {  console.log(x, y, z); }
f2(3); // 输出 1 2 3

文章名称:前端面试题JavaScript篇——2022-09-22
文章出自:http://bzwzjz.com/article/dsojgcd.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 成都网站设计 企业网站建设 网站建设方案 成都网站设计 成都网站建设 网站制作 成都网站建设推广 成都网站建设公司 成都网站设计公司 成都网站设计 成都网站制作 重庆企业网站建设 成都网站建设 成都网站制作 网站建设开发 高端网站设计推广 营销型网站建设 移动手机网站制作 成都做网站建设公司 成都品牌网站设计 成都品牌网站建设 成都网站设计