已采纳回答 / Bosn
|是位运算符,1 | 0 => 10 | 0 => 0二进制的任何数字 | 0都不会改变自己的值,例如:1110 | 0000 => 11100101 | 0000 => 0101之所以能够实现string转number,是利用了运算符的规则。ECMA262定义了JavaScript运算符的规范,引擎照着这个规范去实现而已。实现是引擎级别的事情。两个运算符在隐式将string转number这点上无区别,
2015-01-11
已采纳回答 / Bosn
没错,除了Null => "[Object Null]", undefined => "[Object Undefined]"外,其它都是先试图转为Object的,所以Object.prototype.toString.apply(new Number())仍然输出'[object Number]',而typeof new Number(1)却是"object". 用哪种判断办法看需求。效率问题,要看引擎实现,要看算法,要看实际的应用场景,重复次数。单纯讨论效率问题没有太大的意义。
2015-01-11
讲师回答 / Bosn
该部分会在原型链、OOP相关得章节详细展开讨论。简单说,当定义一个构造器(函数)时,该构造器就会有prototype属性,prototype.constructor指向这个构造器本身:<...code...>当用该构造器创建Stu...
2015-01-10
已采纳回答 / Bosn
准确的说,JavaScript是按共享传递的(call by sharing)。对于基本类型,按共享传递与按值传递(call by value)无异,你可以理解为JavaScript基本类型是按值传递的。例:<...code...>而对于对象,较为特殊...
2015-01-10