//例項var tensquared=(function
(x) (10));
首先我們來拆解這一行語句;一、 var tensquared = xx; 這是賦值語句;
二、function (x) 這是乙個匿名函式;所謂的匿名函式是指它沒有自己的名字,既不是這樣:
function name(){};
擁有乙個函式名,也不像這樣:
var name = function(){};
將函式賦給乙個變數位址用於日後的呼叫;
為什麼會有這樣的函式呢,因為我們有時候有用到一些情況,我個只是臨時地一次性地使用乙個函式,用過了這個函式也就再沒用了,那麼這個時候就用到了匿名函式(當然,並不一定說只有一次性的才會用到匿名函式,還有其它的情況,不一一舉例了。)
三、函式() 這樣的語句我們都知道是讓乙個函式執行,而括號中的值表示傳值,比如:
function name(arg);
name('yes');
那麼,程式執行到name();這個語句的時候,會將'yes'這個字串傳遞到函式name中去,並執行name函式;
四、那麼,這個函式我們再來理解一下:
function(x)是乙個函式,然後我們直接在它後面加上個括號,是不是表示直接執行這個匿名函式呢:
function(x) (10)
這一步與下面的方法是一樣的:
function name(x)
name(10);
那麼再加上賦值:
var tensquared = function(x) (10);
是不是與下面這一系列的**起到的效果一樣呢:
function name(x)
var tensquared = name(x);
是不過兩行的這種實現方式之後,那個函式我們以後還可以通過name(值);這樣的方式再一次或者多次地去呼叫它,因為它有名,我們能用這個方法呼叫到它;
而var tensquared=function(x) (10)這樣的方式,是當時就執行了,然後將執行的結果賦值給了它前面的變數tensquared,我們以後想再呼叫那個return x*x所在的函式,卻沒辦法了,因為它沒名字,執行後就找不到了;
五、最後說說外面的括號,這個括號其實是可有可無的,而且這個括號的用法與人們常用的另一種用法有所偏差,因為括號括在最外圍,已經失去了它的意義,其實應該是這樣的:
var tensquared=(function(x) )(10);
只將匿名函式本體給括了起來,因為我們有時候這個function很長,而且說不定有多少行,那麼加乙個括號告訴程式,這是乙個完整的整體,其實這一步就算這樣用,也是可有可無的。
六、再說說這種用法的意義:
像這種用法,大多數時候就是用來獲取到乙個值,而這個值卻是需要一系列的計算後才能得到的,而這個計算的過程,我們只需用到一次,不需要再用第二次了,這時候,這種語句結構就有用了:
例如我們獲取使用者在使用的是什麼品牌的瀏覽器:
var browser = function()();
後面我們再想知道使用者的瀏覽器品牌,只要呼叫變數browser這個變數,看看它裡面的字串是什麼,就知道了。
是不是很有意思
和很有實用價值的一種語句結構呢?
解析js中 的含義
例項 var tensquared function x 10 首先我們來拆解這一行語句 一 var tensquared xx 這是賦值語句 二 function x 這是乙個匿名函式 所謂的匿名函式是指它沒有自己的名字,既不是這樣 function name 擁有乙個函式名,也不像這樣 var ...
js中 的用法和含義
前言 在專案中我們往往要做很多很多的空值判斷進行容錯處理,往往伴隨著三目運算 與或 if else來使用,不僅要寫很多冗餘的 後期維護起來也是滿屏的if else可以說是非常的痛苦了.今天分享幾個處理空值簡單的方法,希望可以解決大家的一些問題.如果乙個值為null 或者是undefined.那麼我們...
js中的特殊符號含義
一 js中的 var o var test o.flag console.log test true 二 math.random 1 24 得到乙個0 到 16777216之間的值 這個構造的其實是乙個10進製的顏色值 隨機生成數值 轉換成16進製制就是,像白色ffffff,藍色0000ff等等。1...