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、严格模式限制总结?