❶ javascript中函數是什麼意思
( function(){…} )()和( function (){…} () )是兩種javascript立即執行函數的常見寫法,要理解立即執行函數,需要先理解一些函數的基本概念。
函數聲明:
function fnName () {…};使用function關鍵字聲明一個函數,再指定一個函數名,叫函數聲明。
函數表達式:
var fnName = function () {…};使用function關鍵字聲明一個函數,但未給函數命名,最後將匿名函數賦予一個變數,叫函數表達式,這是最常見的函數表達式語法形式。
匿名函數:
function () {}; 使用function關鍵字聲明一個函數,但未給函數命名,所以叫匿名函數,匿名函數屬於函數表達式,匿名函數有很多作用,賦予一個變數則創建函數,賦予一個事件則成為事件處理程序或創建閉包等等。
函數聲明和函數表達式不同之處在於:
一、Javascript引擎在解析javascript代碼時會『函數聲明提升'(Function declaration Hoisting)當前執行環境(作用域)上的函數聲明。
而函數表達式必須等到Javascirtp引擎執行到它所在行時,才會從上而下一行一行地解析函數表達式。
二、函數表達式後面可以加括弧立即調用該函數,函數聲明不可以,只能以fnName()形式調用。
在function前面加!、+、 -甚至是逗號等到都可以起到函數定義後立即執行的效果,而()、!、+、-、=等運算符,都將函數聲明轉換成函數表達式。
消除了javascript引擎識別函數表達式和函數聲明的歧義,告訴javascript引擎這是一個函數表達式,不是函數聲明,可以在後面加括弧,並立即執行函數的代碼。
(1)js中什麼情況用函數擴展閱讀
作用:
javascript中沒用私有作用域的概念,如果在多人開發的項目上,你在全局或局部作用域中聲明了一些變數,可能會被其他人不小心用同名的變數給覆蓋掉。
根據javascript函數作用域鏈的特性,可以使用這種技術可以模仿一個私有作用域,用匿名函數作為一個「容器」。
「容器」內部可以訪問外部的變數,而外部環境不能訪問「容器」內部的變數,所以( function(){…} )()內部定義的變數不會和外部的變數發生沖突,俗稱「匿名包裹器」或「命名空間」。
JQuery使用的就是這種方法,將JQuery代碼包裹在( function (window,undefined){…jquery代碼…} (window)中,在全局作用域中調用JQuery代碼時,可以達到保護JQuery內部變數的作用。
❷ javascript中setInterval函數是什麼意思
是用來設置定時執行的,JavaScript中的setInterval用法如下:
setInterval動作的作用是在播放動畫的時,每隔一定時間就調用函數,方法或對象。可以使用本動作更新來自資料庫的變數或更新時間顯示。setInterval動作的語法格式如下:
setInterval(function,interval[,arg1,arg2,......argn])
setInterval(object,methodName,interval[,arg1,arg2,.....argn])
第一種格式是標准動作面板中setInterval函數的默認語法,第二種格式是在專家模式動作中使用的方法。
其中的參數function是一個函數名或者一個對匿名函數的引用。object參數指定從Object對象派生的對象。methodName制定 object參數中要調用的方法。
interval制定對function或methodName調用兩次之間的時間,單位是毫秒。後面的arg1等是可選的參數,用於制定傳遞給function或是methodName的參數。
setInterval它設置的時間間隔小於動畫幀速(如每秒10幀,相當於100毫秒),則按照盡可能接近interval的時間間隔調用函數。
而且必須使用updateAfterEvent動作來確保以足夠的頻率刷新屏幕。如果interval大於動畫幀速,則只用在每次播放頭進入某一幀是才調用,以減小每次刷新屏幕的影響。
下面的例子每隔1秒調用一次匿名函數。
setInterval(function(){trace("每隔1秒鍾我就會顯示一次")},1000);//這里的function(){}是沒有函數名的函數。成為匿名函數,後面的1000是時間間隔,單位是毫秒。
下面的例子為我們展示如何帶參數運行。
functionshow1(){
trace("每隔1秒顯示一次");
}
functionshow2(str){
trace(str);
}
setInterval(show1,1000);
setInterval(show2,2000,"每隔2秒我就會顯示一次");上面已經將函數的setInterval方法介紹了。
下面我們將介紹對象的setInterval方法。
首先,寫一個setInterval在動作中調用對象的方法的例子,該例子不需要傳遞參數。
myobj=new Object();//創建一個新的對象
myobj.interval=function){
trace("每隔1秒顯示一次");
}//創建對象的方法。
setInterval(myobj,"interval",1000);//設定時間間隔調用對象的方法。
接下來介紹如何傳遞參數。其實道理和函數的傳遞參數是一樣的。
myobj=new Object();
myobj.interval-function(str){
trace(str);
}
setInterval(myobj,"interval",2000," 每隔2秒我就會顯示一次");
注意。要調用為對象定義的方法時,必須在專家模式中使用第二種語法格式。
這樣子的話呢,我們來作一個動態顯示時間的畫面。可以用下面的代碼實現。
setInterval(show,1000);
functionshow(){
time=newDate();
hour=time.getHours();
minu=time.getMinutes();
sec=time.get.Seconds();
datetime=hour+":"+minu+":"+sec;
}//這里的datetime是一個動態文本框的變數名字。
這樣子呢,setInterval這個方法大家應該學的很好了。現在呢,我們學習clearInterval.
clearInterval動作的作用是清楚對setInterval函數的調用,它的語法格式如下clearInterval(intervalid);intervalid是調用setInterval函數後返回的對象。
下面舉一個簡單的例子。
functionshow(){
trace("每隔一秒顯示一次");
}
varsh;
sh=setInterval(show,1000);
clearInterval(sh);
❸ 在js中function()是什麼意思一般是什麼情況下用新手求大神詳細解釋謝謝!
function()是JS函數,類似於java中的方法,C中的函數
<input type = "button" onclick="formSubmit()">按鈕<!-- 一個按鈕-->
<script type="text/javascript">
function formSubmit(){
alert("你好");
}
</script>
以上的含義就是在點擊這個按鈕的時候,執行formSubmit()這個函數,完成一個窗口的彈出,內容是你好
❹ JS中函數的調用、引用有什麼區別
調用是 invoke,引用是 reference。
題主知道值類型和引用類型的區別嗎?如果還不清楚,那麼建議把書從頭讀。JS 中的函數是一種引用類型。
調用就是執行了這個函數。
❺ javascript中什麼情況下函數調用event對象,但有時候function ()括弧中的event可以省略
event代表事件的狀態,例如觸發event對象的元素、滑鼠的位置及狀態、按下的鍵等等。
event對象只在事件發專生的屬過程中才有效。
至於event這個參數傳不傳,是為了兼容瀏覽器。
在IE下,window.event是有效的,所以可以不用傳event參數,Firefox下沒有window.event這個對象,event只會通過參數傳遞進來。
❻ vue.js中,什麼時候用methods什麼時候用computed什麼時候用watch
1、methods是個方法,比如你點擊事件要執行一個方法,這時候就用methods,
2、computed是計算屬性,實時響應的,比如你要根據data里一個值隨時變化做出一些處理,就用computed。
3、舉一個例子幫助理解:
1)<div id="root">;
2) </div>;
3) <script> var vm = new Vue({ el: '#root', data:data, methods:{
4)method_now(){ return Date.now();} },
5)computed:{
6)computed_now: function () { return Date.now();}} })
7)</script>
4、控制台訪問:
1)$vm0.computed_now;
2)1491741921719$vm0.computed_now;
3)1491741921719$vm0.computed_now;
4)1491741921719$vm0.computed_now;
5)1491741921719$vm0.method_now;
6)()1491741949941$vm0.method_now;
7)()1491741950734$vm0.method_now;
8)()1491741951445$vm0.method_now;
9)()1491741952117。
5、methods是方法和原生js沒區別,大多是需要我們主動調用(比如事件)。
6、computed是get 這個get有點特殊,只要觸發所依賴數據的set會自動觸發get。我們只關心get的return set由系統觸發或者依賴的數據觸發,官方說依賴緩存只是為了理解。其實Date.now()這種只是系統不能觸發set,不能觸發set get當然不會通知觀察者。
7、watch 是set 由data觸發,我們可以在set里進行自己的條件封裝。