1、涉及数据类型转换?:
isNaN()、Number()、parseInt()、parseFloat()、String()、Boolean()、valueOf()、toString()、++/--、+...
2、var o = {
valueOf: function() { //?标签
return -1;
}
};
3、var f = 1.1;f --;alert(f);:
0.10000000000000009 ,由于浮点舍入错误所致?
4、字符串到浮点数的转换:
var s = "01.2.3";s = +s;alert(s);,结果为NaN;
var s = "01.2.3";alert(Number(s));,结果为NaN;
var s = "01.2.3";alert(parseFloat(s));,结果为1.2。
5、空字符串到数值的转换:
var s = ""或" ";alert(parseFloat(s));,结果为NaN;
var s = ""或" ";alert(parseInt(s));,结果为NaN;
var s = ""或" ";alert(Number(s));,结果为0。
6、IEEE-754 64位格式存储,但位操作符先将64位的值转成32位的整数,然后执行操作,最后再将结果转换回64位?
7、求负数补码:
在处理有符号整数时,是不能访问位31的?
8、var c = 6;var d = ~ c;:
位操作符 按位非 与数值之间可存在空格。
9、对于尚未声明过的变量(注意 var x = undefined; 表示x已经声明过),只能执行一项操作:typeof,如执行 luke || true 就会发生错误。
10、含布尔操作符的表达式返回值不一定是布尔值(true或false),比如逻辑与 && 。
11、String()、toString()、valueOf() 关于对象的类型转换?:
valueOf() 是直接获取对象的数值;
toString()是先得到对象的字符串,然后将该字符串转换为数值,此时是调用Number方法吗?
12、+0、-0 的意义?
13、NaN的两个特点:
任何涉及NaN的操作都会返回NaN?:关系操作符除外,1 == NaN 结果为false;
NaN与任何值都不相等,包括NaN本身。
14、要比较相等性之前,不能将null和undefined转换成其他任何值?
15、对象之间的比较,是否有引用地址之间的比较?
16、关系操作符中涉及到的类型转换只是用于关系比较,并非改变原数据类型,推广到js中涉及的类型转换?
17、可以对任何数据类型的值调用Boolean()函数,而且总会返回一个Boolean值。
18、ECMAScript中不存在块级作用域,在循环内部定义的变量也可以在外部被访问到。
19、没有返回值的函数返回undefined:
function sum(n1,n2){return;};alert(sum(1,2));:用在需要提前停止函数执行而又不需要返回值的情况下;
function sum(n1,n2){n1 + n2;};alert(sum(1,2));
20、伪语言?
21、严格模式限制总结?
浙公网安备 33010602011771号