1. 程式人生 > >函式定義,宣告提前及相關題目

函式定義,宣告提前及相關題目

函式使用function關鍵字來定義, 它可以用在函式定義表示式或者函式宣告語句。 兩種形式中, 函式定義都從function關鍵字開始, 其後跟隨這些組成部分:

  • 函式名稱識別符號
  • 一對圓括號。 其中包含由0個或多個逗號隔開的識別符號組成的列表。 這些識別符號是函式的引數名稱, 它們就像函式體中的區域性變數一樣。
  • 一對花括號。 其中包含0條或多條JavaScript語句。 這些語句構成函式體: 一旦呼叫函式,就會執行這些語句。
函式定義表示式

函式定義表示式也可以稱作“函式直接量”。 對函式定義表示式來說, 函式名稱是可選的, 這個名字如果存在, 該名字只存在於函式體中, 並指代該函式物件本身。例:

 var fn = function(x) {return x * x;};
 var f = function f(x) {return x * x;};
函式宣告語句

函式名稱是函式宣告語句必須的部分, 一條函式宣告語句實際上聲明瞭一個變數, 變數指向函式物件。

 function fn(x) {return x * x;}

宣告提前

函式宣告語句會被提前到指令碼或函式的頂部。 使用var的時候,只有變數宣告提前, 變數的初始化程式碼仍然在原來的位置。 然而使用函式宣告語句, 函式名稱和函式體均提前。 也就是說, 可以在宣告一個函式之前呼叫它。

以表示式定義的函式就另當別論了, 要使用一個以表示式方式定義的函式, 必須把它賦值給一個變數, 然而就像上面說的, var 變數宣告雖然可以提前, 但變數賦值是不會提前的, 所以, 以表示式方式定義的函式在定義之前無法呼叫。

return語句

多數函式包含一條return語句。 return語句導致函式停止執行, 並返回它的表示式(如果有的話)的值給呼叫者。如果return語句沒有一個與之相關的表示式, 則返回undefined值。 如果一個函式不包含return語句, 那它執行函式體中每條語句, 並返回undefined給呼叫者。

函式巢狀

函式宣告語句並非真正的語句,ECMAScript規範只允許它們作為頂級語句。 它們可以出現在全域性程式碼, 或者巢狀在其他函式中, 但它們不能出現在迴圈、條件判斷, 或者try/catch/finally以及width語句中。

函式定義表示式可以出現在JavaScript程式碼的任何地方。

相關題目

題1:

 alert(a in window);
 var a = 10;

題2:

 function f(){
     alert(1);
 }
 f();
 function f(){
     alert(10);
 }
 f();

題3:

 alert(a);
 var a = 1;
 function a() {}
 alert(a);

題4:

 var a = 1;
 var b = function a(){
     alert(a);
 };
 alert(a);
 b();

相關推薦

函式定義宣告提前相關題目

函式使用function關鍵字來定義, 它可以用在函式定義表示式或者函式宣告語句。 兩種形式中, 函式定義都從function關鍵字開始, 其後跟隨這些組成部分: 函式名稱識別符號 一對圓括號。 其中包含由0個或多個逗號隔開的識別符號組成的列表。 這些識別符號是函式的引數名稱, 它們就像函式體中的

一道考察類的純虛擬函式定義靜態變數等C++題目

程式原題如下: #pragma  once class mml { private:static unsigned int x; public:mml(){  x++;  }mml(static unsigned int&){  x++; &

對動態規劃算法的理解相關題目分析

自底向上 esp 它的 解包 宋體 成了 -h temp ace 1、對動態規劃算法的理解 (1)基本思想: 動態規劃算法的基本思想與分治法類似:將待求解的問題分解成若幹個子問題,先求解子問題,然後從這些子問題的解中得到原問題的解。但是,與分治法不同的是,為了避免重復多次計

Qt開發 槽函式定義以及槽函式二次響應多次響應問題

在Qt開發裡面,有一種傳說中的訊號槽機制,有好幾種實現的方法。 為了實現ui和邏輯的解耦,Qt開發可以利用Qt designer來做UI,同時也有一些UI和邏輯函式之間的通訊建立。 例如,要實現button的相應,有下面幾種方法:

Linux網路配置ssh服務相關命令

一.ip地址 1.檢視當前計算機ip地址: ip addr show(紅帽7以後版本推薦) ifconfig 2.更改虛擬機器ip: 輸入nm-connection-editor 點選System eth0,然後點選Delete。之後add。 點選Save。

Python(六)語法 函式定義函式引數

函式 Python內建了很多有用的函式,我們可以直接呼叫。 要呼叫一個函式,需要知道函式的名稱和引數,比如求絕對值的函式abs,只有一個引數。可以直接從Python的官方網站檢視文件: http://docs.python.org/3/library/functions.html#abs

關於變數定義宣告巨集定義

對於C/C++語言,如果向變數共享,則可以在一個原始檔A.cpp中定義變數,然後B.cpp想要使用的時候,加上extern 宣告即可。如果是多檔案共享,則可以在某個原始檔中定義,在某個標頭檔案中用extern宣告,然後其他想要使用變數的原始檔只要包含這個標頭檔案即可。 注

二分圖的簡單介紹相關題目

二分圖:二分圖是這樣一個圖,它的頂點可以分類兩個集合X和Y,所有的邊關聯的兩個頂點恰好一個屬於集合X,另一個屬於集合Y。 二分圖匹配:給定一個二分圖G,在G的一個子圖M中,M的邊集中的任意兩條邊都不依附於同一個頂點,則稱M是一個匹配。 最大匹配:圖中包含邊數最多的匹

error C2533: “WSProtocol::{ctor}”: 建構函式不能有返回型別 error C2264: “WSProtocol::WSProtocol”: 函式定義宣告中有錯誤

今天遇到一個特別奇葩的BUG,記錄一下。 2>d:\work\test\project\classes\network\wsprotocol.cpp(5): error C2533: “WSProtocol::{ctor}”: 建構函式不能有返回型別 2>d:\

C++中類內成員的定義宣告總結(靜態和非靜態成員)

近學習到C++ primer中關於類中靜態變數的部分,有一道課後題非常有意思。 題目是關於靜態變數在類中的初始化。 class example{ public: //static double rate=6.5; static const int size

Go語言筆記(一)-函式定義 packagefor迴圈變數大小寫

go函式定義: func (物件名 類名) 函式名(輸入陣列,值型別)(輸出變數,型別){ 函式體 } go中的package √ package是golang最基本的分發單位和工程管理中依賴關係的體現。 √ 每個golang原始碼檔案開頭都擁有一個package

HTML中的函式使用基礎(函式定義函式呼叫函式引數函式返回值巢狀函式遞迴函式變數作用域內建函式其他定義函式的方法)

HTML中的函式使用基礎 函式實質上是一個類似於單獨的邏輯單元的JavaScript程式碼,使用函式可以使程式碼更為簡潔,提供重用性,在JavaScript中,大約有95以上的程式碼是包含在函式中的,由此可見,函式在JavaScript中地位相當重要。 1、函式定義 在

php常量提前定義常量魔術常量基本數據類型

append mark 推薦 系統 article color 浮點數 scalar markdown 常量 定義: 形式一 // define("PI",常量值); define("PI",3.14); define("school","講理"

C++深度解析 物件的構造(中)物件定義宣告建構函式的過載(17)

C++深度解析 物件的構造(中)物件定義和宣告,建構函式的過載(17)       物件的構造由建構函式完成 函式名與類名相同,並且不能有任何返回值。       帶有引數的建構函式 意義:可以使得每

C++隨筆--1)函式外部變數的定義宣告問題2)程式的編譯問題

1) 函式,外部變數的定義和宣告問題     1)(2017-9-17日目前認為) 區域性變數無論定義時賦值與否 (int a 或  int a = 2),我們都可以大概認為此時 定義和 宣告是一回事,但通過反彙編我們可以知道如果沒有賦初值那麼其實只是

Java中StringStringBufferStringBuilder的區別相關常用函式

今天在刷演算法題的時候,題目上傳入的引數型別是StringBuffer,而需要返回的卻是String型別。其中我在寫的時候用了兩種不同的寫法產生的結果相同,但是速度卻不同。所以在網上查找了一些資料。下面做一個String,StringBuffer,StringBuilder的區別及常用函式介

二叉樹定義相關術語、節點數計算公式、程式碼實現(遍歷Java版)

二叉樹 定義:二叉樹是由n(n>=0)個節點組成的有限集,或者為空樹(n=0),或者為由一個根節點和兩個分別稱為左子樹和右子樹的的互不相交的二叉樹構成。 特點:(1).每個節點最多能有兩棵子樹,即左子樹和右子樹。              (2).左子樹和右子樹有次序

條件熵相對熵互資訊的相關定義公式推導

熵,條件熵,相對熵,互資訊的相關定義及公式推導 熵是隨機變數不確定性的度量,不確定性越大,熵值越大,若隨機變數退化成定值,熵為0,均勻分佈是最不確定的分佈。熵其實定義了一個函式(概率分佈函式)到一個值(資訊熵)的對映。熵的定義公式如下:       在經典熵的定義中,底數是2

2014/08/23——OJ相關站點打開速度非常慢訓練計劃login直接error!

erro art family -s ted host 問題: use isp 問題: 這個問題存在已經將近一個星期了。剛開始時發現OJ及相關的站點有時候打開有點慢,那時候也沒在意,後來時快時慢的越來越頻繁;今天早上直接一直都打開非常慢(無論什麽時候。這樣的情況);訓練

XAF 框架中定義參數動作(Action)輸入參數的控件可定義用於選擇組織項目

示例 app frame tro href express documents 定義 ron XAF 框架中,如何生成一個自定義參數動作(Action),輸入參數的控件可定義? 參考文檔:https://documentation.devexpress.com/eXpres