作者forkome (初心者)
看板Ajax
标题[问题] Javascript语法请教
时间Fri Feb 14 17:39:55 2014
请问各位大大,最近在学javascript
所以去找版友所写的作品来看
其中有几句用google很难找到
return !!window.WebGLRenderingContext
一个惊叹号是把true变false,但两个惊叹号的用法是?
因为是看别人的作品,所以思考方式都是逆思考
若想查类似!!的问题,或是了解较进阶的用法
想请教大大们都是如何学习呢
目前会一些基本的用法if for及变数域、委派的概念
但很多较进阶的用法都会将function给物件化,如JQuery就是这样用
市面上的书大多都讲较正常的使用方式,对於观念都比较少提到
现在卡在要看别人的Code,但看不太懂,由下往上的学习好像又是错误的方式
不知有没有比较推荐的网站还是书本可以学习吗? 谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 60.249.154.130
1F:推 s25g5d4:一个便当吃不够都要吃两个了 惊叹号一个不对再补一个 02/14 17:48
2F:→ s25g5d4:就是... true 还是 true, false 还是 false 02/14 17:48
3F:推 mrbigmouth:两个惊叹号可以把原本不是布林值的物件转换成布林值 02/14 17:50
4F:→ mrbigmouth:!!'' => false !!{} => true 02/14 17:51
5F:→ mrbigmouth:以你举的例子, 其目的应该是要检查浏览器内是否已存在 02/14 17:52
6F:→ mrbigmouth:WebGLRenderingContext定义 不存在就返回false 02/14 17:52
7F:→ mrbigmouth:存在就返回true 02/14 17:52
8F:→ mrbigmouth:这是用来防止相同script被载入/执行两次的常见作法 02/14 17:53
9F:→ forkome:M大谢谢回覆,可以再请教一下,防止被执行两次的意思吗 02/16 19:36
10F:→ forkome:而在设计上,为何不直接window.WebGLRenderingContext 02/16 19:37
11F:→ forkome:回传true或false呢? 02/16 19:37
12F:推 mrbigmouth:WebGLRenderingContext可能直接就是该程式的物件本身 02/17 13:58
13F:→ mrbigmouth:你如果直接存另一个变数为true/false就多占一个广域变 02/17 13:59
14F:→ mrbigmouth:数 02/17 13:59
15F:推 taikobo:原来还有这种用法,受教了 02/17 18:23
16F:→ forkome:目前的理解为window.WebGLRenderingContext可能会是null 02/18 11:40
17F:→ forkome:或是undefined的情况发生,故「!」可将转Boolean值 02/18 11:41
18F:→ forkome:不知这样解理对不对,感谢M大的回覆 02/18 11:41
19F:推 s25g5d4:是 02/18 12:26
20F:推 mrbigmouth:对 关於js书籍 推荐欧莱礼的javascript设计模式跟ja 02/18 19:40
21F:→ mrbigmouth:vascript优良部份两本 02/18 19:40