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
avaScript是一種非常容錯(cuò)的編程語(yǔ)言,許多在其他編程語(yǔ)言中不合法的表達(dá)式在JavaScript中都能正常工作。
這導(dǎo)致了很多奇怪的代碼。你想挑戰(zhàn)它嗎?
在這個(gè)挑戰(zhàn)中,你將看到20個(gè)古怪表達(dá)式,并要猜出其輸出結(jié)果。
1.
true + false
2.
**1.**
3.
[1, 2, 3] + [4, 5, 6]
4.
0.2 + 0.1===0.3
5.
10,2
6.
!!""
7.
+!![]
8.
true=="true"
9.
010 - 03
10.
"" - - ""
11.
null + 0
12.
0/0
13.
1/0===10 ** 1000
14.
true++
15.
"" - 1
16.
(null - 1) - "1"
17.
38 * 4343 * 2342+ (“true” — 0)
18.
5 + !5 + !!5
19.
[] + [1] + 2
20.
1 + 2 + "3"
true + false
試圖在兩個(gè)布爾值之間使用加法運(yùn)算符(+)時(shí),它們會(huì)被轉(zhuǎn)換為數(shù)字。
而且我們都知道true應(yīng)該被轉(zhuǎn)換為1,false應(yīng)該被轉(zhuǎn)換為0。所以true+false返回1。
[,,,].length
[,,,] 輸出一個(gè)有三個(gè)空槽的數(shù)組。最后一個(gè)逗號(hào)是尾部的逗號(hào)。
你可以這么想。
[,]==> [empty,]
[,,]==> [empty, empty,]
[,,,]==> [empty, empty, empty,]
所以 [,,,].length 返回3。
[1, 2, 3] + [4, 5, 6]
當(dāng)你試圖在數(shù)組之間使用加法運(yùn)算符(+)時(shí),它們會(huì)被轉(zhuǎn)換為字符串。
將一個(gè)數(shù)組轉(zhuǎn)換為字符串時(shí),數(shù)組的 toString() 方法被調(diào)用。toString()方法是JavaScript 內(nèi)部使用的,當(dāng)一個(gè)數(shù)組需要顯示為文本時(shí),它將用逗號(hào)連接其元素。
[1, 2, 3].toString()==> '1, 2, 3'
[4, 5, 6].toString()==> '4, 5, 6'
所以
[1, 2, 3] + [4, 5, 6]==> '1, 2, 3' + '4, 5, 6'==> "1,2,34,5,6"
0.2 + 0.1===0.3
由于浮點(diǎn)數(shù)很難在計(jì)算機(jī)中準(zhǔn)確表示,數(shù)學(xué)上的0.1和0.2在計(jì)算機(jī)中只能用近似的數(shù)字表示。
0.1+0.2的結(jié)果不完全是0.3。不僅僅是JavaScript,其他編程語(yǔ)言也有同樣的問(wèn)題。
10, 2
逗號(hào)(,)在JavaScript中也是一個(gè)合法的操作符,它評(píng)估每個(gè)操作數(shù)(從左到右),并返回最后一個(gè)操作數(shù)的值。
因此,10,2返回2
!!""
""是一個(gè)空字符串,它是一個(gè)虛值。
注意:0、空字符串""、null 和undefined都是虛值。
! 是邏輯上的 "非 "運(yùn)算符,把 true 變成 false,反之亦然。
如果我們使用兩次!,也就是!!,它將把一個(gè)正常的值轉(zhuǎn)換成一個(gè)布爾值。所以!""返回 false。
+!![]
數(shù)組都是真值,甚至是空數(shù)組。所以!![]將返回true。
!![]; // -> true
而+號(hào)會(huì)將真值轉(zhuǎn)換為其數(shù)字表示: 1,所以 +!![] 返回 1。
true=="true"
雙等運(yùn)算符(==)檢查其兩個(gè)操作數(shù)是否相等,并返回一個(gè)布爾值結(jié)果。
根據(jù)抽象的雙等比較規(guī)則,這兩個(gè)值在比較時(shí)都被轉(zhuǎn)換為數(shù)字。
true=="true"==> Number(true)==Number("true")==> 1==NaN
所以,ture=="true" 返回false。
010 - 03
這里有一個(gè)小小的技巧:如果一個(gè)數(shù)字以0開(kāi)頭,那么在JavaScript中它就被當(dāng)作一個(gè)八進(jìn)制數(shù)字。所以:
010 - 03==> 8 - 3==> 5
另外:
** ""--"" **
這看起來(lái)是一個(gè)錯(cuò)誤的語(yǔ)法,但它確實(shí)工作正常。
空字符串可以被轉(zhuǎn)換為布爾值false或數(shù)字值0。所以 -"" 為 0
null + 0
正如我們之前所說(shuō),null是一個(gè)虛值。它將被轉(zhuǎn)換為布爾值false或數(shù)字值0。所以結(jié)果返回 0。
0/0
這是一個(gè)非法的數(shù)學(xué)表達(dá)式。方程0/0沒(méi)有任何有意義的數(shù)字答案,輸出的結(jié)果只是NaN。
1/0===10 ** 1000
雖然1/0和之前一樣也是一個(gè)非法的數(shù)學(xué)表達(dá)式。但是當(dāng)除數(shù)不是0時(shí),JavaScript認(rèn)為這個(gè)表達(dá)式的結(jié)果是Infinity。
而10**1000是一個(gè)很大數(shù)字,JS 無(wú)法正確表示這個(gè)數(shù)字。(JavaScript中最高的整數(shù)值是2^53-1)。所以10 * 1000也被當(dāng)作無(wú)限大(Infinity)。
無(wú)窮大總是等于另一個(gè)無(wú)窮大,所以1/0===10 ** 1000返回 true。
true++
這沒(méi)有什么特別的,這只是一個(gè)語(yǔ)法錯(cuò)誤。
""- 1
雖然加法運(yùn)算符(+)同時(shí)用于數(shù)字和字符串,但減法運(yùn)算符(-)對(duì)字符串沒(méi)有用處,所以JavaScript將其解釋為數(shù)字之間的操作。一個(gè)空的字符串會(huì)被類型強(qiáng)制為0。
"" - 1==> Number("") - 1==> 0 - 1==> -1
所以 "" — 1 返回 -1
** (null - 1) - "1" **
正如上面所說(shuō)。
null==> 0
(null - 1)==> -1
"1"==> 1
所以 (null — 1) — “1” 返回 -2
38 * 4343 * 2342+ ("true" - 0)
你可能會(huì)懷疑JS是如此瘋狂,以至于它將字符串 "true" 轉(zhuǎn)換為布爾值 true 的數(shù)字表示。然而,它并沒(méi)有那么瘋狂。實(shí)際發(fā)生的情況是,它試圖將字符串轉(zhuǎn)換為數(shù)字,但失敗了。
Number("true"); // -> NaN
在JavaScript的數(shù)字運(yùn)算中,只要有一個(gè)值是NaN,運(yùn)算的最終結(jié)果就一定是NaN。38 * 4343 * 2342只是一個(gè)煙霧彈。
5 + !5 + !!5
正如上面所說(shuō)。
所以:
!5==> 0
!!5==> 1
**[] + [1] + 2 **
試圖在數(shù)組之間使用加法運(yùn)算符(+)時(shí),它們會(huì)被轉(zhuǎn)換為字符串。
[]==> ''
[1]==> '1'
[] + [1]==> '1'
'1' + 2==> '12'
所以結(jié)果是'12'。
1 + 2 + "3"
JavaScript 從左到右執(zhí)行這些操作。當(dāng)數(shù)字3與字符串3相加時(shí),字符串連接將優(yōu)先進(jìn)行。
1 + 2; // -> 3
3 + "3"; // -> "33"
坦率地說(shuō),這些挑戰(zhàn)并沒(méi)有為我膠們編碼技能提供任何價(jià)值,所以不應(yīng)該在實(shí)際項(xiàng)目中寫這種代碼
但是,把這些技巧作為朋友和同事之間的一些裝13,不是一件非常有趣的事情嗎?
作者:Marina Mosti 譯者:前端小智 來(lái)源:medium 原文:https://medium.com/frontend-canteen/20-useless-but-funny-challange-for-javascript-develor-9eea39bb8efb
云與華盛頓州奧卡諾根-韋納奇國(guó)家森林美洲獅溪野火產(chǎn)生的煙霧混合在了一起。
野火和熱浪對(duì)美國(guó)西部造成的壓力持續(xù)攀升,人們對(duì)干旱的憂慮也與日俱增:干燥的土地更容易釀成火事,而雨水能夠幫助平息肆虐的大火。然而,野火的煙霧也可能成為降雨的阻礙。phys.org網(wǎng)站當(dāng)?shù)貢r(shí)間8月11日?qǐng)?bào)道,美國(guó)西北研究協(xié)會(huì)與科羅拉多大學(xué)博爾德分校領(lǐng)導(dǎo)的研究顯示,野火煙霧中的微小顆粒會(huì)影響云滴的形成方式,造成降雨減少,并加劇助長(zhǎng)火災(zāi)的干燥條件。研究人員預(yù)測(cè)說(shuō),受野火影響,云層中形成的液滴數(shù)量會(huì)增加,但煙霧云和潔凈云之間的差異比預(yù)期更大——煙霧云中的液滴數(shù)量是潔凈云的5倍,但其液滴尺寸僅為原始液滴尺寸的一半。由于小液滴不太可能繼續(xù)增長(zhǎng)并最終形成降雨,美國(guó)西部的降雨很可能因野火季而減少。相關(guān)研究成果刊登在《地球物理研究快報(bào)》中。
大氣科學(xué)家Cynthia Twohy說(shuō):“我們對(duì)這些有機(jī)粒子在云滴形成過(guò)程中的作用感到驚訝。我開(kāi)始思考,‘這會(huì)產(chǎn)生怎樣的長(zhǎng)期影響?野火和干旱隨著時(shí)間的推移還在繼續(xù)增加,云在這里扮演了什么角色?’”
在高至大氣的云層中,更多的微粒會(huì)增強(qiáng)云層活躍度,從而導(dǎo)致降雨。但對(duì)于Twohy團(tuán)隊(duì)研究的相對(duì)低海拔的積云而言,情況正好相反。研究人員在亞馬遜地區(qū)發(fā)現(xiàn)的與煙霧相關(guān)的液滴尺寸和濃度的類似變化,為新發(fā)現(xiàn)提供了支持。專業(yè)人士、加州大學(xué)歐文分校大氣化學(xué)家Ann Marie Carlton說(shuō):“Twohy團(tuán)隊(duì)的新發(fā)現(xiàn)真正讓我興奮的是,它揭示了煙霧與水循環(huán)的聯(lián)系。”
Twohy指出,云層的微觀物理學(xué)過(guò)程是非常復(fù)雜的。新研究的重點(diǎn)是小型積云,它們?cè)谙募靖采w了美國(guó)西部大約四分之一的地區(qū),而其他類型的云(如高空雷暴云)可能會(huì)有不同的表現(xiàn)。在較淺的云層中,數(shù)量越多、尺寸越小的液滴,反射性也越強(qiáng),這可能會(huì)對(duì)地表起到輕微的冷卻作用。隨著這些地區(qū)夏季降雨的減少,干燥效應(yīng)正在壓過(guò)可能增加降雨的因素。Carlton總結(jié)道:“人類擾亂了大氣的組成。這導(dǎo)致產(chǎn)生了很多未知的反饋和相互作用。Twohy的論文觸及了疑云的表面。”
編譯:德克斯特 審稿:西莫 責(zé)編:陳之涵
期刊來(lái)源:《地球物理研究快報(bào)》
期刊編號(hào):0094-8276
原文鏈接:https://phys.org/news/2021-08-wildfire-western.html
中文內(nèi)容僅供參考,一切內(nèi)容以英文原版為準(zhǔn)。轉(zhuǎn)載請(qǐng)注明來(lái)源。
防關(guān)系到公共安全和社會(huì)穩(wěn)定問(wèn)題,是一道重要的防線。隨著社會(huì)現(xiàn)代化程度不斷加深,火災(zāi)也呈現(xiàn)出復(fù)雜化的趨勢(shì)。單一傳統(tǒng)的有線傳輸信號(hào)的火災(zāi)報(bào)警方式已經(jīng)不能滿足現(xiàn)代消防的需求。而有線布線的方式繁瑣,并且在火災(zāi)現(xiàn)場(chǎng)中極易被破壞。
我們緊跟現(xiàn)代技術(shù)發(fā)展,在【方案超市】中精心挑選出4個(gè)可用于家庭、社區(qū)或者工業(yè)領(lǐng)域的預(yù)防火災(zāi)的智慧解決方案,讓智慧消防走進(jìn)千家萬(wàn)戶。
如有需要,請(qǐng)點(diǎn)擊查看方案詳情鏈接,可獲取方案商的聯(lián)系方式,進(jìn)行咨詢。
一、NB-Iot煙感報(bào)警器(工業(yè)區(qū))
NB-Iot煙感具有秒級(jí)的火情識(shí)別反應(yīng)速度,并直接推送到消防大屏火控中心。產(chǎn)品無(wú)需經(jīng)過(guò)傳統(tǒng)火情的類似架構(gòu),多級(jí)聯(lián)網(wǎng),層層上傳。只需黏貼或者扣住卡扣,可免除傳統(tǒng)煙感多級(jí)布線、調(diào)試等繁瑣過(guò)程。查看方案詳情》http://www.52solution.com/shop/7208.html
二、工廠可燃有毒性氣體監(jiān)控系統(tǒng)(工業(yè)區(qū))
當(dāng)工業(yè)環(huán)境、日常生活環(huán)境中可燃性氣體發(fā)生泄漏時(shí),有毒可燃?xì)怏w報(bào)警器檢測(cè)到可燃性氣體濃度達(dá)到報(bào)警器設(shè)置的報(bào)警值時(shí),可燃?xì)怏w報(bào)警器會(huì)發(fā)出聲光報(bào)警信號(hào),以提醒工作人員疏散、強(qiáng)制排風(fēng)、關(guān)停設(shè)備等安全措施。且氣體報(bào)警器可聯(lián)動(dòng)相關(guān)的聯(lián)動(dòng)設(shè)備如在工廠生產(chǎn)、儲(chǔ)運(yùn)中發(fā)生泄漏,可以驅(qū)動(dòng)排風(fēng)、切斷設(shè)備電源、噴淋等系統(tǒng),防止發(fā)生爆炸、火災(zāi)、中毒事故,從而保證安全生產(chǎn),此方案經(jīng)常用在化工廠、石油、燃?xì)庹尽撹F廠等使用或者產(chǎn)出可燃性氣體的場(chǎng)所。查看方案詳情》http://www.52solution.com/shop/7374.html
三、智能氣體感應(yīng)器(家居、工業(yè)區(qū))
安S2智能氣體感應(yīng)器(以下簡(jiǎn)稱氣體感應(yīng)器)是一款基于家庭安防而設(shè)計(jì)的互聯(lián)網(wǎng)報(bào)警器。內(nèi)置MacBee模組,采用MacBee協(xié)議與智能主機(jī)進(jìn)行高可靠安全射頻通信。悟安S2智能氣體感應(yīng)器包含一氧化碳檢測(cè)、可燃?xì)怏w檢測(cè)等多種感應(yīng)器,支持檢測(cè)室內(nèi)CO、甲醛、甲烷等氣體的濃度,預(yù)防燃?xì)庑孤┖陀泻怏w釋放造成的危害。當(dāng)氣體感應(yīng)器探測(cè)到待測(cè)氣體并達(dá)到氣體感應(yīng)器設(shè)定的報(bào)警濃度時(shí),氣體感應(yīng)器LED閃爍,并發(fā)出報(bào)警聲音,同時(shí)將信息反饋至APP客戶端,推送報(bào)警消息提醒。全自動(dòng)檢測(cè)功能,確保氣體感應(yīng)器始終處于最佳的工作狀態(tài),可通過(guò)APP客戶端查詢歷史記錄,讓您時(shí)刻把家的安全帶在身邊。查看方案詳情》http://www.52solution.com/shop/7321.html
四、煙霧探測(cè)無(wú)線報(bào)警器(住宅、商場(chǎng)、倉(cāng)庫(kù))
煙霧探測(cè)無(wú)線報(bào)警器能夠探測(cè)火災(zāi)發(fā)生時(shí)產(chǎn)生的煙霧并及時(shí)發(fā)出報(bào)警信號(hào)。該探測(cè)器利用煙霧中的顆粒折射紅外光的原理來(lái)進(jìn)行工作,產(chǎn)品采用獨(dú)特的結(jié)構(gòu)設(shè)計(jì)以及光電信號(hào)處理技術(shù),具有防塵、防蟲(chóng)、抗外界光線干擾等功能,從設(shè)計(jì)上保證了產(chǎn)品的穩(wěn)定性。本產(chǎn)品對(duì)緩慢陰燃或者明燃所產(chǎn)生的可見(jiàn)煙霧,都有較好的反應(yīng)。適用于住宅、商場(chǎng)、賓館以及倉(cāng)庫(kù)等室內(nèi)環(huán)境的煙霧監(jiān)測(cè)。查看方案詳情》http://www.52solution.com/shop/6942.html
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。