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型別
- Java資料型別的顯式轉換和隱式轉換Java資料型別
- C語言的隱式型別轉換C語言型別
- javascript 隱式轉換JavaScript
- 如何實現隱式型別轉換型別
- c++隱式型別轉換存在的陷阱C++型別
- 瞭解JavaScript中的型別轉換JavaScript型別
- JavaScript 隱性型別轉換步驟淺析JavaScript型別
- 建構函式定義的隱式型別轉換函式型別
- JavaScript 簡單介紹JavaScript
- 從兩個小例子看js中的隱式型別轉換JS型別
- 資料型別隱式轉換導致的阻塞資料型別
- 徹底理解c++的隱式型別轉換C++型別
- 沿著平滑的曲線學會 JavaScript 中的隱式強制型別轉換(基礎篇)JavaScript型別
- 簡單介紹克隆 JavaScriptJavaScript
- c#入門-型別轉換和運算C#型別
- 型別轉換運算子型別
- C++ 表示式中的型別轉換C++型別
- SQL Server資料庫中的資料型別隱式轉換問題SQLServer資料庫資料型別
- 說說JavaScript的型別轉換JavaScript型別
- 淺談JavaScript的型別轉換JavaScript型別
- 33 個 JavaScript 核心概念系列(三): 顯式 (名義) 與 隱式 (鴨子)型別轉換JavaScript型別
- 沿著平滑的曲線學會 JavaScript 中的隱式強制型別轉換(實戰應用篇)JavaScript型別
- 簡單介紹JavaScript閉包JavaScript
- javascript函式中with的介紹JavaScript函式
- c++primer——過載運算與型別轉換C++型別
- JavaScript 資料型別轉換JavaScript資料型別
- javascript資料型別轉換JavaScript資料型別
- golang 快速入門 [8.4]-常量與隱式型別轉換Golang型別
- '2'>'10'==true? JS是如何進行隱式型別轉換的?JS型別
- JavaScript return語句簡單介紹JavaScript
- JavaScript希爾排序簡單介紹JavaScript排序
- javascript中generator函式的介紹JavaScript函式
- 簡單介紹三層交換
- 簡單介紹Python中的配對函式zip()Python函式
- 前端面試官必問系列之隱式型別轉換前端面試型別