几个JavaScript面试题

来源:互联网 发布:php 判断是不是整数 编辑:程序博客网 时间:2024/04/30 18:46

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

var foo = 10 + '20';

foo = 1020


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

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

goh angasal a m'i


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


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

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

bar


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

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


2


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

console.log('one');setTimeout(function() {  console.log('two');}, 0);console.log('three');

one
three
two


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

0 0