1. 程式人生 > >Void運算子 與 undefined型別

Void運算子 與 undefined型別

void 運算子 對給定的表示式進行求值,然後返回 undefined。

何為求值,就是執行之後的表示式。

我們最常見的就是

<a href="javascript: void(0)"></a> //這段程式碼使點選這個a標籤什麼都不做

為什麼呢?

重點在於,不管表示式是什麼,它返回的始終都是一個undefined

順序也很重要,先計算表示式,然後再返回。

怎麼用?

1、在使用立即執行的函式表示式時,可以利用 void 運算子讓 JavaScript 引擎把一個函式識別成函式表示式而不是函式宣告(語句)。

void function iife() {
    var
bar = function () {}; var baz = function () {}; var foo = function () { bar(); baz(); }; var biz = function () {}; foo(); biz(); }();

普通立即執行的函式表示式都這樣(function fn(){})(),這樣引擎就會解析為一個表示式。
不使用()括起來的時候,引擎會將其解析為函式表示式,但是通過一個void運算子就可以避免這個問題。因為void 運算子後面本來就是一個表示式。

2、判斷時用作undefined的替身
之前a標籤的例子就是這樣使用的。
比如我們判斷一個變數是不是undefined的時候

options === void 0

為什麼要使用void 0來替換,不直接使用undefined來作判斷?

1、因為undefined在全域性變數中是一個屬性,本是隻讀屬性,但是在低版本IE的區域性作用域中是可以被重新被賦值的。因為這裡不安全所以使用void 來替換。
2、使用void來替換的時候,void後面必須要跟一個表示式,其實任意表達式都是可以的。既然都能滿足,我們只是想得到一個穩定的undefined,那為什麼不用最簡短的表示式呢,void 0就應運而生了。有些地方也寫作void(0);

相關推薦

Void運算子 undefined型別

void 運算子 對給定的表示式進行求值,然後返回 undefined。 何為求值,就是執行之後的表示式。 我們最常見的就是 <a href="javascript: void(0)"></a> //這段程式碼使點選這個a標籤什

Python運維開發:運算子資料型別(二)

python物件的相關術語: python程式中儲存的所有資料都是圍繞物件這個概念展開的: 程式中儲存的所有資料都是物件 每個物件都有一個身份、一個型別和一個值     例如,school='MaGe Linux'會以'MaGe Linux'建立一個字串物件,其身份是指向它在記憶體中所處位

Python學習(2)—— 運算子基本資料型別

運算子與基本資料型別 運算子有以下五種: 算數運算: 比較運算: 邏輯運算: 賦值運算: 成員運算: 以上圖片轉載來自:http://www.cnblogs.com/wupeiqi/ 。 基本資料型別認識 數字 (in

C語言資料型別運算子表示式

1.C語言的關鍵字 32個關鍵字: auto:自動宣告      break:跳出當前迴圈      case:開關語句分支               &nbs

Python開發第一篇 基礎篇(二)-------運算子基本資料型別

  對於python而言,一切事物都是物件,物件是基於類建立的,物件繼承了類的屬性,方法等特性       一.int       首先我們來檢視一下int包含了哪些函式          # python3

2018年12月20日;第二章變數資料型別運算子

本次課程所有的編譯程式下載地址: 連結:https://pan.baidu.com/s/1bVTquFh4yaOPZjQGQpn15A 提取碼:482t 複製這段內容後開啟百度網盤手機App,操作更方便哦 一、作業 1、商場為員工提供了基本工資、物價津貼及房租津貼。其中,物價津貼為基本工資的40%,房租

[C++] 過載運算子型別轉換(2)——函式呼叫運算子型別轉換運算子

1、這兩個應該是C++中比較高階的用法了。 一、函式呼叫運算子   1、過載函式呼叫運算子(),必須是成員函式,一個類可以定義多個不同版本的呼叫運算子,相互之間應該在引數數量或者型別上有所區別。   2、定義了呼叫運算子的類的物件稱作 函式物件;函式

python基礎之賦值、算術、複合賦值運算子常用的資料型別轉換

一**、算術運算子** 運算子為 +、加 -、減 、 乘 /、除 //、取整除 % 、取餘 /、冪 ** 二、 賦值運算子** = 賦值運算子 把等於號= 右邊的結果給左邊的變數 三、複合賦值運算子 += 加法賦值運算子 c += a 等效於 c = c + a -= 減法賦值運算子 c -

C++ Pirmer : 第十四章 : 過載運算子型別轉換之函式呼叫運算子標準庫的定義的函式物件

函式呼叫運算子 struct test { int operator()(int val) const { return (i > 0 ? i : -i); } }; 所謂的函式呼叫就是一個類過載了函式呼叫符,類在使用過載函式呼叫符時接受相應引數。這一過程就像是使用

基礎型別運算子表示式、流程控制、陣列集合

該系列的博文是自己學習Kotlin的學習筆記整理,以備忘與回顧。整理來源 - 瘋狂Koltin講義 Kotlin預備知識 1、kotlin 是一門強型別語言; 2、kotlin-stdlib.jar是Kotlin執行時環境 Kotlin可以自由呼叫Java的各種庫,因

Undefined型別Null型別

一、Undefined型別 Undefined 型別只有一個值,即特殊的undefined。在使用var 宣告變數,但沒有對其初始化時,這個變數的值就是undefined。 var box;alert(box); PS:我們沒有必要顯式的給一個變數賦值為undefined,

instanceof運算子引用變數的強制型別轉換

一、instanceof運算子 instanceof是Java語言中的一個二元運算子,它的作用是判斷一個引用型別的變數所指向的物件是否是一個類(或介面、抽象類、父類)的例項,即它左邊的物件是否是它右邊的類的例項該運算子返回boolean型別的資料。 常見的用法為:result=object inst

型別運算子表示式

1. 變數:裝資料的容器,資料變,容器不變   變數在使用前要先定義,基本格式:變數型別  變數名1,變數名2,……;   Ex:int a,b,c;int a=0,b,c=0;//初始化 2. 變數名:由字母(‘_’被看作字母)和數字組成的序列,但第一個字元必須是字母;大小寫字母是有區別

JavaScript windowundefined作為參數的作用

提高 節省空間 上線 關於 定義 內部 局部變量 image 輸出 1、原函數 輸出結果:1 如圖: 2、加window的參數 輸出結果:window對象 如圖: 註意:此時的window不是全局變量,而是局部變量 3、關於形參必須傳window麽?當然是不需要

JS中NullUndefined的區別

class undefine 為我 false 應該 一行代碼 等於 解釋 什麽 在JavaScript中存在這樣兩種原始類型:Null與Undefined。這兩種類型常常會使JavaScript的開發人員產生疑惑,在什麽時候是Null,什麽時候又是Undefined?Un

淺談JS中的!=、== 、!==、===的用法和區別 JS中NullUndefined的區別 讀取XML文件 獲取路徑的方式 C#中Cookie,Session,Application的用法區別? c#反射 抽象工廠

main 收集 data- 時間設置 oba ase pdo 簡單工廠模式 1.0 var num = 1; var str = ‘1‘; var test = 1; test == num //true 相同類型 相同值 te

Java的識別符號資料型別——有C++基礎的Java入門(二)

目錄 一、 識別符號 1、 概念 2、 識別符號的規範 (1) 類和介面 (2) 變數和方法 (3) 常量 二、 資料型別 1、 資料型別定義及預設值 2、資料型別自動轉換 (1) 總結 (2) 與C++的不同點 (3) 原理 3、 強制轉換

關於Java基礎的複習總結(二)運算子控制結構&程式設計師節的留影

大夢誰先覺,平生我自知。 每次醒來之後,說一句,感覺自己要去拯救蒼生,哈哈。 末尾放上程式設計師節的照片,帶人的就不放了,醜(* ̄rǒ ̄)。 1、變數的宣告和賦值 資料型別 變數名=值; 2、型別轉換 自動型別轉換 強制型別轉換 byte short int long float

ThinkPHP運算子 SQL運算子 對照表

TP運算子 SQL運算子 例子 實際查詢條件 eq = $map['id'] = array('eq',100); 等效於:$map['id'] = 100; neq != $map['id'] = array('neq',100); id != 100 gt > $map['id']

MySQLMyBatis型別的對應

一、常用資料型別和日期時間的對映表 MySQL JDBCType JavaType 備註 char CHAR String 定長字元 varchar