{"id":6209,"date":"2021-02-10T02:02:04","date_gmt":"2021-02-10T02:02:04","guid":{"rendered":"https:\/\/www.studygate.com\/blog-cn\/?p=6209"},"modified":"2021-02-10T02:02:26","modified_gmt":"2021-02-10T02:02:26","slug":"javascript-commands","status":"publish","type":"post","link":"https:\/\/www.studygate.com\/blog-cn\/javascript-commands\/","title":{"rendered":"Javascript \u5e38\u7528\u4ee3\u7801\uff1a\u7a0b\u5e8f\u5458\u5fc5\u987b\u77e5\u9053\u7684Javascript \u5e38\u7528\u4ee3\u7801\u6709\u54ea\u4e9b\uff1f"},"content":{"rendered":"
<\/p>\n
JavaScript \u662f\u533a\u5206\u5927\u5c0f\u5199\u7684\uff0c\u4f7f\u7528 Unicode \u5b57\u7b26\u96c6<\/p>\n
\u8bed\u53e5\u7528\u5206\u53f7\uff08;\uff09\u8fdb\u884c\u5206\u9694<\/p>\n
js \u662f\u52a8\u6001\u7c7b\u578b\u8bed\u8a00\uff0c\u58f0\u660e\u3001\u91cd\u65b0\u8d4b\u503c\u65f6\u4e0d\u7528\u6307\u5b9a\u53d8\u91cf<\/p>\n
\/\/ \u5355\u884c\u6ce8\u91ca<\/p>\n
\/* \u591a\u884c\u6ce8\u91ca *\/<\/p>\n
– \u4e00\u822c\u7528 console.log(x) \u5c06\u53d8\u91cf\u6253\u5370\u8fdb\u884c\u67e5\u770b<\/p>\n
\u53ef\u4ee5\u7528 window.alert(x) \u5f39\u51fa\u53d8\u91cf\u503c\u8fdb\u884c\u8c03\u8bd5<\/p>\n
\u5728\u7f51\u9875\u5185 <script>alert(“\u6211\u7684\u7b2c\u4e00\u4e2a JavaScript”);<\/script><\/p>\n
\u5f15\u7528\u5916\u90e8 <script src=”my.js”><\/script><\/p>\n
\u51fd\u6570\u4e00\u822c\u65e0\u7ed3\u679c\u65f6\uff0c\u8fd4\u56de\u503c\u4e3a -1<\/p>\n
debugger; \u53ef\u4ee5\u6b64\u884c\u6682\u505c\u6267\u884c<\/p>\n
\u7c7b\u578b\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u8bf4\u660e\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u4e3e\u4f8b<\/p>\n
\u5e03\u5c14\u503c Boolean\u00a0\u00a0\u00a0\u00a0\u00a0 \u771f\u5047\uff0c\u53ea\u6709\u4e24\u4e2a\u503c\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 true \u548c false<\/p>\n
null \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u7a7a\u503c\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 null<\/p>\n
undefined\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u53d8\u91cf\u672a\u5b9a\u4e49\u65f6\u7684\u5c5e\u6027 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 undefined<\/p>\n
\u6570\u5b57 Number\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u6574\u6570\u6216\u6d6e\u70b9\u6570 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 44, 9.884, -5<\/p>\n
\u6574\u6570 BigInt \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u5b58\u50a8\u548c\u64cd\u4f5c\u5927\u6574\u6570\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 98643411144<\/p>\n
\u5b57\u7b26\u4e32 String\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u8868\u793a\u6587\u672c\u503c\u7684\u5b57\u7b26\u5e8f\u5217 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 “gairuo”<\/p>\n
\u4ee3\u8868Symbol\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u5b9e\u4f8b\u552f\u4e00\u4e14\u4e0d\u53ef\u6539\u53d8\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 ECMAScript 6 \u65b0\u6dfb\u52a0<\/p>\n
\u5bf9\u8c61 Object<\/p>\n
\u5bf9\u8c61\u5305\u542b\uff1a<\/strong><\/p>\n Function\uff08\u51fd\u6570\uff09<\/p>\n Array\uff08\u6570\u7ec4\uff09<\/p>\n Date\uff08\u65e5\u671f\uff09<\/p>\n RegExp\uff08\u6b63\u5219\u8868\u8fbe\u5f0f\uff09<\/p>\n 1\u3001\u90ae\u7bb1<\/p>\n export const isEmail = (s) => {<\/p>\n return \/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$\/.test(s)<\/p>\n }<\/p>\n 2\u3001\u624b\u673a\u53f7\u7801<\/p>\n export const isMobile = (s) => {<\/p>\n return \/^1[0-9]{10}$\/.test(s)<\/p>\n }<\/p>\n 3\u3001\u7535\u8bdd\u53f7\u7801<\/p>\n export const isPhone = (s) => {<\/p>\n return \/^([0-9]{3,4}-)?[0-9]{7,8}$\/.test(s)<\/p>\n }<\/p>\n 4\u3001\u662f\u5426url\u5730\u5740<\/p>\n export const isURL = (s) => {<\/p>\n return \/^http[s]?:\\\/\\\/.*\/.test(s)<\/p>\n }<\/p>\n 5\u3001\u662f\u5426\u5b57\u7b26\u4e32<\/p>\n export const isString = (o) => {<\/p>\n return Object.prototype.toString.call(o).slice(8, -1) === ‘String’<\/p>\n }<\/p>\n 6\u3001\u662f\u5426\u6570\u5b57<\/p>\n export const isNumber = (o) => {<\/p>\n return Object.prototype.toString.call(o).slice(8, -1) === ‘Number’<\/p>\n }<\/p>\n 7\u3001\u662f\u5426boolean<\/p>\n export const isBoolean = (o) => {<\/p>\n return Object.prototype.toString.call(o).slice(8, -1) === ‘Boolean’<\/p>\n }<\/p>\n 8\u3001\u662f\u5426\u51fd\u6570<\/p>\n export const isFunction = (o) => {<\/p>\n return Object.prototype.toString.call(o).slice(8, -1) === ‘Function’<\/p>\n }<\/p>\n 9\u3001\u662f\u5426\u4e3anull<\/p>\n export const isNull = (o) => {<\/p>\n return Object.prototype.toString.call(o).slice(8, -1) === ‘Null’<\/p>\n }<\/p>\n 10\u3001\u662f\u5426undefined<\/p>\n export const isUndefined = (o) => {<\/p>\n return Object.prototype.toString.call(o).slice(8, -1) === ‘Undefined’<\/p>\n }<\/p>\n 11\u3001\u662f\u5426\u5bf9\u8c61<\/p>\n export const isObj = (o) => {<\/p>\n return Object.prototype.toString.call(o).slice(8, -1) === ‘Object’<\/p>\n }<\/p>\n 12\u3001\u662f\u5426\u6570\u7ec4<\/p>\n export const isArray = (o) => {<\/p>\n return Object.prototype.toString.call(o).slice(8, -1) === ‘Array’<\/p>\n }<\/p>\n 13\u3001\u662f\u5426\u65f6\u95f4<\/p>\n export const isDate = (o) => {<\/p>\n return Object.prototype.toString.call(o).slice(8, -1) === ‘Date’<\/p>\n }<\/p>\n 14\u3001\u662f\u5426\u6b63\u5219<\/p>\n export const isRegExp = (o) => {<\/p>\n return Object.prototype.toString.call(o).slice(8, -1) === ‘RegExp’<\/p>\n }<\/p>\n 15\u3001\u662f\u5426\u9519\u8bef\u5bf9\u8c61<\/p>\n export const isError = (o) => {<\/p>\n return Object.prototype.toString.call(o).slice(8, -1) === ‘Error’<\/p>\n }<\/p>\n 16\u3001\u662f\u5426Symbol\u51fd\u6570<\/p>\n export const isSymbol = (o) => {<\/p>\n return Object.prototype.toString.call(o).slice(8, -1) === ‘Symbol’<\/p>\n }<\/p>\n 17\u3001\u662f\u5426Promise\u5bf9\u8c61<\/p>\n export const isPromise = (o) => {<\/p>\n return Object.prototype.toString.call(o).slice(8, -1) === ‘Promise’<\/p>\n }<\/p>\n 18\u3001\u662f\u5426Set\u5bf9\u8c61<\/p>\n export const isSet = (o) => {<\/p>\n return Object.prototype.toString.call(o).slice(8, -1) === ‘Set’<\/p>\n }<\/p>\n export const ua = navigator.userAgent.toLowerCase();<\/p>\n 19\u3001\u662f\u5426\u662f\u5fae\u4fe1\u6d4f\u89c8\u5668<\/p>\n export const isWeiXin = () => {<\/p>\n return ua.match(\/microMessenger\/i) == ‘micromessenger’<\/p>\n }<\/p>\n 20\u3001\u662f\u5426\u662f\u79fb\u52a8\u7aef<\/p>\n export const isDeviceMobile = () => {<\/p>\n return \/android|webos|iphone|ipod|balckberry\/i.test(ua)<\/p>\n }<\/p>\n 21\u3001\u662f\u5426\u662fQQ\u6d4f\u89c8\u5668<\/p>\n export const isQQBrowser = () => {<\/p>\n return !!ua.match(\/mqqbrowser|qzone|qqbrowser|qbwebviewtype\/i)<\/p>\n }<\/p>\n 22\u3001\u662f\u5426\u662f\u722c\u866b<\/p>\n export const isSpider = () => {<\/p>\n return \/adsbot|googlebot|bingbot|msnbot|yandexbot|baidubot|robot|careerbot|seznambot|bot|baiduspider|jikespider|symantecspider|scannerlwebcrawler|crawler|360spider|sosospider|sogou web sprider|sogou orion spider\/.test(ua)<\/p>\n }<\/p>\n 23\u3001\u662f\u5426ios<\/p>\n export const isIos = () => {<\/p>\n var u = navigator.userAgent;<\/p>\n if (u.indexOf(‘Android’) > -1 || u.indexOf(‘Linux’) > -1) {\u00a0 \/\/\u5b89\u5353\u624b\u673a<\/p>\n return false<\/p>\n } else if (u.indexOf(‘iPhone’) > -1) {\/\/\u82f9\u679c\u624b\u673a<\/p>\n return true<\/p>\n } else if (u.indexOf(‘iPad’) > -1) {\/\/iPad<\/p>\n return false<\/p>\n } else if (u.indexOf(‘Windows Phone’) > -1) {\/\/winphone\u624b\u673a<\/p>\n return false<\/p>\n } else {<\/p>\n return false<\/p>\n }<\/p>\n }<\/p>\n 24\u3001\u662f\u5426\u4e3aPC\u7aef<\/p>\n export const isPC = () => {<\/p>\n var userAgentInfo = navigator.userAgent;<\/p>\n var Agents = [“Android”, “iPhone”,<\/p>\n “SymbianOS”, “Windows Phone”,<\/p>\n “iPad”, “iPod”];<\/p>\n var flag = true;<\/p>\n for (var v = 0; v < Agents.length; v++) {<\/p>\n if (userAgentInfo.indexOf(Agents[v]) > 0) {<\/p>\n flag = false;<\/p>\n break;<\/p>\n }<\/p>\n }<\/p>\n return flag;<\/p>\n }<\/p>\n 25\u3001\u53bb\u9664html\u6807\u7b7e<\/p>\n export const removeHtmltag = (str) => {<\/p>\n return str.replace(\/<[^>]+>\/g, ”)<\/p>\n }<\/p>\n 26\u3001\u83b7\u53d6url\u53c2\u6570<\/p>\n export const getQueryString = (name) => {<\/p>\n const reg = new RegExp(‘(^|&)’ + name + ‘=([^&]*)(&|$)’, ‘i’);<\/p>\n const search = window.location.search.split(‘?’)[1] || ”;<\/p>\n const r = search.match(reg) || [];<\/p>\n return r[2];<\/p>\n }<\/p>\n 27\u3001\u52a8\u6001\u5f15\u5165js<\/p>\n export const injectScript = (src) => {<\/p>\n const s = document.createElement(‘script’);<\/p>\n s.type = ‘text\/javascript’;<\/p>\n s.async = true;<\/p>\n s.src = src;<\/p>\n const t = document.getElementsByTagName(‘script’)[0];<\/p>\n t.parentNode.insertBefore(s, t);<\/p>\n }<\/p>\n 28\u3001\u6839\u636eurl\u5730\u5740\u4e0b\u8f7d<\/p>\n export const download = (url) => {<\/p>\n var isChrome = navigator.userAgent.toLowerCase().indexOf(‘chrome’) > -1;<\/p>\n var isSafari = navigator.userAgent.toLowerCase().indexOf(‘safari’) > -1;<\/p>\n if (isChrome || isSafari) {<\/p>\n var link = document.createElement(‘a’);<\/p>\n link.href = url;<\/p>\n if (link.download !== undefined) {<\/p>\n var fileName = url.substring(url.lastIndexOf(‘\/’) + 1, url.length);<\/p>\n link.download = fileName;<\/p>\n }<\/p>\n if (document.createEvent) {<\/p>\n var e = document.createEvent(‘MouseEvents’);<\/p>\n e.initEvent(‘click’, true, true);<\/p>\n link.dispatchEvent(e);<\/p>\n return true;<\/p>\n }<\/p>\n }<\/p>\n if (url.indexOf(‘?’) === -1) {<\/p>\n url += ‘?download’;<\/p>\n }<\/p>\n window.open(url, ‘_self’);<\/p>\n return true;<\/p>\n }<\/p>\n 29\u3001el\u662f\u5426\u5305\u542b\u67d0\u4e2aclass<\/p>\n export const hasClass = (el, className) => {<\/p>\n let reg = new RegExp(‘(^|\\\\s)’ + className + ‘(\\\\s|$)’)<\/p>\n return reg.test(el.className)<\/p>\n }<\/p>\n 30\u3001el\u6dfb\u52a0\u67d0\u4e2aclass<\/p>\n export const addClass = (el, className) => {<\/p>\n if (hasClass(el, className)) {<\/p>\n return<\/p>\n }<\/p>\n let newClass = el.className.split(‘ ‘)<\/p>\n newClass.push(className)<\/p>\n el.className = newClass.join(‘ ‘)<\/p>\n }<\/p>\n 31\u3001el\u53bb\u9664\u67d0\u4e2aclass<\/p>\n export const removeClass = (el, className) => {<\/p>\n if (!hasClass(el, className)) {<\/p>\n return<\/p>\n }<\/p>\n let reg = new RegExp(‘(^|\\\\s)’ + className + ‘(\\\\s|$)’, ‘g’)<\/p>\n el.className = el.className.replace(reg, ‘ ‘)<\/p>\n }<\/p>\n 32\u3001\u83b7\u53d6\u6eda\u52a8\u7684\u5750\u6807<\/p>\n export const getScrollPosition = (el = window) => ({<\/p>\n x: el.pageXOffset !== undefined ? el.pageXOffset : el.scrollLeft,<\/p>\n y: el.pageYOffset !== undefined ? el.pageYOffset : el.scrollTop<\/p>\n });<\/p>\n 33\u3001\u6eda\u52a8\u5230\u9876\u90e8<\/p>\n export const scrollToTop = () => {<\/p>\n const c = document.documentElement.scrollTop || document.body.scrollTop;<\/p>\n if (c > 0) {<\/p>\n window.requestAnimationFrame(scrollToTop);<\/p>\n window.scrollTo(0, c – c \/ 8);<\/p>\n }<\/p>\n }<\/p>\n \u603b\u7684\u6765\u8bf4\uff0cJavaScript\u7684\u4ee3\u7801\u8f83\u5176\u4ed6\u8bed\u8a00\u76f8\u5bf9\u7b80\u5355\uff0c\u4e5f\u6bd4\u8f83\u5bb9\u6613\u4e0a\u624b\u3002\u4f46\u662f\u5982\u679c\u9047\u5230\u590d\u6742\u7684JavaScript\u95ee\u9898\uff0c\u4e0d\u5982\u6765StudyGate\u8ddfJavaScript\u9ad8\u624b\u8fc7\u62db\uff01StudyGate\u6c47\u96c6\u5168\u7f51JavaScript\u9ad8\u624b\uff0c24\/7\u5728\u7ebf\u3002\u51e0\u4e2a\u6b65\u9aa4\uff0c\u4f60\u7684JavaScript\u95ee\u9898\u5c31\u4f1a\u8fce\u5203\u800c\u89e3\uff01<\/p>\n Step 1\uff1a\u63d0\u4ea4\u4f5c\u4e1a\u8981\u6c42<\/p>\n \u4e09\u5206\u949f\u5373\u53ef\u5b8c\u6210\u4e0b\u5355\uff0c\u4e0b\u5355\u65f6\u53ef\u4ee5\u9009\u62e9\u4f5c\u4e1a\u9700\u8981\u7684\u65f6\u95f4\u548c\u5177\u4f53\u8981\u6c42\u3002<\/p>\n Step 2\uff1a\u9009\u62e9\u4e13\u4e1a\u5bfc\u5e08<\/p>\n \u4f5c\u4e1a\u63d0\u4ea4\u6210\u529f\u4e4b\u540e\uff0c\u5bfc\u5e08\u5ba1\u6838\u8981\u6c42\uff0c\u786e\u8ba4\u4e4b\u540e\u4f1a\u8054\u7cfb\u62a5\u4ef7\uff0c\u53ef\u81ea\u7531\u9009\u62e9\u4e13\u4e1a\u5b66\u79d1\u76f8\u5173\u5bfc\u5e08\uff0c\u5e76\u4e14\u786e\u8ba4\u4f5c\u4e1a\u6700\u7ec8\u4ef7\u683c\u3002<\/p>\n Step 3\uff1a\u5b8c\u6210\u8ba2\u5355, \u51c6\u65f6\u4ea4\u4ed8<\/p>\n \u5bfc\u5e08\u5f00\u59cb\u5904\u7406\u8ba2\u5355\u3002\u5728\u6b64\u671f\u95f4\u6709\u4efb\u4f55\u95ee\u9898\uff0c\u90fd\u53ef\u4ee5\u767b\u5f55\u8d26\u53f7\u548c\u5bfc\u5e08\u968f\u65f6\u6c9f\u901a\u3002\u4f5c\u4e1a\u5b8c\u6210\u540e\uff0c\u7cfb\u7edf\u81ea\u52a8\u53d1\u9001\u81f3\u4f60\u7684\u90ae\u7bb1\uff0c\u6240\u6709\u4fe1\u606f\u5b89\u5168\u4fdd\u5bc6\u3002\u4f60\u4e5f\u53ef\u4ee5\u767b\u5f55\u8d26\u53f7\u76f4\u63a5\u4e0b\u8f7d\u3002<\/p>\n Step 4\uff1a\u6536\u5230\u7b54\u684814\u5929\u4e4b\u5185\u786e\u8ba4\uff0c100%\u6ee1\u610f\u4fdd\u8bc1<\/p>\n \u6536\u5230\u4f5c\u4e1a\u4e4b\u540e14\u5929\u4e4b\u5185\uff0c\u5982\u679c\u5bf9\u4f5c\u4e1a\u6709\u4efb\u4f55\u95ee\u9898\uff0c\u90fd\u53ef\u4ee5\u8054\u7cfb\u5bfc\u5e08\u8fdb\u884c\u4fee\u6539\u3002100%\u6ee1\u610f\u4fdd\u8bc1\uff0c\u53ea\u6709\u4f60\u9009\u62e9\u6ee1\u610f\u7b54\u6848\u4e4b\u540e\uff0c\u6211\u4eec\u624d\u4f1a\u6263\u6b3e\uff0c\u5b89\u5168\u6709\u4fdd\u969c\u3002<\/p>\n Step 5\uff1a\u5bf9\u5bfc\u5e08\u63d0\u51fa\u8bc4\u4ef7<\/p>\n \u6211\u4eec\u62e5\u6709\u4e25\u683c\u7684\u5bfc\u5e08\u8003\u6838\u8bc4\u4ef7\u673a\u5236\uff0c\u670d\u52a1\u597d\u4e0d\u597d\uff0c\u5168\u7531\u4f60\u8bf4\u4e86\u7b97\uff01\u4f60\u7684\u8ba4\u540c\u662f\u6211\u4eec\u524d\u8fdb\u7684\u52a8\u529b\u3002<\/p>\n \u6211\u4eec\u7684\u670d\u52a1\u8303\u56f4\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\uff1aJavascript\u5e38\u7528\u4ee3\u7801\uff1a\u5e38\u89c1\u4ee3\u7801\u7247\u6bb5<\/strong><\/h3>\n
<\/p>\n
<\/p>\n
\nC\uff0cC#\uff0cC++ <\/a>
\nComputer Science <\/a>
\nData structure\/Machine Learning <\/a>
\nDreamweaver
\nHTML \u4ee3\u5199
\nJava\/JavaScript\/JQuery
\nLinux\/Windows\/Mac socket Algorithm
\nMacintosh
\nMathematica (programming)
\nR\u8bed\u8a00<\/a>
\nNetworking (computer) <\/a>
\nOracle
\nPascal\/Perl\/PHP\/Python
\nRevit\/Rust\/Ruby
\nSAS<\/a>\/Sketchup\/Solidworks\/SQL<\/a>\/STATA\/Swift\/SPSS<\/a>
\nUNIX
\nVisual Basic
\nWeb Design\/Operating System<\/p>\n