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 window與undefined作為參數的作用
提高 節省空間 上線 關於 定義 內部 局部變量 image 輸出 1、原函數 輸出結果:1 如圖: 2、加window的參數 輸出結果:window對象 如圖: 註意:此時的window不是全局變量,而是局部變量 3、關於形參必須傳window麽?當然是不需要
JS中Null與Undefined的區別
class undefine 為我 false 應該 一行代碼 等於 解釋 什麽 在JavaScript中存在這樣兩種原始類型:Null與Undefined。這兩種類型常常會使JavaScript的開發人員產生疑惑,在什麽時候是Null,什麽時候又是Undefined?Un
淺談JS中的!=、== 、!==、===的用法和區別 JS中Null與Undefined的區別 讀取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']
MySQL與MyBatis型別的對應
一、常用資料型別和日期時間的對映表 MySQL JDBCType JavaType 備註 char CHAR String 定長字元 varchar