摘要:
今天看了Expressions and Operators。有了C++的基础感觉学这章比较轻松,这次备忘的是Relational Expressions。其实最主要的是区分'=='和'==='这两个关系操作符的区别。简单的说'==='是严格相等,不会进行类型的转换,而'=='则会进行类型的转换。看下面的代码://结果输出是123和4321。具体的区别是,对于'===':如果两个操作数他们不具有相同的类型,则他们不相等;如果两个操作数都是null或者undefined,那么他们相等;如果两个操作数都是布尔型值true 阅读全文
摘要:
今天备忘的是Variable Declaration and Variable Scope。今天直接上原汁原味的代码例子反而觉得更清楚:var scope = "global"; // Declare a global variablefunction checkscope() {var scope = "local"; // Declare a local variable with the same namereturn scope; // Return the local value, not the global one}checkscope() 阅读全文
摘要:
今天备忘的是Object to Primitive Conversions,类类型到元类型的转换。主要备忘的是类类型到字符型和类类型到数值型(简称类字转换和类数转换)的转换,类类型到布尔型的转换以一个例子直接带过:new Boolean(false);上面的这一行代码生成了一个糖衣类如果要转换为布尔类型其转换结果是true。(类转换到布尔都是true) 类字转换和类数转换主要是通过toString()和valueOf()这两个函数,在Javascript中任何类都继承了这两个函数。默认的toString()方法不会输出有趣的值:({x:1, y:2}).toString() // => 阅读全文
摘要:
最近由于在弄WEBGL的东东,由于看不懂Threejs里面的Javascript,所以看了一点Javascript的基础教程。今天要备忘的东西是这个:Wrapper Objects(我叫他是糖衣类)。 首先看下面的例子:var s = "test"; -->1s.len = 4; -->2var t = s.len; -->3 我的第一反应就是t应该输出是4,结果输出其实是undefined。看了书之后,里面的原因其实是(自我理解)每当编译的时候当编译器遇到s的时候他会临时new一个类... 阅读全文