Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
序員之所以欣賞JavaScript軟件開(kāi)發(fā),是因?yàn)樗麄兡軌蚶肑avaScript構(gòu)建客戶喜歡的高度互動(dòng)網(wǎng)站。
作者 | PaulAzorín
譯者 | 彎月,責(zé)編 | 劉靜
出品 | CSDN(ID:CSDNnews)
以下為譯文:
如今,JavaScript非常流行,它非常靈活,被GitHub評(píng)為世界上最常用的編程語(yǔ)言。JavaScript在Web開(kāi)發(fā)中占據(jù)了主導(dǎo)地位,大約有95%的網(wǎng)站都或多或少地使用了該語(yǔ)言。
程序員之所以欣賞JavaScript軟件開(kāi)發(fā),是因?yàn)樗麄兡軌蚶肑avaScript構(gòu)建客戶喜歡的高度互動(dòng)網(wǎng)站。他們可以創(chuàng)造出懸停菜單、動(dòng)畫(huà)、視頻、幻燈片等功能的Web頁(yè)面。
優(yōu)秀的JavaScript開(kāi)發(fā)人員了解這種語(yǔ)言的來(lái)龍去脈。招聘經(jīng)理應(yīng)該確保求職者對(duì)以下主題有充分的了解,而且還能夠以通俗易懂的方式解釋給人聽(tīng)。
控制流
對(duì)于JavaScript開(kāi)發(fā)人員而言,控制流是至關(guān)重要的概念,其定義了計(jì)算機(jī)完成一組語(yǔ)句的順序。
代碼歷來(lái)都是按順序讀取的:從上到下。然而,有些腳本會(huì)利用條件結(jié)構(gòu)來(lái)改變代碼的執(zhí)行順序。JavaScript開(kāi)發(fā)人員可以將這些腳本融合到自己的網(wǎng)頁(yè)中,以提高響應(yīng)速度并杜絕通信上的浪費(fèi)。
例如,如今大多數(shù)公司只接受求職者通過(guò)網(wǎng)絡(luò)遞交的申請(qǐng)和簡(jiǎn)歷。求職者在網(wǎng)上選擇自己相中的職位,然后上傳簡(jiǎn)歷,并通過(guò)填寫(xiě)表格交代清楚自己的聯(lián)系方式和工作經(jīng)歷。
JavaScript開(kāi)發(fā)人員可以通過(guò)編寫(xiě)腳本來(lái)警告用戶表格中的某些字段不能為空,同時(shí)拒絕不合法的表格,這可以讓網(wǎng)站更具響應(yīng)性并避免浪費(fèi)時(shí)間。
在提交表格失敗后,申請(qǐng)人可以快速跳轉(zhuǎn)到漏掉的空白框(下方有一個(gè)顯眼的紅色標(biāo)記),填寫(xiě)信息,然后重新提交表格。
添加一個(gè)簡(jiǎn)單的腳本就可以為求職者提供實(shí)時(shí)反饋,并且還可以防止求職者和HR專業(yè)人員在查找這些信息上浪費(fèi)時(shí)間。
經(jīng)驗(yàn)豐富的開(kāi)發(fā)人員應(yīng)該能夠解釋條件結(jié)構(gòu)的優(yōu)點(diǎn),并詳細(xì)說(shuō)明如何將這類的腳本添加到網(wǎng)頁(yè)中。
錯(cuò)誤處理
出錯(cuò)再所難免,在軟件開(kāi)發(fā)領(lǐng)域尤其如此,即使是經(jīng)驗(yàn)最豐富和最受尊敬的程序員有時(shí)也會(huì)犯下嚴(yán)重的錯(cuò)誤。
研究表明,軟件工程師平均“每提交1000行代碼就會(huì)產(chǎn)生15-50個(gè)錯(cuò)誤”。
頂級(jí)的開(kāi)發(fā)人員明白錯(cuò)誤是不可避免的,而且他們知道如何找到錯(cuò)誤并修復(fù)錯(cuò)誤。面試官可以要求求職人員講述以往工作中出現(xiàn)的錯(cuò)誤,以及他們找到解決方案的過(guò)程,這可以更多地了解他們解決問(wèn)題的方法。
函數(shù)
JavaScript和其他流行的編程語(yǔ)言(比如Java和Python等)的一個(gè)重大區(qū)別在于:函數(shù)的使用方法。JavaScript的獨(dú)特之處在于它允許程序員在代碼中將函數(shù)作為獨(dú)立的個(gè)體。
JavaScript編程更簡(jiǎn)單,因?yàn)殚_(kāi)發(fā)人員可以創(chuàng)建更簡(jiǎn)短、更易讀的代碼。
此外,由于JavaScript將函數(shù)視為基本對(duì)象,因此工程師可以創(chuàng)建高階函數(shù),并將某個(gè)函數(shù)作為參數(shù)傳遞給另一個(gè)函數(shù)。如此一來(lái),程序員無(wú)需編寫(xiě)更多代碼即可增加應(yīng)用程序的復(fù)雜性。
范圍
對(duì)JavaScript的作用域有深入的了解將有助于工程師編寫(xiě)更具可讀性的代碼,并減少工作中的錯(cuò)誤。
JavaScript擁有兩種作用域:全局和局部。全局指的是無(wú)論變量位于何處,你都可以從代碼的任意位置讀取和編輯的該變量。
另一方面,局部作用域指的是只能在函數(shù)中更改的變量。只有對(duì)這些術(shù)語(yǔ)有深入了解的JavaScript開(kāi)發(fā)人員才能編寫(xiě)良好的代碼,并通過(guò)嚴(yán)格的訪問(wèn)級(jí)別來(lái)杜絕人為錯(cuò)誤。
在聘用JavaScript開(kāi)發(fā)人員之前,經(jīng)理必須確保該開(kāi)發(fā)人員對(duì)范圍以及如何提高最終軟件的質(zhì)量有扎實(shí)的了解。
軟件的安全性
數(shù)據(jù)隱私是高科技行業(yè)面臨的最重要的挑戰(zhàn)之一。數(shù)據(jù)泄露的數(shù)量每年都在持續(xù)增加,研究表明“平均每39秒”就有黑客闖入一臺(tái)計(jì)算機(jī)。
許多公司選擇與國(guó)外的JavaScript開(kāi)發(fā)公司合作,目的是為了尋找網(wǎng)絡(luò)開(kāi)發(fā)項(xiàng)目的安全專家。但是,開(kāi)發(fā)團(tuán)隊(duì)內(nèi)部的每個(gè)成員都對(duì)軟件安全負(fù)有不可推卸的責(zé)任。
頂級(jí)的工程師應(yīng)當(dāng)對(duì)目前保障軟件安全的主要方法有扎實(shí)地了解,并且能夠清楚地闡明每種方法的優(yōu)點(diǎn)和缺點(diǎn)。
招聘經(jīng)理應(yīng)該要求求職者講述保障軟件安全的方法,并詳細(xì)說(shuō)明他們?nèi)绾卧谝酝捻?xiàng)目中確保數(shù)據(jù)隱私。
用戶設(shè)計(jì)
用戶設(shè)計(jì)是所有軟件開(kāi)發(fā)人員都應(yīng)該掌握的基本技能。對(duì)于JavaScript開(kāi)發(fā)人員而言尤為如此,他們需要負(fù)責(zé)構(gòu)建美觀且功能強(qiáng)大的網(wǎng)站,這些網(wǎng)站必須在外觀和感覺(jué)上與消費(fèi)者產(chǎn)生共鳴。
盡管用戶界面和體驗(yàn)設(shè)計(jì)曾經(jīng)被視為專業(yè)人員的工作,但是現(xiàn)代軟件開(kāi)發(fā)要求將最終用戶的考慮因素融入軟件開(kāi)發(fā)生命周期的各個(gè)步驟。
優(yōu)秀的程序員能夠進(jìn)行基本的市場(chǎng)研究,了解他們的目標(biāo)客戶,及時(shí)了解最新的用戶設(shè)計(jì)趨勢(shì),并且還能夠展示如何在以往的項(xiàng)目中成功地創(chuàng)建了直觀且優(yōu)美的產(chǎn)品。
總結(jié)
JavaScript對(duì)于現(xiàn)代Web開(kāi)發(fā)至關(guān)重要。程序員可以利用JavaScript輕松快速地構(gòu)建高度交互的網(wǎng)站、Web應(yīng)用程序和移動(dòng)應(yīng)用。
然而,并非所有開(kāi)發(fā)人員團(tuán)隊(duì)都完全相同。如果公司打算招聘自家的開(kāi)發(fā)人員(而不是外包JavaScript的開(kāi)發(fā)),則招聘經(jīng)理必須具備根據(jù)知識(shí)和技術(shù)力來(lái)篩選候選人的能力。
為了提高開(kāi)發(fā)項(xiàng)目的成功率,高管可以徹查JavaScript開(kāi)發(fā)人員對(duì)于編程語(yǔ)言的掌握程度、相關(guān)經(jīng)驗(yàn)以及是否愿意進(jìn)一步深造自我。
原文:https://hackernoon.com/the-top-essential-skills-for-javascript-developers-7x1935sl
本文為 CSDN 翻譯,轉(zhuǎn)載請(qǐng)注明來(lái)源出處。
【END】
<h3>你目前所使用的瀏覽器的數(shù)據(jù):</h3>
<div class="data">
<script type="text/javascript">
var userAgent=navigator.userAgent.toLowerCase();
var browser=
(browser=userAgent.match(/qqbrowser\/([\d.]+)/))?"qqbrowser/"+browser[1]:
(browser=userAgent.match(/se\s+2.x/))?"sogou/2.x": //sougou
(browser=userAgent.match(/msie\s+([\d.]+)/))?"msie/"+browser[1]: //ie
(browser=userAgent.match(/chrome\/([\d.]+)/))?"chrome/"+browser[1]: //chrome
(browser=userAgent.match(/firefox\/([\d.]+)/))?"firefox/"+browser[1]: //firefox
(browser=userAgent.match(/version\/([\d.]+)\s+safari\/([\d.]+)/))?"safari/"+browser[1]: //safari
(browser=userAgent.match(/opera\/([\d.]+)([\w\W]+)version\/([\d.]+)/))?"opera/"+browser[3]: //opera
"other browser";
//以上是條件運(yùn)算符“?:"的嵌套使用
var browser4=browser.substr(0,6);
document.write("<table>");
document.write("<tr><td>" + "Browser:" + "</td>");
document.write("<td>" + browser4 + "</td></tr>" );
document.write("<tr><td>" + "Browser Version:" + "</td>");
document.write("<td>" + browser + "</td></tr>" );
document.write("<tr><td>" + "userAgent:" + "</td>");
document.write("<td>" + userAgent + "</td></tr>" );
var appVersion=navigator.appVersion.toLowerCase();
document.write("<tr><td>" + "appVersion:" + "</td>");
document.write("<td>" + appVersion + "</td></tr>" );
var appCodeName=navigator.appCodeName.toLowerCase();
document.write("<tr><td>" + "appCodeName:" + "</td>");
document.write("<td>" + appCodeName + "</td></tr>" );
var appName=navigator.appName.toLowerCase();
document.write("<tr><td>" + "appName:" + "</td>");
document.write("<td>" + appName + "</td></tr>" );
//var language=navigator.language.toLowerCase(); (ie下無(wú)此屬性)
//document.write("language:" + language + "<br>" );
var platform=navigator.platform.toLowerCase();
document.write("<tr><td>" + "platform:" + "</td>");
document.write("<td>" + platform + "</td></tr>" );
document.write("</table>");
</script>
</div>
使用chrome顯示網(wǎng)頁(yè)內(nèi)容如下:
使用firefox顯示網(wǎng)頁(yè)內(nèi)容如下:
<h3>瀏覽器窗口數(shù)據(jù):</h3>
<div class="data">
<table>
<col width="50%" />
<col width="50%" />
<tr><td>右邊的數(shù)據(jù)反映瀏覽器窗口高寬的數(shù)據(jù)(單位是px,不包括上端的菜單欄和工具欄,也不包括下端的狀態(tài)欄;按F11全屏顯示或“還原”按鈕并調(diào)整大小也會(huì)有不同的數(shù)據(jù)反饋。)</td>
<td>
<form action="#" method="get" name="form1" id="form1">
<!--顯示瀏覽器窗口的實(shí)際尺寸-->
<p>瀏覽器窗口的實(shí)際高度: <input type="text" name="availHeight" size="4"/> </p>
<p>瀏覽器窗口的實(shí)際寬度: <input type="text" name="availWidth" size="4"/> </p>
</form>
</td></tr></table>
</div>
<script type="text/javascript">
var winWidth=0;
var winHeight=0;
function findDimensions() //函數(shù):獲取尺寸
{
//獲取窗口寬度
if (window.innerWidth)
winWidth=window.innerWidth;
else if ((document.body) && (document.body.clientWidth))
winWidth=document.body.clientWidth;
//獲取窗口高度
if (window.innerHeight)
winHeight=window.innerHeight;
else if ((document.body) && (document.body.clientHeight))
winHeight=document.body.clientHeight;
//通過(guò)深入Document內(nèi)部對(duì)body進(jìn)行檢測(cè),獲取窗口大小
if (document.documentElement && document.documentElement.clientHeight && document.documentElement.clientWidth)
{
winHeight=document.documentElement.clientHeight;
winWidth=document.documentElement.clientWidth;
}
//結(jié)果輸出至兩個(gè)文本框
document.form1.availHeight.value=winHeight;
document.form1.availWidth.value=winWidth;
}
findDimensions();
//調(diào)用函數(shù),獲取數(shù)值
window.onresize=findDimensions;
</script>
使用chrome顯示網(wǎng)頁(yè)內(nèi)容如下:
使用firefox顯示網(wǎng)頁(yè)內(nèi)容如下:
-End-
單是網(wǎng)頁(yè)中一個(gè)特定的區(qū)域,用來(lái)描述需要用戶輸入的頁(yè)面內(nèi)容,在用戶輸入具體信息后,提交到指定位置進(jìn)行處理。
HTML 文檔使用 form 標(biāo)簽表示表單,其下有:
form 標(biāo)簽表示表單。form 標(biāo)簽有兩個(gè)重要的屬性,action 和 method 屬性,其中 action 的屬性值是表單提交的地址,method 的屬性值是提交的方法。
其基本語(yǔ)法為:
<form action="表單提交地址" method="提交方法"></form>
method 屬性規(guī)定了表單提交方式,最常用的有兩種方式,分別是 GET 和 POST。
GET 是把表單中的參數(shù)放置在 HTTP 請(qǐng)求的頭部發(fā)送給服務(wù)器。POST 是將請(qǐng)求參數(shù)置于請(qǐng)求體內(nèi)發(fā)送。這部分內(nèi)容屬于 JavaScript 的內(nèi)容,同學(xué)們先了解即可,在后面的章節(jié)會(huì)詳細(xì)講解。
選擇類表單元素是指單選框和復(fù)選框。
單選框和復(fù)選框的使用格式如下所示:
<!--單選框-->
<input type="radio" name="選項(xiàng)名" value="提交值" />
<!--復(fù)選框-->
<input type="checkbox" name="選項(xiàng)名" value="提交值" />
<!--重置按鈕,可以把表單中已填寫(xiě)的信息給清除掉。-->
<input type="reset" />
注意:使用單選框時(shí),每個(gè)選項(xiàng)一定要設(shè)置相同的 name 值,否則就沒(méi)有單選的效果。
使用 type="file" 表示文件類型表單元素,其使用格式為:
<input type="file" name="表單名字" accept="上傳文件的格式" />
使用 type="submit" 表示發(fā)送類型表單元素,其使用格式為:
<input type="submit" name="表單名字" value="表單名" />
在 HTML 中,通過(guò) select 和 option 標(biāo)簽可以實(shí)現(xiàn)下拉列表框,select 標(biāo)簽用于顯示可供用戶選擇的下拉列表,其中的每個(gè)選項(xiàng)都由 option 標(biāo)簽標(biāo)識(shí)。
其語(yǔ)法格式為:
<select>
<option>選項(xiàng)一</option>
<option>選項(xiàng)二</option>
<option>選項(xiàng)三</option>
</select>
select 有兩個(gè)常用屬性,如下所示:
屬性 | 描述 |
multiple | 設(shè)置下拉列表可以選擇多項(xiàng)。 |
size | 設(shè)置下拉列表選擇幾個(gè)表項(xiàng)。 |
option 有兩個(gè)常用屬性,如下所示:
屬性 | 描述 |
selected | 設(shè)置是否被選中。 |
value | 設(shè)置列表項(xiàng)的默認(rèn)值。 |
password 類型是密碼輸入框,其用法如下所示:
<input type="password" />
textarea 標(biāo)簽是多行文本標(biāo)簽,其用法如下所示:
<textarea name="名稱" cols="列數(shù)" rows="行數(shù)"></textarea>
內(nèi)嵌框架是指在當(dāng)前的頁(yè)面中再嵌入另外一個(gè)或多個(gè)網(wǎng)頁(yè)。在 HTML 中,使用 iframe 標(biāo)簽來(lái)實(shí)現(xiàn)一個(gè)內(nèi)嵌框架。
基本語(yǔ)法:
<iframe src="內(nèi)嵌頁(yè)面的鏈接地址" name="框架名"></iframe>
內(nèi)嵌框架的常用屬性:
屬 性 | 可 取 值 | 描 述 |
frameborder | 0、1 | 規(guī)定是否顯示框架周圍的邊框 |
height | pixels | 定義框架高度 |
width | pixels | 定義框架寬度 |
name | 自定義 | 框架名,用于超鏈接操作 |
scrolling | yes、no、auto | 規(guī)定是否在框架中顯示滾動(dòng)條 |
src | 引用頁(yè)面地址 | 內(nèi)嵌頁(yè)面地址 |
*請(qǐng)認(rèn)真填寫(xiě)需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。