解析js中 的含義

2022-01-10 07:05:52 字數 1619 閱讀 3017

//例項

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...