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 精品三级国产一区二区三区四区,在线视频观看一区,99视频在线观看免费视频

          整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          云計算核心技術Docker教程:Docker數據卷的使用

          生產環境中使用 Docker,要想實現數據的持久化(所謂Docker的數據持久化即數據不隨著Container的結束而結束)或者需要在多個容器之間進行數據共享,需要將數據從宿主機掛載到容器中,這就會涉及容器的數據管理操作。

          Docker數據卷(data volume,注:位置在/var/lib/docker/volumes)是容器可以訪問,但是位置不在root文件系統中的一個目錄。為了能讓容器之間可以共享數據,Docker讓“卷”(volume)可以繞過Docker鏡像的層疊機制。容器中所有對鏡像的改變全部都直接存儲。每個容器都有固定的運行目錄在/var/lib/docker目錄下;而每個容器卷的數據則默認單獨存儲在/var/lib/docker/volumes/目錄底下。 docker run命令的-v選項能夠實現容器間數據卷中數據的互相拷貝。

          數據卷Volume的基本使用:

          1.管理卷

          創建一個自定義容器卷

          $ docker volume create my-vol

          查看所有容器卷

          $ docker volume ls

          查看指定容器卷詳情信息

          $ docker volume inspect my-vol

          2.創建使用指定卷的容器

          有了自定義容器卷,我們可以創建一個使用這個數據卷的容器,這里我們以nginx為例:

          $ docker run -d -it --name=my-vol -p 8800:80 -v edc-nginx-vol:/usr/share/nginx/html nginx

          其中,-v代表掛載數據卷,這里使用自定數據卷my-vol,并且將數據卷掛載到 /usr/share/nginx/html (這個目錄是yum安裝nginx的默認網頁目錄)。

          如果沒有通過-v指定,那么Docker會默認幫我們創建匿名數據卷進行映射和掛載。

          3.刪除一個卷

          $docker volume rm my-vol

          Docker不會在容器被刪除后自動刪除數據卷,并且也不存在垃圾回收這樣的機制來處理沒有任何容器引用的數據卷,無主的數據卷可能會占據很多空間,所以要及時刪除。

          本文源自TechWeb.com.cn

          1、唐山海港經濟開發區醫療事業單位2019年公開招聘工作人員公告。

          2、灤南縣有關單位2019年公開招聘輔助工作人員公告。

          3、玉田縣關于公開補招勞務派遣交警大隊警務輔助人員的公告。

          4、玉田縣關于公開招用勞務派遣退役軍人管理服務人員公告。

          ▼▼▼

          唐山海港經濟開發區

          醫療事業單位2019年公開招聘工作人員公告

          唐山海港經濟開發區擬面向社會公開招聘事業編制工作人員11名,選聘4名。

          一、招聘原則

          事業單位招聘堅持德才兼備和公開、平等、競爭、擇優的原則,在考試、考察的基礎上擇優聘用。

          二、招聘條件、崗位、人數

          (一)應聘人員應具備以下基本條件

          1、具有中華人民共和國國籍。

          2、公開招聘人員年齡在18周歲以上、35周歲以下(1983年7月31日至2001年7月31日期間出生)。

          選聘人員年齡在18周歲以上、40周歲以下(1978年7月31日至2001年7月31日期間出生),在二甲及以上醫院擔任相應科室主任或技術帶頭人,副高及以上專業技術職務任職資格且具有研究生(碩士學位)及以上學歷的,年齡放寬至45周歲(1973年7月31日以后出生)。

          3、遵守憲法和法律。

          4、具有良好的品行和職業道德。

          5、適應崗位要求的身體條件。

          (二)招聘人數和崗位條件

          按照《2019年公開招聘工作人員崗位條件表》的條件和崗位進行。

          (點擊圖片放大查看)

          留學回國人員和其他海外、外國學歷學位獲得者需取得國家教育部或省級教育行政部門出具的學歷認證報告,其所學專業名稱與招聘崗位要求專業名稱不完全一致的,如果所學專業課程與招聘崗位專業課程大部分相同,且符合該崗位所需要的其他條件的,也可報考該招聘崗位。

          招聘學歷為全日制普通類專科、本科及全日制碩士研究生的,需具有學歷底限層次及以上的就業報到證(派遣證)。招聘學歷為“碩士或博士”的,需專科、本科是全日制普通類高等院校畢業,且具有本、專科就業報到證(派遣證)。報名審核環節暫不需要提供報到證(派遣證),待考核環節結束后由用人單位驗證核實。

          (三)有下列情形之一的人員不得報考

          截止到報名時,現役軍人、試用期(服務期)內的公務員、2020年及以后畢業的全日制普通類高校在讀學生,不在招聘范圍。

          曾因犯罪受過刑事處罰和被開除公職的人員、失信被執行人,以及法律法規規定不得招聘為事業單位工作人員的其他情形人員,不得報考。

          此外,應聘人員不得報考聘用后即構成回避關系的招聘崗位。回避關系是指《河北省事業單位公開招聘工作人員暫行辦法》第四十一條關于“凡與聘用單位負責人員有夫妻關系、直系血親關系、三代以內旁系血親或者近姻親關系的應聘人員,不得應聘該單位負責人員的秘書或者人事、財務、紀律檢查崗位,以及有直接上下級領導關系的崗位。聘用單位負責人員和招聘工作人員在辦理人員聘用事項時,涉及與本人有上述親屬關系或者其他可能影響招聘公正情形的,也應當回避。

          三、招聘程序

          (一)報名要求。

          1、每名報考人員只能報考一個崗位。

          2、現場報名。報名者須填寫《唐山海港經濟開發區事業單位公開招聘工作人員報名表》,可從網上下載打印填寫,并帶本人有效身份證、畢業證、學位證、資格證和有關材料原件以及復印件、3張近期同底1寸免冠照片。

          3、報考人員應如實提交有關信息和材料,凡本人填寫信息不真實、不完整或填寫錯誤的,責任自負。弄虛作假的,一經查實即取消考試資格或聘用資格。

          4、報名與考試時使用的身份證必須一致。

          5、報名公告在唐山事業單位招聘網www.tssydwzpw.com、唐山人才網www.tsrcw.com、及唐山海港人才網http://tsrcw.com/xqwz/3/index.aspx公布。

          6、報名時間:2019年8月7至8日上午9:00-11:30;下午14:30-17:00。領取準考證時間為2019年8月13日上午9:00-11:30;下午14:30-17:00。

          7、報名、取準考證地點:唐山海港開發區二中北門階梯教室。

          (二)開考比例。

          面向社會公開招聘的崗位報考人數與招聘人數的比例不低于2:1。報名人數達不到開考比例的,取消或核減崗位招聘計劃。選聘不設開考比例。

          (三)公開招聘的筆試、面試總成績為100分,各占50%。總成績低于60分的不予錄取。計算考生成績時,保留小數點后兩位。考試總成績=筆試成績×50%+面試成績×50%。

          1、公開招聘筆試采取閉卷的方式。筆試內容為醫學專業能力測驗和公共基礎知識,一張卷,全部為客觀題,考試時間120分鐘,滿分100分,由開發區招聘領導小組根據考試成績劃定合格分數線。不指定考試輔導用書和培訓機構。

          考試時間、地點等具體信息查看筆試準考證。參加考試時,必須同時攜帶筆試準考證和有效期內法定身份證件,否則不得參加考試。筆試期間不得提前離場,不得攜帶各類電子設備(如:手機、計算器等)。

          筆試時間:2019年8月16日上午9:00-11:00。

          筆試地點:唐山海港開發區二中。

          2、參加公開招聘的考生,依據筆試成績,對在最低控制分數線以上的考生,從高分到低分按招聘崗位計劃數2:1的比例確定參加面試人選,末位筆試總成績并列的都進入面試。

          3、公開招聘面試方式。采取結構化面試方式進行,主要測試應聘人員的綜合素質和相關能力。面試實行百分制,當場打分,面試成績采用“體操打分”方法,去掉一個最高分和一個最低分,其他分數的平均分為面試成績。面試滿分100分,最低合格分數線60分。

          面試時間:2019年8月23日。報到時間為上午7:30-8:00,超時視為放棄。

          面試地點:唐山海港開發區二中。

          (四)選聘只有面試,與公開招聘的面試方式一樣。

          (五)體檢。根據考生考試總成績,按照招聘計劃按1:1比例在合格線以上人員中從高分到低分確定參加體檢人選。如末位考試總成績相同,按學歷高者、筆試成績高者、烈士子女、退役士兵的順序確定人選。

          體檢參照公務員錄用體檢標準執行 (對身體條件有特殊要求的崗位,可執行國家規定的相關體檢標準)。體檢不合格的,取消擬聘人選資格,并從最低合格分數線以上報考同一崗位的人員中從高分到低分依次遞補。體檢費用自理。

          (六)考核。體檢合格的,由事業單位組織實施考察。考察擬聘用人員的政治思想表現、道德品質、業務能力、工作實績等情況;做出“合格”或“不合格”結論。考察不合格的取消聘用資格。并從最低合格分數線以上報考同一崗位的人員中從高分到低分依次遞補。

          (七)公示。經考試、體檢、考核確定擬聘用人選后,公示期不少于7個工作日。對公示反映有嚴重問題并查有實據,不符合聘用條件的取消其擬聘人選資格;對反映有嚴重問題但一時難以查實的,暫緩聘用,待查實并做出結論后決定是否聘用。

          因公示結果影響聘用、公示期間放棄導致擬聘崗位出現空缺的,在本面試組本崗位內按總成績由高到低依次遞補。

          (八)備案。對公示期滿無異議的,或有反映問題但經核實不影響聘用的,由用人單位填寫《河北省事業單位公開招聘工作人員審批表》、《河北省事業單位公開招聘工作人員擬聘人員名冊》報市人社局備案。

          (九)聘用。市人社部門審批后,辦理編制、就業、流動、工資、社保等相關手續,并按有關規定簽訂《河北省事業單位聘用合同》。

          被聘用人員按相關政策規定實行試用期,試用期一并計算在聘用合同期限內。試用期滿考核合格的,予以正式聘用;不合格的,取消聘用。

          (十)其他要求。

          1、凡考生未在規定時間內按要求參加筆試、資格復審、面試、體檢、考核、報到等情況的,均視為自動放棄應聘資格;在任何環節,發現考生不符合招聘條件,弄虛作假的,取消應聘資格,問題嚴重的要追究責任。

          2、筆試、面試成績,錄取人員名單等招考的有關信息均在唐山人才網(http://www.tsrcw.com)和唐山海港人才網進行公示,錄取人員名單公示期為7天。

          聯系電話:2913304、2913348

          2019年7月30日

          點擊“閱讀原文”下載附件:

          唐山海港經濟開發區醫療事業單位2019年公開招聘工作人員崗位條件表.xls

          唐山海港經濟開發區事業單位公開招聘工作人員報名表.xls

          ▼▼▼

          灤南縣有關單位

          2019年公開招聘輔助工作人員公告

          為緩解我縣有關單位工作人員不足的問題,經縣政府研究決定,擬面向社會公開招聘輔助工作人員131人,現公告如下:

          一、招聘原則

          堅持德才兼備,民主、公開、競爭、擇優,實行公開招聘,在考試、政審的基礎上擇優聘用。

          二、招聘方式

          本次招聘采取統一招聘方式。按照制定招聘方案、發布招聘公告、報名及資格審查、招聘考試(筆試、體能測試、面試)、體檢、政審、公示、聘用等步驟進行。

          三、招聘單位及人數

          共招聘輔助工作人員131名,其中:公安局60人、交通局綜合執法大隊67人、政法委綜治中心4人。

          (點擊圖片放大查看)

          四、招聘條件

          (一)應聘人員應具備以下基本條件:

          1.遵守憲法和法律;

          2.具有良好的品行和職業道德;

          3.灤南縣戶籍;

          4.具備崗位所需要的其他條件。

          具體崗位、數量及條件要求詳見《灤南縣有關單位2019年公開招聘輔助工作人員崗位條件表》

          (二)有下列情形之一的人員不得報考:

          1. 曾因犯罪受過刑事處罰的、曾被開除公職的人員;

          2. 有紋身及其他明顯特殊標記者;

          3. 現役軍人;

          4. 報考聘用后即構成回避關系的人員;

          5. 法律、法規規定不得招聘的其他情形人員。

          五、招聘程序

          (一)發布公告

          2019年8月2日起,通過灤南電視臺和唐山人才網面向社會公開發布招聘信息。

          (二)報名

          1、報名。

          報名時間:2019年8月5日——8月9日

          上午8:30-11:00,下午2:30-5:00

          報名地點:灤南縣人力資源和社會保障局0143房間(灤南縣崇法大街6號行政辦公中心一樓)。

          報名要求:報名者需填寫《灤南縣有關單位2019年公開招聘輔助工作人員報名登記表》,并攜帶本人有效身份證、戶口本、畢業證、退伍證原件及復印件和4張近期同底一寸免冠照片。報考人員應如實提交有關信息和材料,凡本人填寫信息不真實、不完整或填寫錯誤的,責任自負;弄虛作假的,一經查實即取消考試資格或聘用資格。報名與考試時使用的身份證必須一致。

          請考生保持報名時所留聯系電話的暢通,以便通知有關事宜。

          2、繳費:考生需交納報名考試費100元。

          (三)考試

          1.筆試

          (1)筆試方式:采取閉卷的方式,實行百分制,滿分100分。

          (2)筆試內容:考試內容為《公共基礎知識》、《職業能力測驗》,此次考試不指定考試輔導用書。

          (3)準考證領取時間及地點:2019年8月15日,上午8:30--11:00,下午2:30--5:00,灤南縣人社局0143房間。

          (4)筆試時間及考試地點:詳見筆試準考證。

          2.體能測試

          依據筆試成績從高分到低分按招聘計劃1:3的比例確定體能測試人選,比例內末位筆試成績并列的都進入體能測試,本次考試體能測試項目為男1000米跑、女800米跑,體能測試時間和地點另行通知。

          3. 面試

          (1)按體能測試成績由高到低按招聘計劃1:2的比例確定面試人選。

          (2)面試時間和地點另行通知。

          (3)面試方式。采取結構化面試方式進行,主要測試應聘人員的綜合素質和相關能力。面試實行百分制,當場打分,面試成績采用“體操打分”方法,去掉一個最高分和一個最低分,其他分數的平均分為面試成績,面試成績合格分數線為60分,面試成績當天公布,并于灤南縣人社局張貼公布。

          (3)總成績合成。面試結束后,按筆試成績、面試成績兩部分計算考試總成績,滿分 100分。筆試成績、面試成績分別占60%、40%計算考生總成績,總成績保留小數點后兩位。

          (四)體檢、政審、公示

          根據考生考試總成績,按照招聘計劃按1:1比例從高分到低分確定進入體檢人選。如考試總成績相同,筆試成績高者優先,筆試成績仍相同,以1000米跑體能測試成績好者優先。

          體檢項目和標準參照《公務員錄用體檢標準(試行)》執行,體檢費用自理。體檢合格的,由用人單位對其思想政治表現、道德品質、業務能力等情況進行政審,政審須在體檢結束后7日內完成。

          經考試、體檢、政審確定擬聘用人選后,對擬聘用人員信息進行公示,公示期不少于7日。對公示反映有嚴重問題并查有實據,不符合聘用條件的,取消其擬聘人選資格;對反映有嚴重問題,但一時難以查實的,暫緩聘用,待查實并做出結論后,決定是否聘用。

          因體檢或政審不合格、公示結果影響聘用、公示期間放棄,導致擬聘崗位出現空缺的,按考試總成績從高分到低分依次遞補。

          (五)聘用

          擬聘人員公示期滿無異議的,由招聘單位與擬聘人員于7日內簽訂聘用合同,如擬聘人員在規定時間內放棄簽訂聘用合同,導致擬聘崗位出現空缺的,在報考同一崗位的考生中按考試總成績從高分到低分依次遞補。此后若再因故出現缺額,不再遞補。

          六、聘用人員管理及待遇

          被聘用人員按聘用合同進行管理,不納入編制。被聘用人員試用期為兩個月,期滿經考核合格的,正式簽訂為期一年的聘用合同(試用期計算在聘用期限內),聘用期間執行同類輔助工作人員工資,并按有關政策參加企業職工基本養老保險及醫療、生育、失業、工傷保險。一年聘用期滿后,根據工作需要及考核情況再行續聘(年度考核不合格者,解除聘用合同),繼續參加企業職工基本養老保險及醫療、生育、失業、工傷保險。

          七、組織機構

          本次招聘工作在縣公開招聘工作領導小組統一領導下進行,具體由縣人社局牽頭組織實施,筆試、體能測試、面試由縣公開招聘領導小組辦公室委托第三方實施。相關部門密切配合,并接受紀檢監察部門的監督,確保招聘工作的公開、公平、公正。

          2019年8月2日

          ▼▼▼

          玉田縣關于公開補招勞務派遣交警大隊警務輔助人員的公告

          按照上級要投入專職警力建立治超站點、要配備專職警力增設京秦高速玉田段交通管理的要求,為確保全縣經濟發展提速,保障交通安全,根據交警大隊警力明顯不足的實際情況,經研究,擬面向社會公開補招勞務派遣交警大隊警務輔助人員24人,具體補招公告如下:

          一、補招崗位及名額

          共補招勞務派遣交警大隊警務輔助人員24人,要求男性。


          二、補招條件

          1.學歷要求:補招對象為高中以上學歷畢業生;

          2.年齡要求:補招對象年齡在30周歲以下(1988年8月1日之后出生,以身份證為準)。

          3.戶籍要求:補招對象為玉田縣戶籍

          4.其他要求:

          (1)有良好的職業道德和敬業精神,遵紀守法,品行端正。

          (2)身心健康,五官端正,無口吃,無傳染病,無抑郁史及精神心理疾病。

          (3)服從分配。

          5.有下列情形之一者,不得報名

          (1)正在接受司法或紀檢監察機關立案調查的;

          (2)受過司法機關刑事處罰的;

          (3)曾經被開除的公職人員;

          (4)全日制普通類2020年以后畢業的在讀學生;

          (5)現役軍人;

          (6)具有法律規定不得招用的其他情形的人員。

          三、補招的程序和方法

          本次補招工作按照發布補招公告、報名、資格審查、筆試、面試、體檢、考察、公示、崗前培訓等步驟進行。

          (一)公告時間

          面向社會發布公告,時間2019年8月1日至8月7日。

          (二)報名要求

          1.報名時間:2019年8月8日至8月9日,

          上午8:30-11:30;下午14:30-17:30。

          2.報名地點:玉田縣人力資源和社會保障局人力資源市場大廳(南院一樓)。

          3.報名要求:

          (1)提交材料

          攜帶本人身份證、戶口本(首頁及本人頁)、畢業證等所有材料的復印件以及小2寸近期彩色免冠照片一張。報名人員填寫勞務派遣交警大隊警務輔助人員報名情況登記表(附件2,網上下載,提前填寫、打印,必須本人簽字)。報名人員所持證件必須真實、有效,如發現報名人員不符合報名條件或提供虛假證明的,取消考試或招用資格,后果由本人自負。

          (2)費用。每人收取報名考務費100元。

          (三)資格審查

          根據報名人員提交的證件進行資格審查,審查合格的,審核人要簽字確認,存檔備查。

          審查合格者,準予參加考試。資格審查貫穿于公開招用工作的全過程,考察、培訓、上崗等任一環節如發現提交虛假證明、冒名頂替、不符合報名條件者,隨時取消招用資格。

          報考人員于2019年8月13日-14日,持本人身份證原件到縣人力資源和社會保障局人力資源市場大廳(南院一樓)領取《準考證》。

          (四)考試

          此次補招考試由玉田縣通宇勞務輸出有限公司委托第三方考試機構進行。

          筆試時間以準考證確定時間為準。筆試采取閉卷考試的方式進行,考試內容為《公共基礎知識》和《事業單位職業能力測驗》,時間為120分鐘,滿分100分。

          如果報名人數與補招人數比例超過2:1,組織筆試,不組織面試,按筆試成績從高到低錄取;如果報名人數與補招人數比例不足2:1,不再組織筆試,直接面試,按面試成績從高到低錄取。

          面試采用結構化面試,時間為5分鐘,主要對應試者的儀表舉止素質、語言表達能力、綜合分析能力、應變與自我控制能力、人際交往合作意識和與報考職位匹配性等進行綜合評價。

          (五)考察

          依據招用名額,按考生考試成績從高到低確定參加考察人員名單。末位出現并列時,依次考慮學歷學位高者、工作經歷長者優先,以上條件均相同者由公開招用工作領導小組辦公室最終確定進入考察人員名單。確定的人員由縣公安局參照警務人員錄用及政審條件進行考察,并出具考察合格的證明材料。對于有紋身等身體有特殊標記,不適合從事警務工作的人員考察不予通過。

          (六)體檢

          擬補招人員需參加體檢,體檢項目和標準參照《公務員錄用體檢通用標準(試行)》執行。對考察合格人員進行體檢,因考察、體檢不合格出現的指標缺額,按確定考察人員名單順序依次遞補。

          (七)公示

          報考人員的成績和補招結果在“玉田人才網”和“玉田縣人才”微信公眾平臺公示。

          (八)招用

          經公示無異議的,確定補招為勞務派遣交警大隊警務輔助人員,與玉田縣通宇勞務輸出有限公司簽訂兩年以上固定期限勞動合同。勞動合同期滿,經縣公安局考核合格后,雙方可以協商續簽勞動合同。

          (九)培訓上崗

          集中對新補招勞務派遣交警大隊警務輔助人員進行崗前培訓。經培訓后,縣公安局對補招勞務派遣交警大隊警務輔助人員進行統一分配。要求補招人員在規定的期限內上崗。無故不到崗的,按自動放棄處理。

          四、補招人員待遇

          1.在勞動合同期內,由縣公安局對勞務派遣交警大隊警務輔助人員進行考核管理。考核不合格者,縣公安局有權將其退回玉田縣通宇勞務輸出有限公司,并由通宇公司解除勞動合同。

          2.勞務派遣交警大隊警務輔助人員提出辭職時,需提前一個月向縣公安局遞呈書面申請,同時向玉田縣通宇勞務輸出有限公司提出解除勞動合同申請,履行相關法定手續后方可辭職。

          3.勞務派遣交警大隊警務輔助人員工資標準為每月1650元。除固定工資外不享受其他待遇。工資保險等費用由財政撥付到勞務派遣公司,勞務派遣公司負責發放工資、為其繳納企業職工社會保險(養老、醫療、工傷、生育、失業),個人應繳納部分從工資中扣除。

          五、相關事宜

          1.報考人員按規定參加筆試、面試、體檢、考察、培訓等。凡在規定時間未參加規定程序的,均視為自動放棄。

          2.考試成績和招用結果可通過 “玉田人才網”和微信公眾平臺“玉田人才”查詢。

          3.本次考試由玉田縣通宇勞務輸出有限公司委托第三方機構進行,

          4.本次考試不指定考試輔導用書,不舉辦也不委托任何機構或個人舉辦考試輔導培訓班。

          六、本方案由玉田縣通宇勞務輸出有限公司負責解釋。

          登錄網址

          “http://www.ytrcw.net/data/upload/hrtools/19/08/01/5d42b1da2abe8.xls”下載《報名情況登記表》

          ▼▼▼

          玉田縣司關于公開招用勞務派遣退役軍人管理服務人員公告

          為有效解決縣退役軍人事務局人員緊缺問題,經研究決定,按照“公開、平等、競爭、擇優”的原則,面向社會公開招用5名勞務派遣退役軍人管理服務人員。具體公告如下:

          一、招用崗位、數量

          勞務派遣退役軍人管理服務人員5名。其中男性2名,女性3名。

          二、招用條件

          1.具有玉田縣戶籍,享有公民的政治權利;

          2.模范遵守國家的法律和法規,廉潔自律,為人正派,品行端正;

          3.具有全日制普通類大學本科及以上學歷(截止到報名之日,須取得相應畢業證書);

          4.年齡在30周歲以下(1988年8月1日及以后出生,以身份證為準)。

          5.有下列情形之一者,不得招用為勞務派遣人員:被判處刑罰的;正在接受司法機關立案偵查或紀檢監察機關立案審查的;曾被辭退或開除公職的;有不良行為受過公安機關處理的;其他不宜從事招用崗位工作的。

          三、招用的程序和方法

          本次招用工作按照發布招用公告、報名、資格審查、筆試、面試、體檢、考察、公示、崗前培訓等步驟進行。

          (一)發布招用公告

          2019年8月1日--7日在“玉田人才網”以及微信公眾平臺“玉田人才”發布《招用公告》,公布招用的崗位、人數、條件以及報名、考試安排等。

          (二)報名方法

          1.報名時間:2019年8月8日--8月9日。上午8:30-11:30,下午14:30-17:30。

          2.報名地點:玉田縣人力資源和社會保障局人力資源市場(南院一樓)。

          3.報名手續:報名人員報名時須持本人身份證、戶口本(首頁和本人頁)、畢業證書等所有材料的原件和復印件,以及近期小2寸彩色免冠照片一張,并填寫《玉田縣2019年公開招用勞務派遣退役軍人管理服務人員報名情況登記表》(附件2,網上下載,提前填寫、打印,必須本人簽字)。

          4.開考比例:招用人數與崗位報考人數的比例不低于1:2。報名人數達不到開考比例的,由縣公開招用工作領導小組適當核減該崗位招用人數或取消該崗位的招用。

          5.報考費用:每人收取報名考務費100元。

          (三)資格審查

          由縣公開招用工作領導小組辦公室負責對報名資料統一進行審查。資格審查貫穿于公開招用工作的全過程,如發現弄虛作假行為,隨時取消公開招用資格。資格審查合格者,2019年8 月 13日、 14日憑本人身份證原件到縣人力資源和社會保障局人力資源市場大廳(南院一樓)領取《準考證》。

          (四)素質考核

          素質考核分為筆試和面試。素質考核成績=筆試成績*40%+面試成績*60%。計算考生成績時,保留小數點后兩位有效數字。

          1.筆試。筆試時間:具體時間地點以準考證為準。筆試內容為《公共基礎知識》和《事業單位職業能力測驗》。筆試采取閉卷考試方式,答題時間120分鐘,滿分100分。

          筆試成績和進入面試人員名單可登陸“玉田人才網”或微信公眾號“玉田人社”和“玉田人才”進行查詢。

          2.面試。面試時間另行安排。

          根據筆試成績,按照招用人數與進入面試人數1:2的比例,從高分到低分確定參加面試人員(末位并列的都進入面試)。

          面試每人8分鐘,滿分100分。主要對應試者的儀表舉止素質、語言表達能力、綜合分析能力、應變與自我控制能力、人際交往合作意識和與報考職位匹配性等進行綜合評價。

          面試采用結構化面試方式進行。采用“體操打分”方法,去掉一個最高分和一個最低分,其余所得分數的平均分為面試成績。面試成績當天在面試考點張貼。

          (五)體檢

          時間另行安排。根據素質考核成績,按照招用人數與參加體檢人數1:1的比例,從高分到低分確定參加體檢人員(末位并列的,面試成績高者優先;面試成績再相同者,由縣公開招用工作領導小組綜合考慮應試者的學歷、年齡等因素確定參加體檢人員)。體檢項目和標準參照《公務員錄用體檢通用標準(試行)》的有關規定執行。因體檢不合格出現的職位空缺按素質考核成績依次遞補。

          (六)考察

          時間另行安排。由縣公開招用工作領導小組辦公室負責對體檢合格人員進行考察。重點了解被考察對象的思想政治表現、道德品質、業務能力、擬任崗位資格條件等。因不合格者出現的人員缺額,參照確定體檢人員的辦法依次遞補考察對象。

          (七)公示

          報考人員的素質考核成績和擬招用人員名單在“玉田人才網”和微信公眾平臺“玉田人才”進行公示。

          (八)崗前培訓

          招用對象正式上崗前,由縣退役軍人事務局組織崗前培訓。

          四、招用人員待遇

          招用人員試用期一年,與勞務派遣公司簽訂勞動合同。試用期滿,由縣退役軍人事務局負責考核。考核不合格的退回勞務派遣公司并解除勞動合同;考核合格者,與勞務派遣公司簽訂正式勞動合同。

          招用人員執行事業單位同類人員工資標準。各項費用由縣財政局撥付到勞務派遣公司,勞務派遣公司負責發放工資,為其繳納養老、醫療、工傷、生育、失業等各項保險和住房公積金。

          五、相關事宜

          (一)報名人員應攜帶相關證件,提前下載并填寫《玉田縣公開招用勞務派遣退役軍人管理服務人員報名情況登記表》。因表格填寫有誤影響報考和聘用的,后果自負。報名結束后要密切關注“玉田人才網”以及微信公眾號“玉田人才”。有關公開招用的重要信息,均通過“網站”和“公眾號”公布,不再另行通知。

          (二)應聘人員在招用期間務必保持通信暢通。凡未在規定時間內報名、領取《準考證》、參加筆試、面試、體檢、崗前培訓等規定程序的,均視為自動放棄。

          (三)應聘人員必須持身份證和準考證參加筆試、面試,兩證不全的不得參考。

          (四)被招用人員要在縣通宇勞務輸出有限公司規定的期限內到縣退役軍人事務局報到,逾期三天不報到者,取消招用資格,所缺名額按應聘人員素質考核成績依次遞補。

          (五)本次考試由玉田縣通宇勞務輸出有限公司委托第三方機構進行,包括命題、印刷、監場、閱卷、登統等環節。全權負責公開招用的筆試、面試等工作。

          (六)本次考試不指定考試輔導用書,不舉辦也不委托任何機構或個人舉辦考試輔導培訓班。對于公告規定的時間,如有變動另行通知。

          有關公開招用的具體事宜由玉田縣通宇勞務輸出有限公司負責解釋。

          登錄網址

          “https://mp.weixinbridge.com/mp/wapredirect?url=http%3A%2F%2Fwww.ytrcw.net%2Fdata%2Fupload%2Fhrtools%2F19%2F08%2F01%2F5d42b1a158adc.xls”下載報名情況登記表


          - END -

          唐山發布(tangshanpress)

          綜合整理出品|轉載請注明來源

          來源 | 唐山人才網 玉田人社

          以上圖片版權均歸作者所有

          源 | https://www.jianshu.com/p/e161bd720e64


          國外某網站給出了44道JS難題,試著做了下,只做對了17道。這些題涉及面非常廣,涵蓋JS原型、函數細節、強制轉換、閉包等知識,而且都是非常細節的東西,透過這些小細節可以折射出很多高級的JS知識點。

          你可以通過傳送門(http://javascript-puzzlers.herokuapp.com/)先去測試一下你的水平,然后回來看看我的解析。為了詳細解釋這些細節,我也查閱了不少資料,彌補了很多JS知識盲點。

          1. parseInt 遇上 map

          ["1", "2", "3"].map(parseInt)
          
          
          // A. ["1", "2", "3"]
          // B. [1, 2, 3]
          // C. [0, 1, 2]
          // D. other

          答案是D。實際上返回的結果是 [1, NaN, NaN] ,因為 parseInt 函數只需要兩個參數 parseInt(value, radix) ,而 map 的回調函數需要三個參數 callback(currentValue, index, array)。

          MDN文檔中指明 parseInt 第二個參數是一個2到36之間的整數值,用于指定轉換中采用的基數。如果省略該參數或其值為0,則數字將以10為基礎來解析。

          如果該參數小于2或者大于36,則 parseInt 返回 NaN。此外,轉換失敗也會返回 NaN。

          現在來分析問題。parseInt("1", 0) 的結果是當作十進制來解析,返回 1;parseInt("2", 1) 的第二個參數非法,返回 NaN;parseInt("3", 2) 在二進制中,"3" 是非法字符,轉換失敗,返回 NaN。

          參考資料:

          • MDN: Array.prototype.map()
          • MDN: parseInt

          2. 神奇的null

          [typeof null, null instanceof Object]
          
          
          // A. ["object", false]
          // B. [null, false]
          // C. ["object", true]
          // D. other

          答案是A。在MDN關于 null 的文檔中也特別指出來了,typeof null 的結果是 "object",它是ECMAScript的bug,其實應該是 "null"。但這個bug由來已久,在JavaScript中已經存在了將近二十年,也許永遠不會修復,因為這牽扯到太多的Web系統,修復它會產生更多的bug,令許多系統無法正常工作。而 instanceof 運算符是用來測試一個對象在其原型鏈構造函數上是否具有 prototype 屬性,null 值并不是以 Object 原型創建出來的,所以 null instanceof Object 返回 false。

          參考資料:

          • MDN:null
          • MDN:instanceof
          • CSDN博客:null instanceof Object 求解?

          3. 憤怒的reduce

          [ [3,2,1].reduce(Math.pow), [].reduce(Math.pow) ]
          
          
          // A. an error
          // B. [9, 0]
          // C. [9, NaN]
          // D. [9, undefined]

          答案是A。MDN文檔中關于 Array.prototype.reduce() 寫得很清楚:

          如果數組為空并且沒有提供initialValue, 會拋出TypeError 。如果數組僅有一個元素(無論位置如何)并且沒有提供initialValue, 或者有提供initialValue但是數組為空,那么此唯一值將被返回并且callback不會被執行。

          參考資料:

          • MDN:Array.prototype.reduce()

          4. 該死的優先級

          var val = 'smtg';
          console.log('Value is ' + (val === 'smtg') ? 'Something' : 'Nothing');
          
          
          // A. Value is Something
          // B. Value is Nothing
          // C. NaN
          // D. other

          答案是D。實際上輸出 "Something",因為 + 的優先級比條件運算符 condition ? val1 : val2 的優先級高。

          參考資料:

          • MDN:運算符優先級

          5. 神鬼莫測之變量提升

          var name = 'World!';
          (function () {
              if (typeof name === 'undefined') {
                var name = 'Jack';
                console.log('Goodbye ' + name);
              } else {
                console.log('Hello ' + name);
              }
          })();
          
          
          // A. Goodbye Jack
          // B. Hello Jack
          // C. Hello undefined
          // D. Hello World

          答案是A。看如下MDN官方文檔的解釋:

          在 JavaScript中, functions 和 variables 會被提升。變量提升是JavaScript將聲明移至作用域 scope (全局域或者當前函數作用域) 頂部的行為。

          這意味著你可以在聲明一個函數或變量之前引用它,或者可以說:一個變量或函數可以在它被引用之后聲明。

          所以,上面的代碼與下面這段代碼是等價的:

          var name = 'World!';
          (function () {
              var name;
              if (typeof name === 'undefined') {
                name = 'Jack';
                console.log('Goodbye ' + name);
              } else {
                console.log('Hello ' + name);
              }
          })();

          參考資料:

          • MDN:變量提升
          • 這篇博客解釋的比較詳細:js變量提升

          6. 死循環陷阱

          var END = Math.pow(2, 53);
          var START = END - 100;
          var count = 0;
          for (var i = START; i <= END; i++) { 
            count++;
          }
          console.log(count);
          
          
          // A. 0
          // B. 100
          // C. 101
          // D. other

          答案是D。在JavaScript中,2^53 是最大的值,沒有比這更大的值了。所以 2^53 + 1 == 2^53,所以這個循環無法終止。

          7. 過濾器魔法

          var ary = [0,1,2];
          ary[10] = 10;
          ary.filter(function(x) {
            return x === undefined;
          });
          
          
          // A. [undefined x 7]
          // B. [0, 1, 2, 10]
          // C. []
          // D. [undefined]

          答案是C。看MDN官方文檔的描述:

          filter 為數組中的每個元素調用一次 callback 函數,并利用所有使得 callback 返回 true 或 等價于 true 的值 的元素創建一個新數組。callback 只會在已經賦值的索引上被調用,對于那些已經被刪除或者從未被賦值的索引不會被調用。那些沒有通過 callback 測試的元素會被跳過,不會被包含在新數組中。

          參考資料:

          • MDN:Array.prototype.filter()

          8. 警惕IEEE 754標準

          var two = 0.2;
          var one = 0.1;
          var eight = 0.8;
          var six = 0.6;
          [two - one == one, eight - six == two]
          
          
          // A. [true, false]
          // B. [false, false]
          // C. [true, false]
          // D. other

          答案是C。JavaScript中采用雙精度浮點數格式,即IEEE 754標準。在該格式下,有些數字無法表示出來,比如:0.1 + 0.2 = 0.30000000000000004 ,這不是JavaScript的鍋,所有采用該標準的語言都有這個問題,比如:Java、Python等。

          參考資料:

          • Wiki:Double-precision floating-point format

          9. 字符串陷阱

          function showCase(value) {
            switch(value) {
              case 'A':
                console.log('Case A');
                break;
              case 'B':
                console.log('Case B');
                break;
              case undefined:
                console.log('undefined');
                break;
              default:
                console.log('Do not know!');
            }
          }
          showCase(new String('A'));
          
          
          // A. Case A
          // B. Case B
          // C. Do not know!
          // D. undefined

          答案是C。在 switch 內部使用嚴格相等 === 進行判斷,并且 new String("A") 返回的是一個對象,而 String("A") 則是直接返回字符串 "A"。你也可以參考MDN中對原始字符串和String對象的區分:

          Note that JavaScript distinguishes between String objects and primitive string values. (The same is true of Boolean and Numbers.)

          String literals (denoted by double or single quotes) and strings returned from String calls in a non-constructor context (i.e., without using the new keyword) are primitive strings. JavaScript automatically converts primitives to String objects, so that it's possible to use String object methods for primitive strings. In contexts where a method is to be invoked on a primitive string or a property lookup occurs, JavaScript will automatically wrap the string primitive and call the method or perform the property lookup.

          參考資料:

          • MDN:String

          10. 再一次的字符串陷阱

          function showCase(value) {
            switch(value) {
              case 'A':
                console.log('Case A');
                break;
              case 'B':
                console.log('Case B');
                break;
              case undefined:
                console.log('undefined');
                break;
              default:
                console.log('Do not know!');
            }
          }
          showCase(String('A'));
          
          
          // A. Case A
          // B. Case B
          // C. Do not know!
          // D. undefined

          答案顯然是A。與上面唯一不同的是沒有使用 new 關鍵字,所以直接返回字符串,實際上,typeof string("A") === "string" 的結果是 true。解釋參見第9條的解釋。

          11. 并非都是奇偶

          function isOdd(num) {
            return num % 2 == 1;
          }
          
          
          function isEven(num) {
            return num % 2 == 0;
          }
          
          
          function isSane(num) {
            return isEven(num) || isOdd(num);
          }
          
          
          var values = [7, 4, "13", -9, Infinity];
          values.map(isSane);
          
          
          // A. [true, true, true, true, true]
          // B. [true, true, true, true, false]
          // C. [true, true, true, false, false]
          // D. [true, true, false, false, false]

          答案是C。-9 % 2 = -1 以及 Infinity % 2 = NaN,求余運算符會保留符號,所以只有 isEven 的判斷是可靠的。

          12. parseInt小賊

          parseInt(3, 8);
          parseInt(3, 2);
          parseInt(3, 0);
          
          
          // A. 3, 3, 3
          // B. 3, 3, NaN
          // C. 3, NaN, NaN
          // D. other

          答案是D。實際結果是 3, NaN, 3,這個在第一個問題中解釋的很清楚了。

          13. 數組原型是數組

          Array.isArray( Array.prototype )
          
          
          // A. true
          // B. false
          // C. error
          // D. other

          答案是A。一個鮮為人知的事實:其實 Array.prototype 也是一個數組。這點在MDN文檔中提到過。

          參考資料:

          • MDN:Array.isArray()

          14. 一言難盡的強制轉換

          var a = [0];
          if ([0]) {
            console.log(a == true);
          } else {
            console.log("wut");
          }
          
          
          // A. true
          // B. false
          // C. "wut"
          // D. other

          答案是B。這個是JavaScript中強制轉換的經典案例,關于強制轉換不是一兩句話可以跟你說清楚的,我建議你系統性的學習一下,推薦你看看《你不知道的JavaScript-中卷》這本書,如果不舍得買書,github上有英文原版:You-Dont-Know-JS,深入理解之后你就是高手了。

          好了,回到當前這個問題。當 [0] 需要被強制轉成 Boolean 的時候會被認為是 true。所以進入第一個 if 語句,而 a == true 的轉換規則在ES5規范的第11.9.3節中已經定義過,你可以自己詳細探索下。

          規范指出,== 相等中,如果有一個操作數是布爾類型,會先把他轉成數字,所以比較變成了 [0] == 1;同時規范指出如果其他類型和數字比較,會嘗試把這個類型轉成數字再進行寬松比較,而對象(數組也是對象)會先調用它的 toString() 方法,此時 [0] 會變成 "0",然后將字符串 "0" 轉成數字 0,而 0 == 1 的結果顯然是 false。

          參考資料:

          • ES5規范:11.9.3
          • 《你不知道的JavaScript-中卷》

          15. 撒旦之子“==”

          []==[]
          
          
          // A. true
          // B. false
          // C. error
          // D. other

          答案是B。ES5規范11.9.3.1-f指出:如果比較的兩個對象指向的是同一個對象,就返回 true,否則就返回 false,顯然,這是兩個不同的數組對象。

          參考資料:

          • ES5規范:11.9.3.1
          • 《你不知道的JavaScript-中卷》

          16. 加號 VS 減號

          '5' + 3;
          '5' - 3;
          
          
          // A. "53", 2
          // B. 8, 2
          // C. error
          // D. other

          答案是A。"5" + 2 = "52" 很好理解,+ 運算符中只要有一個是字符串,就會變成字符串拼接操作。你不知道的是,- 運算符要求兩個操作數都是數字,如果不是,會強制轉換成數字,所以結果就變成了 5 - 2 = 3。

          參考資料:

          • 《你不知道的JavaScript-中卷》,第四章:4.4.2 字符串和數字之間的隱式強制類型轉換

          17. 打死那個瘋子

          1 + - + + + - + 1
          
          
          // A. 2
          // B. 1
          // C. error
          // D. other

          答案是A。這個只能出現在示例代碼中,如果你發現哪個瘋子寫了這個在生產代碼中,打死他就行了。你只要知道 + 1 = 1和- 1 = -1,注意符號之間的空格。兩個減號抵消,所以最終結果等效于 1 + 1 = 2。或者你也可以在符號之間插入 0 來理解,即 1 + 0 - 0 + 0 + 0 + 0 - 0 + 1,這樣你就一目了然了吧!千萬別寫這樣的代碼,因為可能會被打死!

          18. 淘氣的map

          var ary = Array(3);
          ary[0] = 2;
          ary.map(function(elem) {
            return "1";
          });
          
          
          // A. [2, 1, 1]
          // B. ["1", "1", "1"]
          // C. [2, "1", "1"]
          // D. other

          答案是D。實際上結果是 ["1", undefined x 2],因為規范寫得很清楚:

          map 方法會給原數組中的每個元素都按順序調用一次 callback 函數。callback 每次執行后的返回值組合起來形成一個新數組。callback 函數只會在有值的索引上被調用;那些從來沒被賦過值或者使用 delete 刪除的索引則不會被調用。

          參考資料:

          • MDN: Array.prototype.map()

          19. 統統算我的

          function sidEffecting(ary) {
            ary[0] = ary[2];
          }
          
          
          function bar(a, b, c) {
            c = 10;
            sidEffecting(arguments);
            return a + b + c;
          }
          
          
          bar(1, 1, 1);
          
          
          // A. 3
          // B. 12
          // C. error
          // D. other

          答案是D。實際上結果是 21。在JavaScript中,參數變量和 arguments 是雙向綁定的。改變參數變量,arguments 中的值會立即改變;而改變 arguments 中的值,參數變量也會對應改變。

          20. 損失精度的IEEE 754

          var a = 111111111111111110000;
          var b = 1111;
          console.log(a + b);
          
          
          // A. 111111111111111111111
          // B. 111111111111111110000
          // C. NaN
          // D. Infinity

          答案是B。這是IEEE 754規范的黑鍋,不是JavaScript的問題。表示這么大的數占用過多位數,會丟失精度,學過計算機組成原理的應該知道是怎么回事。

          參考資料:

          • Wiki:Double-precision floating-point format

          21. 反轉世界

          var x = [].reverse;
          x();
          
          
          // A. []
          // B. undefined
          // C. error
          // D. window

          答案是D。MDN規范關于 reverse 的描述:

          reverse 方法顛倒數組中元素的位置,并返回該數組的引用。

          而這里調用的時候沒有制定數組,所以默認的 this 就是 window,所以最后結果返回的是 window。

          參考資料:

          • MDN:Array.prototype.reverse()

          22. 最小的正值

          Number.MIN_VALUE > 0
          
          
          // A. false
          // B. true
          // C. error
          // D. other

          答案是B。看規范描述吧:

          MIN_VALUE屬性是 JavaScript 里最接近 0 的正值,而不是最小的負值。

          MIN_VALUE的值約為 5e-324。小于 MIN_VALUE
          ("underflow values") 的值將會轉換為 0。

          因為 MIN_VALUE是 Number 的一個靜態屬性,因此應該直接使用:Number.MIN_VALUE,而不是作為一個創建的 Number實例的屬性。

          參考資料:

          • MDN:Number.MIN_VALUE

          23. 謹記優先級

          [1 < 2 < 3, 3 < 2 < 1]
          
          
          // A. [true, true]
          // B. [true, false]
          // C. error
          // D. other

          答案是A。<和>的優先級都是從左到右,所以 1 < 2 < 3 會先比較 1 < 2,這會得到 true,但是 < 要求比較的兩邊都是數字,所以會發生隱式強制轉換,將 true 轉換成 1,所以最后就變成了比較 1 < 3,結果顯然為 true。同理可以分析后者。

          參考資料:

          • MDN:運算符優先級

          24. 坑爹中的戰斗機

          // the most classic wtf
          2 == [[[2]]]
          
          
          // A. true
          // B. false
          // C. undefined
          // D. other

          答案是A。根據ES5規范,如果比較的兩個值中有一個是數字類型,就會嘗試將另外一個值強制轉換成數字,再進行比較。而數組強制轉換成數字的過程會先調用它的 toString方法轉成字符串,然后再轉成數字。所以 [2]會被轉成 "2",然后遞歸調用,最終 [[[2]]] 會被轉成數字 2。

          25. 小數點魔術

          3.toString();
          3..toString();
          3...toString();
          
          
          // A. "3", error, error
          // B. "3", "3.0", error
          // C. error, "3", error
          // D. other

          答案是C。點運算符會被優先識別為數字常量的一部分,然后才是對象屬性訪問符。所以 3.toString() 實際上被JS引擎解析成 (3.)toString(),顯然會出現語法錯誤。但是如果你這么寫 (3).toString(),人為加上括號,這就是合法的。

          26. 自動提升為全局變量

          (function() {
            var x = y = 1;
          })();
          console.log(y);
          console.log(x);
          
          
          // A. 1, 1
          // B. error, error
          // C. 1, error
          // D. other

          答案是C。很經典的例子,在函數中沒有用 var 聲明變量 y,所以 y 會被自動創建在全局變量 window下面,所以在函數外面也可以訪問得到。而 x 由于被 var 聲明過,所以在函數外部是無法訪問的。

          27. 正則表達式實例

          var a = /123/;
          var b = /123/;
          a == b;
          a === b;
          
          
          // A. true, true
          // B. true, false
          // C. false, false
          // D. other

          答案是C。每個字面的正則表達式都是一個單獨的實例,即使它們的內容相同。

          28. 數組也愛比大小

          var a = [1, 2, 3];
          var b = [1, 2, 3];
          var c = [1, 2, 4];
          
          
          a == b;
          a === b;
          a > c;
          a < c;
          
          
          // A. false, false, false, true
          // B. false, false, false, false
          // C. true, true, false, true
          // D. other

          答案是A。數組也是對象,ES5規范指出如果兩個對象進行相等比較,只有在它們指向同一個對象的情況下才會返回 true,其他情況都返回 false。而對象進行大小比較,會調用 toString 方法轉成字符串進行比較,所以結果就變成了字符串 "1,2,3" 和 "1,2,4" 按照字典序進行比較了(你若不信,可以重現兩個變量的 toString 方法,進行測試)。

          29. 原型把戲

          var a = {};
          var b = Object.prototype;
          
          
          [a.prototype === b, Object.getPrototypeOf(a) == b]
          
          
          // A. [false, true]
          // B. [true, true]
          // C. [false, false]
          // D. other

          答案是A。對象是沒有 prototype 屬性的,所以 a.prototype 是 undefined,但我們可以通過 Object.getPrototypeOf 方法來獲取一個對象的原型。

          30. 構造函數的函數

          function f() {}
          var a = f.prototype;
          var b = Object.getPrototypeOf(f);
          a === b;
          
          
          // A. true
          // B. false
          // C. null
          // D. other

          答案是B。這個解釋起來有點繞口,我們先來看另外一段代碼:

          function Person() {}
          var p = new Person();
          
          
          var a = p.__proto__;
          var b = Object.getPrototypeOf(p);
          var c = Person.prototype;
          console.log(a === b, a === c, b === c);
          // true, true, true
          
          
          var d = Person.__proto__;
          var e = Object.getPrototypeOf(Person);
          var f = Function.prototype;
          console.log(d === e, d === f, e === f);
          // true, true, true

          首先你要明白,任何函數都是 Function 的實例,而p是函數 Person 的實例,Object.getPrototypeOf 會獲取構造當前對象的原型。所以 Object.getPrototypeOf(p) === Person.prototype,而 Object.getPrototypeOf(Person) === Function.prototype,所以答案就很明顯了。

          我解釋的不是很好,如果讀者有更好的解釋,歡迎評論。

          31. 禁止修改函數名

          function foo() {}
          var oldName = foo.name;
          foo.name = "bar";
          [oldName, foo.name];
          
          
          // A. error
          // B. ["", ""]
          // C. ["foo", "foo"]
          // D. ["foo", "bar"]

          答案是C。函數名是禁止修改的,規范寫的很清楚,所以這里的修改無效。

          參考資料:

          • MDN:Function.name

          32. 替換陷阱

          "1 2 3".replace(/\d/g, parseInt);
          
          
          // A. "1 2 3"
          // B. "0 1 2"
          // C. "NaN 2 3"
          // D. "1 NaN 3"

          答案是D。如果 replace 方法第二個參數是一個函數,則會在匹配的時候多次調用,第一個參數是匹配的字符串,第二個參數是匹配字符串的下標。所以變成了調用 parseInt(1, 0)、parseInt(2, 2)和parseInt(3, 4),結果你就懂了。

          參考資料:

          • MDN:String.prototype.replace()

          33. Function的名字

          function f() {}
          var parent = Object.getPrototypeOf(f);
          console.log(f.name);
          console.log(parent.name);
          console.log(typeof eval(f.name));
          console.log(typeof eval(parent.name));
          
          
          // A. "f", "Empty", "function", "function"
          // B. "f", undefined, "function", error
          // C. "f", "Empty", "function", error
          // D. other

          答案是C。根據第30題的解釋,我們知道代碼中的 parent 實際上就是 Function.prototype,而它在控制臺中輸出為:

          function () {
            [native code]
          }

          它的 name 屬性是 "",所以你 eval("")是得不到任何東西的。

          34. 正則測試陷阱

          var lowerCaseOnly = /^[a-z]+$/;
          [lowerCaseOnly.test(null), lowerCaseOnly.test()]
          
          
          // A. [true, false]
          // B. error
          // C. [true, true]
          // D. [false, true]

          答案是C。test 方法的參數如果不是字符串,會經過抽象 ToString操作強制轉成字符串,因此實際上測試的是字符串 "null" 和 "undefined"。

          35. 逗號定義數組

          [,,,].join(", ")
          
          
          // A. ", , , "
          // B. "undefined, undefined, undefined, undefined"
          // C. ", , "
          // D. ""

          答案是C。JavaScript允許用逗號來定義數組,得到的數組是含有3個 undefined 值的數組。MDN關于 join 方法的描述:

          所有的數組元素被轉換成字符串,再用一個分隔符將這些字符串連接起來。如果元素是undefined 或者null, 則會轉化成空字符串。

          參考資料:

          • MDN:Array.prototype.join()

          36. 保留字 class

          var a = {class: "Animal", name: "Fido"};
          console.log(a.class);
          
          
          // A. "Animal"
          // B. Object
          // C. an error
          // D. other

          答案是D。實際上真正的答案取決于瀏覽器。class 是保留字,但是在Chrome、Firefox和Opera中可以作為屬性名稱,在IE中是禁止的。另一方面,其實所有瀏覽器基本接受大部分的關鍵字(如:int、private、throws等)作為變量名,而class是禁止的。

          37. 無效日期

          var a = new Date("epoch");
          
          
          // A. Thu Jan 01 1970 01:00:00 GMT+0100(CET)
          // B. current time
          // C. error
          // D. other

          答案是D。實際結果是 Invalid Date,它實際上是一個Date對象,因為 a instance Date 的結果是 true,但是它是無效的Date。Date對象內部是用一個數字來存儲時間的,在這個例子中,這個數字是 NaN。

          38. 神鬼莫測的函數長度

          var a = Function.length;
          var b = new Function().length;
          console.log(a === b);
          
          
          // A. true
          // B. false
          // C. error
          // D. other

          答案是B。實際上a的值是1,b的值是0。還是繼續來看MDN文檔關于 Function.length 的描述吧!

          Function構造器的屬性:

          Function 構造器本身也是個Function。他的 length 屬性值為 1 。該屬性 Writable: false, Enumerable: false, Configurable: true。

          Function原型對象的屬性:

          Function原型對象的 length 屬性值為 0 。

          所以,在本例中,a代表的是 Function 構造器的 length 屬性,而b代表的是 Function 原型的 length 屬性。

          參考資料:

          • MDN:Function.length

          39. Date的面具

          var a = Date(0);
          var b = new Date(0);
          var c = new Date();
          [a === b, b === c, a === c];
          
          
          // A. [true, true, true]
          // B. [false, false, false]
          // C. [false, true, false]
          // D. [true, false, false]

          答案是B。先看MDN關于Date對象的注意點:

          需要注意的是只能通過調用 Date 構造函數來實例化日期對象:以常規函數調用它(即不加 new 操作符)將會返回一個字符串,而不是一個日期對象。另外,不像其他JavaScript 類型,Date 對象沒有字面量格式。

          所以a是字符串,b和c是Date對象,并且b代表的是1970年那個初始化時間,而c代表的是當前時間。

          參考資料:

          • MDN:Date

          40. min與max共舞

          var min = Math.min();
          var max = Math.max();
          console.log(min < max);
          
          
          // A. true
          // B. false
          // C. error
          // D. other

          答案是B。看MDN文檔,對 Math.min的描述:

          如果沒有參數,結果為Infinity。

          對 Math.max 的描述:

          如果沒有參數,結果為-Infinity。

          參考資料:

          • MDN:Math.min
          • MDN:Math.max

          41. 警惕全局匹配

          function captureOne(re, str) {
            var match = re.exec(str);
            return match && match[1];
          }
          
          
          var numRe = /num=(\d+)/ig,
                wordRe = /word=(\w+)/i,
                a1 = captureOne(numRe, "num=1"),
                a2 = captureOne(wordRe, "word=1"),
                a3 = captureOne(numRe, "NUM=1"),
                a4 = captureOne(wordRe, "WORD=1");
          
          
          [a1 === a2, a3 === a4]
          
          
          // A. [true, true]
          // B. [false, false]
          // C. [true, false]
          // D. [false, true]

          答案是C。看MDN關于 exec 方法的描述:

          當正則表達式使用 "g" 標志時,可以多次執行 exec 方法來查找同一個字符串中的成功匹配。當你這樣做時,查找將從正則表達式的 lastIndex 屬性指定的位置開始。

          所以a3的值為 null。

          參考資料:

          • MDN:RegExp.prototype.exec()

          42. 最熟悉的陌生人

          var a = new Date("2014-03-19");
          var b = new Date(2014, 03, 19);
          [a.getDay() == b.getDay(), a.getMonth() == b.getMonth()]
          
          
          // A. [true, true]
          // B. [true, false]
          // C. [false, true]
          // D. [false, false]

          答案是D。先看MDN關于Date的一個注意事項:

          當Date作為構造函數調用并傳入多個參數時,如果數值大于合理范圍時(如月份為13或者分鐘數為70),相鄰的數值會被調整。比如 new Date(2013, 13, 1)等于new Date(2014, 1, 1),它們都表示日期2014-02-01(注意月份是從0開始的)。其他數值也是類似,new Date(2013, 2, 1, 0, 70)等于new Date(2013, 2, 1, 1, 10),都表示時間2013-03-01T01:10:00。

          此外,getDay 返回指定日期對象的星期中的第幾天(0~6),所以,你懂的。

          參考資料:

          • MDN:Date

          43. 匹配隱式轉換

          if("http://giftwrapped.com/picture.jpg".match(".gif")) {
            console.log("a gif file");
          } else {
            console.log("not a gif file");
          }
          
          
          // A. "a gif file"
          // B. "not a gif file"
          // C. error
          // D. other

          答案是A。看MDN對 match 方法的描述:

          如果傳入一個非正則表達式對象,則會隱式地使用 new RegExp(obj)
          將其轉換為正則表達式對象。

          所以我們的字符串 ".gif" 會被轉換成正則對象 /.gif/,會匹配到 "/gif"。

          參考資料:

          • MDN:String.prototype.match()

          44. 重復聲明變量

          function foo(a) {
            var a;
            return a;
          }
          
          
          function bar(a) {
            var a = "bye";
            return a;
          }
          
          
          [foo("hello"), bar("hello")]
          
          
          // A. ["hello", "hello"]
          // B. ["hello", "bye"]
          // C. ["bye", "bye"]
          // D. other

          答案是B。一個變量在同一作用域中已經聲明過,會自動移除 var 聲明,但是賦值操作依舊保留,結合前面提到的變量提升機制,你就明白了。


          主站蜘蛛池模板: 丰满岳妇乱一区二区三区| 精品综合一区二区三区| 性盈盈影院免费视频观看在线一区| 成人精品一区二区三区中文字幕| 国产成人精品一区二区秒拍| 国产日韩一区二区三区| 国产裸体舞一区二区三区| 无码人妻品一区二区三区精99| 亚洲毛片不卡av在线播放一区| 日本香蕉一区二区三区| 亚洲综合色一区二区三区| 日韩精品区一区二区三VR| 无码人妻一区二区三区在线视频 | 无码av不卡一区二区三区| 国产福利无码一区在线| 中文字幕日韩一区二区不卡| 3d动漫精品一区视频在线观看| 东京热无码一区二区三区av| 国产在线精品一区二区在线看| 91无码人妻精品一区二区三区L| 中文字幕一区二区三区精彩视频| 精品视频无码一区二区三区| 97精品国产福利一区二区三区| 日韩一区二区三区免费播放| 国产一区二区三区视频在线观看 | 亚洲国产精品第一区二区| 无码国产精成人午夜视频一区二区| 亚洲AV日韩AV天堂一区二区三区| 无码一区二区三区老色鬼| 人妻天天爽夜夜爽一区二区| 99久久无码一区人妻a黑| 亚洲另类无码一区二区三区| 国产在线一区视频| 久久国产香蕉一区精品| 国产视频一区在线观看| 亚洲国产福利精品一区二区| 国产精品视频一区国模私拍| 夜夜精品无码一区二区三区| 国产一区二区三区在线看| 国产精品视频分类一区| 韩国资源视频一区二区三区|