1. 程式人生 > >js拾遺: 函式字面量

js拾遺: 函式字面量

函式字面量由4部分組成。 第一部分,關鍵詞 function 第二部分,函式名,但是可有可無。 第三部分,包含在括號內的引數,當然引數也是可有可無的,括號不能少。 第四部分,是一組包裹在大括號的語句塊,也就是函式要執行的具體程式碼,當然不寫程式碼也沒問題,{} 是必須要的。 乍一看,這個不就是函式的定義麼,怎麼說是函式字面量呢? 其實,之前我們就說了一個限定條件,函式表示式。 當函式做為表示式的時候,可以分成這四部分。 第二部分,函式名,但是可有可無。 如果是函式宣告,少了函式名會報錯的。 所以說函式表示式才是這裡所說的函式字面量。 例如 文字 function () {} 這個寫法符合上面4條,但卻不是表示式,執行會報語法錯誤。 只有當作表示式的時候才能正常執行。 文字 (function () {}); var a = function () {}; var obj = {fn: function () {}}; 這樣寫都沒問題。。 再來看個 文字 var fn = function test() {}; 這個是函式宣告嗎? 這個也是函式字面量,test 是這個函式的名字,但是在這裡只對函式體內可見,外部是不可呼叫的。 來看個測試 (點選右側 執行 即可檢視結果) 文字執行 var fn = function test() { console.log(test); }; console.log(fn); fn(); console.log(test); // 報 test 未定義 這裡的函式名可用於內部使用,比如一些遞迴呼叫的時候,這樣會很方便。 可能有人會說為什麼不用 arguments.callee 呢。 很多地方都可以看到說 arguments 是把雙刃劍,是效能殺手,能避免就儘量避免使用。 加一個函式名,呼叫方便,效能極致,對專案壓縮也有好處,何樂而不為呢?

相關推薦

js拾遺: 函式字面

函式字面量由4部分組成。 第一部分,關鍵詞 function 第二部分,函式名,但是可有可無。 第三部分,包含在括號內的引數,當然引數也是可有可無的,括號不能少。 第四部分,是一組包裹在大括號的語句塊,也就是函式要執行的具體程式碼,當然不寫程式碼也沒問題,{} 是必

Js函式字面和Function()建構函式的區別||匿名函式

一、什麼是匿名函式? 在Javascript定義一個函式一般有如下三種方式: 函式關鍵字(function)語句: function fn(x){ alert(x); } 函式字面量(Function Literals): var fn = funct

js 對象字面

調用 ngs color date 引號 clas iter delet add 對象字面量的輸出方式以及定義好處 1.對象字面量的輸出方式有兩種:傳統的‘.‘ 例如:box.name 以及數組方式,只不過用數組方式輸出時,方括號裏面要用引號括起來 例如:box[‘na

從壹開始前後端分離 [ Vue2.0+.NET Core2.1] 十五 ║Vue基礎:JS面向物件&字面& this字

緣起 書接上文《從壹開始前後端分離 [ Vue2.0+.NET Core2.1] 十四 ║ VUE 計劃書 & 我的前後端開發簡史》,昨天咱們說到了以我的經歷說明的web開發經歷的幾個階段,而且也說到了Vue系列需要講到的知識點,今天就正式開始Code,當然今天的程式碼都特別簡單,希望大家慢慢的

函式函式字面

### 函式字面量#### what 綜合尋找文件,找到了4.2. Function Literal,文章中表達的意思是: 函式字面量由4部分組成* 關鍵詞 function* 函式名,可有可無* 包含在括號內的引數,當然引數也是可有可無的,括號不能少。* 是一組包裹在大括

JS乾貨--物件字面

Why? 一把在JS中宣告物件,大家多會這麼寫var a = {}; 很少有人這麼寫:var a = new Object(); 這是為什麼呢? 1、首先{}這叫做物件字面量,new Object()則是使用構造器函式。 2、明顯的物件

js基礎-物件字面(json存在的物件)

<!DOCTYPE html> <html> <head> <m

物件字面宣告和建構函式宣告的比較

去某家面試的時候,在筆試的時候,看到了這個問題,回來研究一下。 JS 中有很多種物件的宣告方式,一般我用到的也就是這兩種,通過字面量來宣告物件和通過建構函式來宣告物件。 用字面量來宣告物件 我們可以直接

JS語言精粹學習筆記--物件字面

物件 JS的簡單資料型別包括:數字、字串、布林值(true/false)、null值和undefined,其他所有的值都是物件。數字、字串、布林值貌似物件,因為他們擁有方法,但他們是不可變的。JS中的物件是可變的鍵控集合(keyed collection)。在JS中,陣列、

《JavaScript 模式》讀書筆記(3)— 字面和建構函式1

  新的篇章開始了,本章開始,所有的內容都是十分有價值和意義的。本章主要的內容包括物件字面量、建構函式、陣列字面量、正則字面量、基本值型別字面量以及JSON等。在大家的工作和實際應用中也有一定的指導意義。   一、物件字面量   我們直接來先看一下程式碼: // 開始時定義一個空物件 var do

JSON運用——PHP中使用json數據格式定義字面對象的方法

data tro 數據格式 json格式 使用 iat 進行 對象 人的 目前,在PHP中是不支持字面量命名法。 前端的小夥伴都知道,在JS中用字面量定義一個對象的方法可以如下: var o = { ‘name‘ : ‘Tom‘ , ‘url‘ : ‘www.baidu.

3、多用字面語法,少用與之等價的方法

keys obj ble alloc ive 3.1 per 無法 bsp 1、字面字符串 摒棄: NSString *someString = [[NSString alloc] initWithString: @"Effective Objective-C 2.0"];

js獲取freemarker變的值

test type doc servle ret method read 需要 mod 後臺數據 @RequestMapping(value="/suit_item", method = RequestMethod.GET) public String getSu

防止js全局變汙染方法總結

本想 study jquer 當前頁 解釋器 開發 href 防止 http javaScript 可以隨意定義保存所有應用資源的全局變量。但全局變量可以削弱程序靈活性,增大了模塊之間的耦合性。在多人協作時,如果定義過多的全局變量 有可能造成全局變量沖突,也就是全局變量汙染

ES6模板字面

用法 延續 有一個 return 表達式 想要 ace 一行 尋找 前面的話   JS 的字符串相對其他語言來說功能總是有限的,事實上,ES5中一直缺乏許多特性,如多行字符串、字符串格式化、HTML轉義等。ES6通過模板字面量的方式進行了填補,模板字面量試著跳出JS已有的

在JavaScript裏的“對象字面”是什麽意思?

ray 如何 變量名 scrip fun string object ring 5% 字面量表示如何表達這個值,一般除去表達式,給變量賦值時,等號右邊都可以認為是字面量。字面量分為字符串字面量(string literal )、數組字面量(array literal)和對象

iOS 中的特殊字面表示方法

text 標量 表示 寫法 .text unicode 引號 十六進制 回車符 轉義字符\0(空字符)、\\(反斜線)、\t(水平制表符)、\n(換行符)、\r(回車符)、\"(雙引號)、\‘(單引號)。單字節 Unicode 標量,寫成\xnn,其中nn為兩位十六進制

JS中的變和輸入輸出

點擊 初始 能夠 rom 駝峰 規範 小寫字母 截取 分離 一、使用JS的三種方式 1、在HTML標簽中,直接內嵌JS(並不提倡使用) <button onclick="alert(‘點你咋地‘)">點我</button> >>

Json——對象的字面表現形式

表現 per ole ast hello 方法 jason scrip last JSON是JS的字面量的特殊表現形式,它使用文本表示 JS 對象信息,本質是字符串 var obj = {a: ‘Hello‘, b: ‘World‘}; //這是一個對象,註意鍵名也是可以

字面創建對象桌子,有屬性:長、寬、高、面積、體積 有方法:求面積、求體積

屬性 func function table 方法 inf document AR return <script> var table = { length: 60, width: 40, height