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) ==> 0
3. == 的两边分别是 number 和 object 类型的值时,把 object 转换成 number 类型,需要对 object 进行 ToNumber 操作,即:
Number([].valueOf()) ==> 0
4. 至此,== 两边的值都变成 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
解析:
最新文章
- Jsoup解析html终于成功了!!!
- 通过JS检测360浏览器
- Eclipse 关于“The type * is not accessible due to restriction on required library”问题的解决办法
- SQL超过锁请求
- linux cat 的深入用法
- 【leetcode】Permutations II
- Windows Server 2008 R2怎样设置自动登陆
- 理解模板引擎Razor 的原理(转载)
- 如何把 excel 设为文本格式?
- 第五篇、HTML标签类型
- java web移植 遇到Project facet Java version 1.7 is not supported
- CMSIS标准
- Android之布局大全
- R语言分析(二)——薛毅R语言第二章后面习题解析
- PHP+Redis 不注意这些细节简直就是跳入一个出不来的坑(windows下安装)
- 数据分析三剑客之一numpy
- git 删除分支 远程 &;&; 本地
- AngularJS Notes
- C#调用C++函数
- html/css/js 学习笔记 - 牛客网试卷:前端工程师能力评估