十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
JS無(wú)法自主控制線程,即便NODE.JS,其本身也是C語(yǔ)言的實(shí)現(xiàn),只是使用JS間接調(diào)用C語(yǔ)言去執(zhí)行而已。因此JS得觸角,是無(wú)法觸及高性能應(yīng)用的。

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),措勤企業(yè)網(wǎng)站建設(shè),措勤品牌網(wǎng)站建設(shè),網(wǎng)站定制,措勤網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,措勤網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
從語(yǔ)言本身,與其認(rèn)為JS可以一統(tǒng)天下,C#一統(tǒng)天下的可能性似乎更高一些。由于Unity3D的存在,可以一次開發(fā),便發(fā)布到21種平臺(tái)。windows,linux,mac自然不在話下,還包括PS4,3DS,SWITCH,XBOX等游戲機(jī)。。各種VR,AR設(shè)備,以及WebGL。。只要WebGL逐漸普及,或H5的性能進(jìn)一步提升,Unity便可直接生成前端頁(yè)面。。且性能非常棒。。連3D大型游戲都可以流暢運(yùn)行。。
簡(jiǎn)單說(shuō),JS的問(wèn)題在語(yǔ)言本身,先天的缺陷,導(dǎo)致其很難通過(guò)后天的修復(fù)來(lái)彌補(bǔ)。除非徹底改造成編譯型靜態(tài)語(yǔ)言。。而像ES6那樣的小修小補(bǔ),是根本無(wú)法從本質(zhì)上改良JS的。。也許要等到ES10以上的版本,JS才能真正勝任高性能開發(fā)
而C#本身性能就很棒,問(wèn)題在于前端平臺(tái)的性能不足,目前的H5性能依然無(wú)法滿足C#的需要,而WEBGL普及度偏低。。顯然C#要實(shí)現(xiàn)“無(wú)所不能”,比JS容易的多。只要前端平臺(tái)的性能再稍加提升,也許僅僅需要HTML5.2或HTML5.3,或者各大瀏覽器都默認(rèn)開啟WEBGL,這一切就可能成為現(xiàn)實(shí)。
歸根結(jié)底,JS也許有一天可以"無(wú)所不能",但永遠(yuǎn)無(wú)法涉及高性能的應(yīng)用,而到時(shí)候“無(wú)所不能”的語(yǔ)言,也不僅僅只有JS一種....未來(lái)的WEB前端,將是由引擎直接生成webassembly,并不是靠敲JS實(shí)現(xiàn)的。
面向?qū)ο蠓浅V匾?,非常重要,非常重要,重要的事情說(shuō)三遍。。。
但現(xiàn)在JS里的所謂面向?qū)ο蟛恢匾?。。。。因?yàn)镴S根本不是面向?qū)ο蟮恼Z(yǔ)言。。。所以那所謂的“面向?qū)ο蟆保鋵?shí)是假的。。所有不面向?qū)ο蟮恼Z(yǔ)言,都是垃圾語(yǔ)言。。。沒(méi)錯(cuò),JS就是個(gè)垃圾語(yǔ)言。。。所以面向?qū)ο蟮牟糠郑阈枰繉W(xué)習(xí)其他語(yǔ)言來(lái)實(shí)現(xiàn)。。。比如JAVA,C#,C++都可以。。。。動(dòng)態(tài)語(yǔ)言的面向?qū)ο笕羌俚?,比如PYTHON和RUBY。。。。一定要學(xué)一門強(qiáng)類型語(yǔ)言,你才能真正學(xué)會(huì)面向?qū)ο?。?!?/p>
JS也正在計(jì)劃改版。。。且一直在進(jìn)行中。。。在不久的將來(lái),JS會(huì)被改造成一種強(qiáng)類型,面向?qū)ο蟮恼Z(yǔ)言。。。?;咀兂梢粋€(gè)山寨版的C#。。。當(dāng)然也有人說(shuō)像山寨JAVA。。。但客觀講,確實(shí)更像山寨C#。。。這被稱為ECMAScript 6或者JavaScript2.0
到時(shí)候的面向?qū)ο?,就?huì)變得非常重要,非常重要,非常重要。。。按照今天的標(biāo)準(zhǔn)。。不理解面向?qū)ο螅静荒芩銜?huì)編程。。。。。
從學(xué)習(xí)時(shí)間,和內(nèi)容廣度來(lái)看。。。。一個(gè)完全零基礎(chǔ)的小白,學(xué)會(huì)面向過(guò)程那點(diǎn)東西,假如需要一個(gè)月。。那學(xué)面向?qū)ο蟮牟糠?,至少需?年。。。十倍以上的差距。。。用熟面向?qū)ο?,則至少需要2-3年。。。所編寫出的程序,也會(huì)從KB級(jí)別,上升到MB級(jí)別。。。。
javaScript 為我們專門提供了一些函數(shù)方法來(lái)幫我們更優(yōu)雅的處理函數(shù)內(nèi)部 this 的指向問(wèn)題,常用的有 bind()、call()、apply() 三種方法
call() 方法調(diào)用一個(gè)對(duì)象。簡(jiǎn)單理解為調(diào)用函數(shù)的方式,但是它可以改變函數(shù)的 this 指向。
fun.call(thisArg, arg1, arg2, ...)
thisArg:在 fun 函數(shù)運(yùn)行時(shí)指定的 this 值
arg1,arg2:傳遞的其他參數(shù)
返回值就是函數(shù)的返回值,因?yàn)樗褪钦{(diào)用函數(shù)
因此當(dāng)我們想改變 this 指向,同時(shí)想調(diào)用這個(gè)函數(shù)的時(shí)候,可以使用 call,比如繼承
fun.apply(thisArg, [argsArray])
thisArg:在fun函數(shù)運(yùn)行時(shí)指定的 this 值
argsArray:傳遞的值,必須包含在數(shù)組里面
apply 主要跟數(shù)組有關(guān)系,比如使用 Math.max() 求數(shù)組的最大值
bind() 方法不會(huì)調(diào)用函數(shù)。但是能改變函數(shù)內(nèi)部this 指向
fun.bind(thisArg, arg1, arg2, ...)
thisArg:在 fun 函數(shù)運(yùn)行時(shí)指定的 this 值
arg1,arg2:傳遞的其他參數(shù)
返回由指定的 this 值和初始化參數(shù)改造的原函數(shù)拷貝
因此當(dāng)我們只是想改變 this 指向,并且不想調(diào)用這個(gè)函數(shù)的時(shí)候,可以使用 bind
相同點(diǎn):
都可以改變函數(shù)內(nèi)部的this指向.
區(qū)別點(diǎn):
1.call 和 apply 會(huì)調(diào)用函數(shù), 并且改變函數(shù)內(nèi)部this指向.
2.call 和 apply 傳遞的參數(shù)不一樣, call 傳遞參數(shù) aru1, aru2..形式 apply 必須數(shù)組形式[arg]
3.bind 不會(huì)調(diào)用函數(shù), 可以改變函數(shù)內(nèi)部this指向.
主要應(yīng)用場(chǎng)景:
1.call 經(jīng)常做繼承.
2.apply 經(jīng)常跟數(shù)組有關(guān)系. 比如借助于數(shù)學(xué)對(duì)象實(shí)現(xiàn)數(shù)組最大值最小值
3.bind 不調(diào)用函數(shù),但是還想改變this指向. 比如改變定時(shí)器內(nèi)部的this指向。
Javascript是最流行的腳本語(yǔ)言之一,也是Web的主要技術(shù)之一,這樣的優(yōu)勢(shì)導(dǎo)致它在嵌入式領(lǐng)域也有一定的作用
飛利浦出過(guò)一套 Pronto 智能中控設(shè)備系列,可以通過(guò)編寫代碼自定義界面和邏輯,控制繼電器、串口、紅外等設(shè)備,適用于家庭和辦公室自動(dòng)化控制。
控
制設(shè)備分為中控主機(jī)和控制板(即帶彩色觸摸屏的遙控器),本身是嵌入式系統(tǒng),但控制板中存儲(chǔ)的自定義邏輯代碼就是使用改造過(guò)的Javascript腳本規(guī)
范。為家庭或安裝好被控制的設(shè)備以后,只需通過(guò)必要連線或局域網(wǎng)將中控主機(jī)與被控設(shè)備連通,再將電腦上編寫好的腳本和配置文件通過(guò)USB口傳到控制板上,
就可以使用了。電腦端編輯是半圖形化半文本式的界面(類似Visual Studio和 Xcode
的使用),代碼編寫又不難,因此上手非常容易。編寫界面和最終的控制板使用體驗(yàn)都很好。
“ProntoScript
是一種基于 JavaScript 的軟件工具,它使安裝人員能夠創(chuàng)建動(dòng)態(tài)的雙向用戶界面,利用全圖形的靈活性對(duì) RS232 或 IP
進(jìn)行系統(tǒng)控制。該工具集成在 ProntoEdit Professional 軟件中。與 Pronto 合作伙伴預(yù)建的 ProntoScript
模塊可通過(guò)網(wǎng)站獲得。對(duì)于典型安裝,您可以選擇使用標(biāo)準(zhǔn)安裝參考文件,重新分配各個(gè)組件即可。更高級(jí)的 JavaScript
編程人員能夠創(chuàng)建他們自己的 ProntoScript 模塊,以便進(jìn)行全面的系統(tǒng)操作和反饋?!?/p>
可惜不知為何沒(méi)有后續(xù)研發(fā)新產(chǎn)品。
javascript onmouseover和onmouseout事件
onmouseover和onmouseout鼠標(biāo)移入移出時(shí)觸發(fā)的事件:
onmouseover 用戶鼠標(biāo)移入元素時(shí)觸發(fā)的事件。并執(zhí)行onmouseover調(diào)用的函數(shù)。
onmouseout 用戶鼠標(biāo)移開元素時(shí)觸發(fā)的事件。并執(zhí)行onmouseout調(diào)用的函數(shù)。
onmouseover和onmouseout 這兩個(gè)事件在javascript中較常用。
下面通過(guò)一個(gè)示例更深入了解這兩個(gè)事件的使用:
示例:鼠標(biāo)移入時(shí),改變字體的背景色,移出時(shí),還原默認(rèn)的背景色。
!DOCTYPE html
html
head
meta charset="utf-8" /
title鼠標(biāo)移入時(shí),改變字體的背景色,移出時(shí),還原默認(rèn)的背景色。/title
style
.xuexi{width:200px;height:120px;background:#abcdef;border:1px solid green;}
/style
script
function aixuexi(){
var woaixuexi=document.getElementById("woaixuexi");
woaixuexi.style.background="yellowgreen";
}
function xuexi(){
var xuexi=document.getElementById("woaixuexi");
xuexi.style.background="#abcdef";
}
/script
/head
body
div id="woaixuexi" onmouseover="aixuexi();" onmouseout="xuexi();" class="xuexi"/div
/body
/html