自古,三百六十行,每一行入行的时候都有个仪式。现现在编程这个行当,也约定俗成出了一个入行仪式,就是选你将要使用的编程语言,写段代码输出
hello world!
,这片文章讲的就是这么个事——写个函数输出hello world,请真的不要以为很简单。python
软件开发这个行业里面,有这么一句挺牛逼的话:“人生苦短,我用Python”,虽然Python我会用,也确实发自心里地以为,在言简意赅这条路上,它配得上这句话。但今天我就想用JavaScript
向python
叫叫板,比比更“短”。问题只有一个:请使用JavaScript
语言编写一个函数,返回hello world!
编程
可是我有些个附加条件,嘿嘿嘿数组
我先来作个示范,先抛开这条的附加条件,实现起来那就太简单了浏览器
function f(){
return "hello world!"
}
复制代码
OK, 而后在控制台用console.log(f())打印就能够看到hello world!了。安全
当加上这个附加条件,传统的函数定义方式显然行不通了。bash
固然如今,ES6已经至关普及,能想到箭头函数应在情理之中。其次就是一行字符串如何写成多行,这也应该是编程基础,不绕弯子了,直接上代码:app
f=(
)=>
"h\ el\ lo\ w\ or\ ld\ !"
复制代码
涉及的JavaScript知识点:箭头函数
,字符串换行
编程语言
每行两个字符,你是否是连函数都不会定义了,反正箭头函数是行不通了 总行数不超过30行,有点残忍,算了40行也行吧函数
若是只出题目和贴答案,对于各位看官来讲,这也只能算是奇技淫巧。因此本着阅有所得得出发点,我仍是简略剖析下个人思路,但愿能给你些启发:ui
\
的存在,所要返回的hello world!
字符串仍是能够输出的,只不过多些几行的事,问题不大。.
符号外,还能够用数组的方式,便可以在数组符号[]
中,写方法名的字符串进行方法的调用。可以使用的方法,仅供参考:''.trim()
,''.slice()
,[].join()
function()
什么的,都显得太过无力了。不说啥了,看代码吧
f=
''
[
'\ t\ r\ i\ m'
][
'\ b\ i\ n\ d'
]`
H\
e\
l\
l\
o\
,\
\
w\
o\
r\
l\
d!
`
复制代码
涉及的JavaScript知识点:字符串换行
,trim()
, join()
, bind()
, 模板字符串
激不激动,刺不刺激。
其实还不够,我是个有时间,就想把事情作到极致的人
握紧方向盘,系好安全带,咱们继续
有没有世界观快要崩塌了,是否是开始以为,本身历来没学过真的JavaScript。 有没有不只函数不会建立使用了,没有字符串换行符,是否是连字符串都不会写了。
好了,言归正传,
若是你想挑战一下本身,那么就请先不要继续往下阅读,直接在浏览器的Console中尝试一下。
前 方 高 能
开 始 炫 技
[
,
j
,
,
o
,
,
i
,
,
n
,
,
b
,
,
d
,
,
s
,
,
p
,
,
l
,
,
t
]
=
`
j
o
i
n
b
d
s
p
l
t
`
f
=
[
]
[
j
+
o
+
i
+
n
]
[
b
+
i
+
n
+
d
]
(
`
H
e
l
l
o
,
w
o
r
l
d
!
`
[
s
+
p
+
l
+
i
+
t
]
`
`
,
[
]
+
[
]
)
复制代码
在问题2时,已较为详细的分析了思路,问题3问题难度虽然加大,但思路基本不变,这里为了便于理解,仅汇总一下涉及到的知识点:
模板字符串
,能够自由换行,但换行处会有一个换行符\n
。解构赋值
,字符串能够当作是单个字符组成的数组,因为数组的定义能够换行,经过将模板字符串解构赋值给数组,即可得到初始化为单个字符的变量。join()
,splite()
。bind()
,同时可复习与apply()
和call()
的区别和联系。[]+[]
表示空字符''
其实我就一个想法,看过以后不要以为这是篇讲述什么奇技淫巧的文章,假若能帮你回顾复习了些JavaScript的基础知识,便就善莫大焉了。