一、一元運算子
1、delete 運算子:刪除先前定義的物件屬性或方法的參考。例如:
var o=new Object; o.name="superman"; alert(o.name); //输出 "superman" delete o.name; alert(o.name); //输出 "undefined"
刪除了name屬性,將其設定為undefined(即建立的未初始化的變數的值)。 delete不能刪除開發者未定義(即ECMAScript定義)的屬性和方法。
例如,下面的程式碼將發生錯誤:delete o.toString();
2、void 運算子: 對任何值都回傳undefined。此運算符通常用於避免輸出不應該輸出的值。
例如:在HTML頁面中Click Me
點擊該鏈接,網頁中的鏈接消失,顯示"[object]" (IE中,火狐中顯示"[object Window]",Google中還是該連結)。因為window.open()方法傳回了對新開啟的視窗的參考。然後該物件被轉換成要顯示的字串。要避免這種結果,可以用void 運算子呼叫window.open() 函數:
<a href="javascript:void(window.open('about:blank'))">Click Me</a>
這會使window.open()呼叫傳回undefined,它不是有效值,不會顯示在瀏覽器視窗中。
3、前增量/前減量運算子:與C中的用法相同。運算都發生在計算表達式之前。如:++i; --i 。
4、後增量/後減量運算子:後綴式運算子是在計算過包含它們的表達式後才進行增量或減量運算子。如:i++; i-- 。
5、一元加法和一元減法
一元加法本質上對數字沒有任何影響: var iNum=25; iNum=+iNum; alert(iNum); //輸出25
一元加法當運算子對字串進行操作時,它計算字串的方式與parseInt() 相似,主要的不同是對以"0x"開頭的字串(表示十六進位數字),一元運算子才能將它轉換成十進制的值。因此,用一元加法轉換"010",得到的總是10,而"0xB"將轉換成11。
var sNum="25"; alert(typeof sNum); //輸出"string"
var iNum=+sNum; alert(typeof iNum); //輸出"number"
一元減法就是對數值求負,與一元加法運算子相似,一元減法運算子也會將字串轉換成近似的數字,此外還會對該值求負。
var sNum = "25"; alert(typeof sNum); //輸出"string"
var iNum = -sNum; alert(iNum); //輸出"-25"
alert(typeof iNum ); //輸出"number"
二、位元運算子:與二進位相關的一系列運算子
位元運算子NOT由否定編號(~)表示。
位元運算子AND由和號(&)表示。
位元運算子OR由符號(|)表示。
位元運算子XOR由符號(^)表示。
左移運算由兩個小於號表示(有符號右移運算子由兩個大於號(>>)表示。
無符號右移由三個大於號(>>>)表示。
三、Boolean運算子
Boolean運算子有三種,即NOT、AND 和 OR。
1、邏輯NOT,用感嘆號(!)表示。此運算符通常用於控制循環。與邏輯OR和邏輯AND運算子不同的是,邏輯NOT運算子回傳的一定是Boolean值。邏輯NOT運算子的行為如下:
如果運算數是對象,回傳false。
如果運算數是數字0,則回傳true。
如果運算數是0意外的任何數字,回傳false。
如果運算數是null,則回傳true。
如果運算數是NaN,則回傳true。
如果運算數是undefined,發生錯誤。
例: var b = true;
while(!b){ … }
2、邏輯 AND 運算符,以雙和號(&&)表示。結果為 true 時只有一種情況:true && true = true;
邏輯AND運算的運算數可以是任何類型的,不只Boolean值。如果某個運算數不是原始的Boolean型值,邏輯AND運算不一定會傳回Boolean值:
如果一個運算數是對象,另一個是Boolean值,則傳回該物件。
如果兩個運算數都是對象,則傳回第二個物件。
如果某個運算數是null,回傳null。
如果某個運算數是NaN,則回傳NaN。
如果某個運算數是undefined,發生錯誤。
如果第一個運算數是false,那麼無論第二個運算數的值是什麼,結果都不可能為true。
3、邏輯OR運算符,用雙豎線(||)表示。結果為false的情況只有一種:false || false=false; 其他情況均為true。
與邏輯AND運算子相似,如果某個運算數不是Boolean值,邏輯OR運算並不一定傳回Boolean值:
如果一個運算數是對象,另一個是Boolean值,傳回該物件。
如果兩個運算數都是對象,則傳回第一個對象。
如果某個運算數是null,回傳null。
如果某個運算數是NaN,則回傳NaN。
如果某個運算數是undefined,發生錯誤。
邏輯OR也是簡單運算,對於邏輯OR運算子來說,如果第一個運算數值為true,就不再計算第二個運算數。
四、乘性運算子
1、乘法運算符,用星號(*)表示,用於兩個數字相乘。但在處理特殊值時,ECMAScript中的乘法還有一些特殊行為:
如果運算數都是數字,執行常規的乘法運算,如果結果太大或太小,那么生成的結果就是Infinity或-Infinity 。
如果某個運算數是NaN,結果為NaN。
Infinity 乘以0,結果為NaN。
Infinity 乘以0以外的任何數字,結果為Infinity或-Infinity,由第二個運算數的符號決定。
2、除法運算符,用斜線(/)表示,用第二個數字除第一個數。對於特殊值,特殊行為如下:
如果運算數都是數字,執行常規的觸發運算,如果結果太大或太小,那麼產生的結果是Infinity或-Infinity。
如果某個運算數是NaN,結果為NaN。
0除一個非無窮大的數字,結果為NaN。
Infinity被0以外的任何數字除,結果為Infinity或-Infinity,由第二個運算數的符號決定。
3、取模運算符,用百分號(%)表示。如果運算數都是數字,執行常規算術除法運算,傳回餘數。特殊行為:
如果被除數是 Infinity,或除數是0,結果為NaN。
如果除數是無窮大的數,結果為被除數。
如果被除數為0,結果為0。
五、加性運算子
1、加法運算子(+),特殊行為:
某個運算數是NaN,結果為NaN。
Infinity 加-Infinity,結果為NaN。
如果某個運算數是字串,那麼採取下列規則:
如果兩個運算數都是字串,把第二個字串連接到第一個字串上。
如果只有一個運算數是字串,把另一個運算數轉換成字串,結果是兩個字串連接成的字串。
2、減法運算子(-),如果兩個運算數都是數字,就會執行算術減法。特殊規則:
如果運算數是NaN,結果為NaN。
某個運算數不是數字,結果為NaN。
六、关系运算符
关系运算符小于、大于、小于等于和大于等于执行的是两个数的比较运算,比较方式与算术比较运算相同。每个关系运算符都返回一个Boolean值。
对于字符串,第一个字符串中每个字符的代码都会与第二个字符串中对应位置上的字符的代码进行数值比较。
1、大写字母的代码都小于小写字母的代码,所以要得到按照真正的字母顺序比较结果,必须把两个运算数转换成相同的大小写形式,再进行比较。
2、在比较两个字符串形式的数字时,比较的是它们的字符代码。
3、比较一个字符串和数字,ECMAScript都会把字符串转换为数字,然后按照数字顺序比较它们。如果字符串不能转换成数字,那么返回NaN,任何包含NaN的关系运算都要返回false。因此,这样会返回false。
七、等性运算符
1、等号(==) 和非等号(!=),为确定两个运算数是否相等,这两个运算符都会进行类型转换。执行类型转换的基本规则如下:
如果一个运算数是Boolean值,在检查相等性之前,把它转换成数字值。False转换成0,true转换成1。
如果一个运算数是字符串,另一个是数字,在检查相等性之前,要尝试把字符串转换成数字。
如果一个运算数是对象,另一个是字符串,在检查等性之前,要尝试把对象转换成字符串(调用toString()方法)。
如果一个运算数是对象,另一个是数字,在检查等性之前,要尝试把对象转换成数字。
在进行比较时,该运算符还遵守下列规则:
值null和undefined相等。
在检查相等性时,不能把null和undefined转换成其他值。
如果某个运算数是NaN,等号将返回false,非等号将返回true。即使两个运算数都是NaN,等号仍然返回false,因为根据规则,NaN不等于NaN。
如果两个运算数都是对象,那么比较的是他们的引用值。如果两个运算数指向同一个对象,那么等号返回true,否则两个运算数不等。
2、全等号和非全等号
等号和非等号的同类运算符是全等号和非全等号。这两个运算符所做的与等号和非等号相同,只是他们在检查相等性前,不执行类型转换。
全等号由三个等号(===)表示,只有在无需类型转换运算数就相等的情况下,才返回true。
var sNum="55"; var iNum=55; alert(sNum==iNum); //输出 "true" alert(sNum===iNum); //输出 "false"
非全等号由两个感叹号加两个等号(!==)表示,只有在无需类型转换运算数不相等的情况下,才返回true。
var sNum="55"; var iNum=55; alert(sNum != iNum); //输出 "false" alert(sNum !== iNum); //输出 "true"
八、其他运算符
1、条件运算符,即三元运算符 : variable = boolean_expression ? true_value : false_value;
2、赋值运算符(=) 复合赋值运算符:+=、-=、*=、/=、%=、>=、>>>=
3、逗号运算符 用逗号运算符可以在一条语句中执行多个运算。 如: var iNum1=1,iNum2=2;
以上是總結介紹JavaScript中的八類運算符的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Python和JavaScript在社區、庫和資源方面的對比各有優劣。 1)Python社區友好,適合初學者,但前端開發資源不如JavaScript豐富。 2)Python在數據科學和機器學習庫方面強大,JavaScript則在前端開發庫和框架上更勝一籌。 3)兩者的學習資源都豐富,但Python適合從官方文檔開始,JavaScript則以MDNWebDocs為佳。選擇應基於項目需求和個人興趣。

從C/C 轉向JavaScript需要適應動態類型、垃圾回收和異步編程等特點。 1)C/C 是靜態類型語言,需手動管理內存,而JavaScript是動態類型,垃圾回收自動處理。 2)C/C 需編譯成機器碼,JavaScript則為解釋型語言。 3)JavaScript引入閉包、原型鍊和Promise等概念,增強了靈活性和異步編程能力。

不同JavaScript引擎在解析和執行JavaScript代碼時,效果會有所不同,因為每個引擎的實現原理和優化策略各有差異。 1.詞法分析:將源碼轉換為詞法單元。 2.語法分析:生成抽象語法樹。 3.優化和編譯:通過JIT編譯器生成機器碼。 4.執行:運行機器碼。 V8引擎通過即時編譯和隱藏類優化,SpiderMonkey使用類型推斷系統,導致在相同代碼上的性能表現不同。

JavaScript在現實世界中的應用包括服務器端編程、移動應用開發和物聯網控制:1.通過Node.js實現服務器端編程,適用於高並發請求處理。 2.通過ReactNative進行移動應用開發,支持跨平台部署。 3.通過Johnny-Five庫用於物聯網設備控制,適用於硬件交互。

我使用您的日常技術工具構建了功能性的多租戶SaaS應用程序(一個Edtech應用程序),您可以做同樣的事情。 首先,什麼是多租戶SaaS應用程序? 多租戶SaaS應用程序可讓您從唱歌中為多個客戶提供服務

本文展示了與許可證確保的後端的前端集成,並使用Next.js構建功能性Edtech SaaS應用程序。 前端獲取用戶權限以控制UI的可見性並確保API要求遵守角色庫

JavaScript是現代Web開發的核心語言,因其多樣性和靈活性而廣泛應用。 1)前端開發:通過DOM操作和現代框架(如React、Vue.js、Angular)構建動態網頁和單頁面應用。 2)服務器端開發:Node.js利用非阻塞I/O模型處理高並發和實時應用。 3)移動和桌面應用開發:通過ReactNative和Electron實現跨平台開發,提高開發效率。

JavaScript的最新趨勢包括TypeScript的崛起、現代框架和庫的流行以及WebAssembly的應用。未來前景涵蓋更強大的類型系統、服務器端JavaScript的發展、人工智能和機器學習的擴展以及物聯網和邊緣計算的潛力。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Atom編輯器mac版下載
最受歡迎的的開源編輯器

Dreamweaver CS6
視覺化網頁開發工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能