js经典试题之数据类型
js經典試題之數據類型
1:輸出"B" + "a" + + "B" + "a"的值:
答案:BaNaNa。
分析:因為+"B"的意思就是把這個字符串轉化為數字,但是因為"B"不能轉化為數字,所以只能變成NaN(not a number)了。
? 另外因為字符加上任意類型都會把后面的類型轉化為字符,使得 NaN 變成了"NaN"
2:[] == [] 的值為?
答案:false。
分析:當兩個值都是對象 (引用值) 時, 比較的是兩個引用值在內存中是否是同一個對象. 因為此 [] 非彼 [], 雖然同為空數組, 確是兩個互不相關的空數組, 自然 == 為 false。
?
3:?[] == ![] 的值為?
答案:true
分析:解釋這個“等式”至少要四句話,涉及到了 JavaScript 的運算符優先級 、寬松相等(即 ==)的判斷過程以及強制類型轉換
?1. 等號右邊有 ! ,優先級比 == 更高,優先計算右邊的結果。 [] 為非假值(參考,什么是假值:Falsy - Glossary),所以右邊的運算結果為 false,即:
![] ==> false // 此處表示轉換過程,下同2. == 的任意一邊有 boolean 類型的值時先把這個值轉換成 number 類型,右邊轉換成了 0 ,即:
Number(false) ==> 03. == 的兩邊分別是 number 和 object 類型的值時,把 object 轉換成 number 類型,需要對 object 進行 ToNumber 操作,即:
Number([].valueOf()) ==> 04. 至此,== 兩邊的值都變成 0 了,顯然是成立的
?
4:列舉js的數據類型:
答案:
基本數據類型:Number,String,Boolean,Undefined,Null
復雜數據類型:Object,Array,Function,RegExp,Date,Error
全局數據類型:Math
?
5:null == undefined的值?
答案:true。
分析:undefined值是通過null派生出來的,==時它會自動轉化為null,所以返回true。不過如果用嚴格比較符===,不發生轉化,將返回false。
?
6:下面哪些屬于JavaScript的typeof運算符的可能結果:
typeof Symbol() //"symbol" typeof Number() //"number" typeof String() //"string" typeof Function() //"function" typeof Object() //"object" typeof Boolean() //"boolean" typeof null //"object" typeof undefined //"undefined"number、string、boolean、undefined、object、function、symbol
?
7:javascirpt中的數字在計算機內存儲為多少Byte?
答案:8Byte
解析:
1.Javascript中,由于其變量內容不同,變量被分為基本數據類型變量和引用數據類型變量。基本類型變量用八字節內存,存儲基本數據類型(數值、布爾值、null和未定義)的值,引用類型變量則只保存對對象、數組和函數等引用類型的值的引用(即內存地址)。 2.?JS中的數字是不分類型的,也就是沒有byte/int/float/double等的差異。轉載于:https://www.cnblogs.com/momozjm/p/7755554.html
總結
以上是生活随笔為你收集整理的js经典试题之数据类型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: npm WARN enoent ENOE
- 下一篇: 利用python来解析html