今天(已经好些天前了...),群里面(JS前端开发跳板6群【81501322】)有个群友问了这样一个问题。前端
如题:在下面画线的地方填任何代码,使得最终输出 'hello world',至少写五个不一样思路的方案 异步
![]()
看到这个题,个人心里是崩溃的,这什么鬼?函数
不一会就看到有大神给出了几个答案.3d
本身的思想也会被开窍的。code
细心的童鞋有没有看到问题??console.log
的结果并非题目给出的 'hello world' ,而是 'hello' 'world'。(固然,以我当时懵逼人脸神是发现不了的)cdn
随后,一位大神给出了大案。blog
解析:经过自执行函数直接输出'hello world',而后抛出一个异常,程序报错,后面的代码再也不解析执行,虽然报错了,可是很好的达到想要的结果队列
看到这里,个人思路就来了(群众的力量是伟大的,特别是一群有相同爱好的,热心帮助的群众【词穷了,该多读点书了】)ip
细心研究发现,这道题目能够从语句执行顺序、重写 console.log
的这个方法来下手(目前就这两种了)开发
解析:经过重写console.log方法,来达到效果。可能有些童鞋有点懵逼了,这是啥东西,不要急,你要知道的是这个知识点《逗号运算符》
解析:经过定义一个队列,重写
console.log
方法向队列中添加元素而后异步输出。这里须要注意的是if
中是一个自执行表达式,若是不显式return
一个值的话,它的值是undefined
解析:经过添加其余的
if
语句来改变输出结果
解析:经过改写
console.log
函数来确保输出值永远是固定值
看了答案后再看题目,感受也不太难,这些语法都可以写的出来,可是刚看到题目的瞬间仍是无从下手,仍是要多练多加深印象