最近刷的面试题都有关于这个问题:JS有哪几种数据类型?
var a;
alert(a == undefined); //true
alert(null == undefined); //true
另外,只要意在保存对象的变量还没有真正保存对象时,应该明确的该变量保存null值。
该类型只有两个值:true 和 false。需要注意以下两点:
数据类型 | 转换为true的值 | 转换为false的值 |
---|---|---|
boolean | true | false |
string | 任意非空字符串 | 空字符串 |
number | 任何非零数字值 | NaN和0 |
object | 任何对象 | null |
undefined | n/a |
undefined
|
4、Number类型
var intNum = 55; //整数
var octalNum1 = 070; //八进制的56
var octalNum2 = 079; //无效的八进制,值为79
var octalNum3 = 08; //无效的八进制,值为8
var hexNum = 0xA //十六进制的10
八进制开头是0,在严格模式下,八进制字面量是无效的,会导致支持该模式的JavaScript引擎抛出错误。
(2)浮点类型
不说废话,直接上例子:
var floatNum1 = 1.1;
var floatNum2 = 2.1e7; //等于21000000
var floatNum3 = 3e-7; //等于0.0000003
另外,由于浮点数值的最高精度是17位小数。所以在进行算数计算时其精度远远不如整数。如0.1+0.2并不等于0.3,而是0.30000000000000004。所以,永远不要测试某个特定的浮点数值。
在大多数浏览器中:最小值Number.MIN_VALUE == 5e-324;最大值Number.MAX_VALUE == 1.7976931348623157e+308;如果超过范围,则这个数值将转换为正负无穷,即Infinity(-Infinity)值。
要确定一个数值是否有穷,可以用isFinite()函数。如果是有穷的,则返回true。
(3)NaN
NaN,即非数值。在ECMAScript中,0除以0会返回NaN。(正数除以0返回Infinity,负数除以0返回-Infinity)
这个值有两个特点:一、涉及任何关于NaN的操作都会返回NaN。二、NaN与任何值都不相等,包括NaN本身。
然后,ECMAScript针对以上两个特点定义了isNaN()函数。这个函数会帮我们确认参数是否为不是数值。不说废话直接上例子!
字面量 | 含义 |
\n | 换行 |
\t
|
制表 |
\b | 退格 |
\r | 回车 |
\f | 进纸 |
\\ | 斜杠 |
\' | 单引号 |
\“ | 双引号 |
\xnn | 以十六进制代码nn表示一个字符,其中n为0-F |
\unnnn |
以十六进制代码nnnn表示一个Unicode字符,其中n为0-F
|
var lang = "Mrs";
lang = lang + " Rabbit";
alert(lang); //Mrs Rabbit
var o = new Object();
以上就是Js中六种数据类型,感觉自己写出来有钟更加深入的理解了。面试问到应该不怂不过这个博客的编辑器还真的不会用,创建的代码块怎么删掉呢?还有保存了草稿打开,格式都不一样了,发布出去不知道会不会又不一样
(参考书籍:Javascript高级程序设计第三版)