var asd1 = 'have a nice day' //string
var asd2 = 20 //number
var asd3 = new Date() //object
var asd4 = ['1','3','4'] //object
var asd5 = true //boolean
複製代碼
typeof undefined //undefined
typeof null //object
typeof ['1','2','3'] //object
typeof {asd:'sssss'} //object複製代碼
typeof 未定義值 // undefined
typeof 未初始化值 // undefined複製代碼
var a = [1,2]
var b = {'a':'asss'}
alert( a instanceof Array) // true
alert( b instanceof Object) // true 複製代碼
var arr = [2,4,6];
var bcc = arr;//傳址 ,對象中傳給變量的數據是引用類型的,會存儲在堆中;
var cxx = arr[0];//傳值,把對象中的屬性/數組中的數組項賦值給變量,這時變量C是基本數據類型,存儲在棧內存中;改變棧中的數據不會影響堆中的數據
alert(bcc);//2,4,6
alert(cxx);//2
//改變數值
bcc[1] = 6;
cxx = 7;
alert(arr[2]);//6
alert(arr[0]);//2
複製代碼
"" == "0" // false
0 == "" // true
0 == "0" // true
false == "false" // false
false == "0" // true
false == undefined // false
false == null // false
null == undefined // true
" \t\r\n" == 0 // true
複製代碼
由於在強制類型轉換的時候規則比較複雜,因此說使用 == 是一個很差的編程習慣,也會帶來性能消耗。
javascript
=== 全等操做符html
不會進行強制類型轉換,前端
"" === "0" // false
0 === "" // false
0 === "0" // false
false === "false" // false
false === "0" // false
false === undefined // false
false === null // false
null === undefined // false
" \t\r\n" === 0 // false
複製代碼
因此推薦使用 === 操做符
java
因此已經使用了 === 操做符,可是仍是會產生不少問題,那麼否則咱們本身進行類型轉換。git
轉換爲 字符類型: 將一個值加上空字符串能夠輕鬆轉換爲字符串類型github
'' + 10 === '10'; // true
複製代碼
轉換爲 數字類型: 使用一元的加號操做符,能夠把字符串轉換爲數字。
正則表達式
+'10' === 10; // true
複製代碼
轉換爲布爾值: 經過使用 否 操做符兩次,能夠把一個值轉換爲布爾型
編程
!!'foo'; // true
!!''; // false
!!'0'; // true
!!'1'; // true
!!'-1' // true
!!{}; // true
!!true; // true複製代碼
參考:bonsaiden.github.io/JavaScript-…
數組
關注我獲取更多前端資源和經驗分享 關注後回覆 vivi 獲取個人微信號,望不吝賜教,pps:可輕撩哈哈 瀏覽器
感謝大佬們閱讀,但願你們頭髮濃密,睡眠良好,情緒穩定,早日實現財富自由~