最赞回答 / Sharon_zd
第二段代码里面,return null === v ? "☀" : (v instanceof Date ? "❤" : (v === global ? "❀" : typeof v));怎么显示的太阳 心 和花? 只有我一个人浏览器这样么?还是说本来就是太阳,心 和花 ? = =
2015-01-12
已采纳回答 / 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
已采纳回答 / Bosn
谢谢亲的反馈。因为第一章主要让大家了解数据类型,涉及到的函数、对象、原型、继承等等都在后面有专门的章节来细讲。所以第一章的课程只要先理解JavaScript的动态弱类型特性、区分基本类型与对象即可。
2015-01-10
讲师回答 / Bosn
老师不会影分身啊,第二章明天或下周一上线,第三章预计下周五,以后每周一章。本课程不是基础课,过于简单、基础的内容不会重复去说,基础部分的学习请参见《JavaScript基础篇》、《JavaScript进阶篇》。
2015-01-08
已采纳回答 / Bosn
NaN是number类型<...code...>NaN意思是Not A Number(不是数字), 它不是JavaScript仅有的,而是IEEE754标准规定的双精度浮点小数类型的特殊值。Java的double与JavaScript的number是一样的,也有not a number.需要注意NaN和任何值比较都不相等。<...code...>
2015-01-07