javascript運算中的隱式型別轉換簡單介紹
型別轉換咋js中是非常重要且必須要掌握的概念,因為對它的應用非常的頻繁,但是有些型別轉換是隱式的,甚至都不會去注意或者說刻意的關注,儘管如此,作為程式設計師的我們要知道發生了什麼,這樣才有可能避免可能出現的潛在錯誤,下面就js的隱式型別轉換做一下簡單介紹。
一.加(+)運算子的轉換:
加好運算子再熟悉不過,它可以用於資料運算和字串連線,例如:
[JavaScript] 純文字檢視 複製程式碼var a=5+5; var str="hello"+"螞蟻部落"
但是在實際的操作中往往沒有如此"單純",可能左右變數的運算元一個是數值型別,一個是字串型別,看下面的程式碼:
[JavaScript] 純文字檢視 複製程式碼var a=5+"5"; console.log(a);
輸出結果是"55",這說明是進行了字串連線操作。
當進行加運算的時候,如果一邊是字串,一邊是數字,那麼就會首先將數字轉換為字串再進行操作。
二.減(-)運算子的轉換:
此運算子雖然的標籤恰恰和加運算子相反,如果兩端的運算元有字串,則先將字串轉換為數字,然後再進行元素。
程式碼如下:
[JavaScript] 純文字檢視 複製程式碼var a=5-"5"; console.log(a);
以上程式碼的陣列值是0,這說明進行了這一轉換。
對加減運算子的總結:
以上兩種隱式轉換,可以用來進行型別轉換,非常的方便:
加號將數字轉換為字串:
[JavaScript] 純文字檢視 複製程式碼var num=5; console.log(typeof(num)); var num=num+""; console.log(typeof(num));
以上程式碼只要在後面連線一個空字串就可以了。
減號將字串轉換為數字:
[JavaScript] 純文字檢視 複製程式碼var str="5"; console.log(typeof(str)); var str=str-""; console.log(typeof(str));
只要減去一個空字串就可以了。
三.if語句中型別轉換:
[JavaScript] 純文字檢視 複製程式碼var num=2; if(num){ console.log("轉換為布林型"); }
if語句會嘗試將條件轉換為布林型的,上述程式碼就是一個例子,當然條件不一定非得是數字,也可以是其他型別。
四.while語句中的轉換:
while語句和if語句對條件的處理是相同額,這裡就不多介紹了。
五.for in時的型別轉換:
使用此運算子可以遍歷物件直接量中的屬性,先看一段程式碼例項:
[JavaScript] 純文字檢視 複製程式碼var antzone={ webName:"螞蟻部落", age:2 } for(var a in antzone){ console.log(typeof(a)); }
由以上程式碼可以看出a組後的型別是字串,但是a是物件直接量的屬性標識,所以在進行遍歷的時候進行了轉換。
六.alert()語句隱式型別轉換:
[JavaScript] 純文字檢視 複製程式碼String.prototype.fn=function(){return this}; var str="antzone"; alert(typeof(str.fn())); alert(str.fn())
在以上程式碼中,為物件(類)原型新增了一個函式,此函式中的this應該是指向物件例項的,所以this的型別應該是object,但是使用alert()輸出的卻是"antzone",這說明進行了隱式轉換。
相關文章
- javascript資料型別轉換簡單介紹JavaScript資料型別
- javascript表示式中的運算順序簡單介紹JavaScript
- JavaScript隱式型別轉換JavaScript型別
- javascript除法運算簡單介紹JavaScript
- 有趣的JavaScript隱式型別轉換JavaScript型別
- javascript數字和字串資料型別轉換簡單介紹JavaScript字串資料型別
- javascript中隱私型別轉換JavaScript型別
- javascript求餘運算簡單介紹JavaScript
- javascript取模運算簡單介紹JavaScript
- JavaScript的隱式型別轉換淺析JavaScript型別
- JavaScript 隱式資料型別轉換JavaScript資料型別
- JavaScript隱式型別轉換趣解JavaScript型別
- JavaScript 運算子規則與隱式型別轉換詳解JavaScript型別
- javascript Object型別物件簡單介紹JavaScriptObject型別物件
- 「譯」JavaScript 的怪癖 1:隱式型別轉換JavaScript型別
- 【關於Javascript】--- 隱式型別轉換篇JavaScript型別
- javascript的in運算子簡單介紹JavaScript
- MySQL 隱式型別轉換MySql型別
- javascript異常報錯型別簡單介紹JavaScript型別
- ORACLE中的隱式資料型別轉換(一)Oracle資料型別
- js短路運算簡單介紹JS
- javascript &&和||運算子簡單介紹JavaScript
- C++隱式型別的轉換C++型別
- 資料型別的隱式轉換資料型別
- javascript資料型別隱式和顯式轉換詳解JavaScript資料型別
- Operator運算子過載與Implicit隱式型別轉換型別
- javascript 隱式資料型別轉換程式碼例項JavaScript資料型別
- 一個簡單函式—Number型別轉換Date型別函式型別
- Java資料型別的顯式轉換和隱式轉換Java資料型別
- C語言的隱式型別轉換C語言型別
- 混合運算中資料型別的轉換 (轉)資料型別
- javascript鏈式呼叫簡單介紹JavaScript
- javascript匿名函式簡單介紹JavaScript函式
- C# 隱式型別轉換(轉載)C#型別
- 從Java的型別轉換看MySQL和Oracle中的隱式轉換(二)Java型別MySqlOracle
- 如何實現隱式型別轉換型別
- 談談 MySQL 隱式型別轉換MySql型別
- C++隱式類型別轉換C++型別