几个JavaScript面试题

本文解析了几个具体的JavaScript代码示例,展示了如何理解变量赋值、字符串操作、数组方法及异步执行顺序等核心概念。
摘要由CSDN通过智能技术生成

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中的回调函数并非立即执行,而是需要加入等待队列中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值