几个JavaScript面试题

柔光的暖阳◎ 2022-08-18 13:25 291阅读 0赞

1.问题:`foo`的值是什么?

  1. var foo = 10 + '20';

foo = 1020

2.下面的语句的返回值是什么?

  1. "i'm a lasagna hog".split("").reverse().join("");

goh angasal a m’i

split()将字符串分割成数组
reverse()用来颠倒数组中的元素,该方法会改变原来的数组,而不会创建新的数组
join()用于把数组中的所有元素放入一个字符串中

3.`window.foo`的值是什么?

  1. ( window.foo || ( window.foo = "bar" ) );

bar

4.foo.length`的值是什么?

  1. var foo = [];
  2. foo.push(1);
  3. foo.push(2);

2

5.下面代码的输出是什么?

  1. console.log('one');
  2. setTimeout(function() {
  3. console.log('two');
  4. }, 0);
  5. console.log('three');

one
three
two

JavaScript引擎是单线程的,所有的异步事件(包括计时器,鼠标事件,一个XMLHttpRequest完成)仅当程序有缺口时才会执行,并不是我们想要它什么时候执行就可以的,所以即便我们给setTimeout设定的时间延迟为0ms,事件也不会立即触发,因为异步的关系,setTime中的回调函数并非立即执行,而是需要加入等待队列中。

发表评论

表情:
评论列表 (有 0 条评论,291人围观)

还没有评论,来说两句吧...

相关阅读

    相关 面试总结

    1.session和cookie的区别 (1)cookie存放在客户端的浏览器上,session则存放在服务器中 (2)Cookie是不安全的,别人可以通过分析本地的c