JS中的特殊值

来源:互联网 发布:分区容错性 知乎 编辑:程序博客网 时间:2024/06/05 11:04

下面这些东西是JS的基础内容,虽然基础,但在项目里未必常用,别人拿来考你,可不要被考倒哦~

typeof 返回字符串,有六种可能:”number”、”string”、”boolean”、”object”、”function”、”undefined”。

1.类型分析:

alert(typeof a);    //显示"undefined"var a1; alert(typeof a1); //显示"undefined"var a2 = true; alert(typeof a2); //显示"boolean"var a3 = 1; alert(typeof a3); //显示"number"var a4 = "Hello"; alert(typeof a4); //显示"string"var a5 = new Object();alert(typeof a5); //显示"object"var a6 = null; alert(typeof a6); //显示"object"var a7 = NaN; alert(typeof a7); //显示"number"var a8 = undefined; alert(typeof a8); //显示"undefined"

从上面的代码中可以看出未定义的值和定义未赋值的为undefined,null是一种特殊的object,NaN是一种特殊的number。

2.比较运算

var a1;         //a1的值为undefinedvar a2 = null;var a3 = NaN;alert(a1 == a2); //显示"true"alert(a1 != a2); //显示"false"alert(a1 == a3); //显示"false"alert(a1 != a3); //显示"true"alert(a2 == a3); //显示"false"alert(a2 != a3); //显示"true"alert(a3 == a3); //显示"false"alert(a3 != a3); //显示"true"

从上面的代码可以得出结论:(1)undefined与null是相等;(2)NaN与任何值都不相等,与自己也不相等。

null 表示无值,而 undefined 表示一个未声明的变量,或已声明但没有赋值的变量,或一个并不存在的对象属性。无法使用 for/in 循环来枚举 undefined 属性,也不能用 delete 运算符来删除它。undefined 不是常量,当尝试读取不存在的对象属性时也会返回 undefined。判断是否为undefined:if (typeof(reValue) == “undefined”)或if (t2===undefined)
题:写出如下表达式的运算结果

2&3 答案22|3 答案3~true 答案 -2NaN==NaN答案 falseundefined==undefined 答案 truenull==null答案 truenull==undefined答案 truetypeof(NaN) 答案 "number"typeof(undefined) 答案 "undefined"typeof(null) 答案 "object"typeof([])答案 "object"

:位取反运算符 (~) ,对一个表达式执行位非(求非)运算。如 ~1 = -2 ; ~2 = -3 ; ~99 = -100
所有一元运算符(如 ~ 运算符)都按照下面的规则来计算表达式的值:
1、 如果应用于未定义的表达式或 null 表达式,则会引发一个运行时错误。
2、 将对象转换为字符串。
3、 如果可能,将字符串转换为数字。 否则,将引发运行时错误。
4、 布尔值被视为数字(如果为 false,则为 0;如果为 true,则为 1)。
如: var temp = ~5;
/*
5 二进制 101,补满 32位
00000000000000000000000000000101
按位取反
11111111111111111111111111111010
由于32位开头第一个是1,所以这是一个负数,将二进制转换成负数,需要先反码
00000000000000000000000000000101
之后,再+1
00000000000000000000000000000110
转换成十进制为6,加上符号变成负数 -6
*/
alert(temp);
// 弹出【-6】

0 0
原创粉丝点击