作者:Longbill
网页模板: http://slides.html5rocks.com/
请使用Chrome浏览器。
左右箭头或鼠标滚轮翻页
<html>
<body>
<script type="text/javascript">
document.write("Hello World!");
</script>
</body>
</html>
<html> <body> <script type="text/javascript" src="http://php.js.cn/somejs.js"></script> </body> </html>
这两种方式插入的代码都会在浏览器解析(或者叫运行)到该标签的时候被执行。
<a href="javascript:alert(1);">click</a> clickURL里的JS被执行的时候,上下文环境(context)是window
<input type="button" onclick="alert(this.tagName);" value="戳我" />写到属性里面的JS执行时候的上下文环境是对应的DOM。所以以上alert的this.tagName为input元素的标签名。
foo();
function foo()
{
alert('foo');
}
goo();
var goo = function()
{
alert('goo');
}
(function()
{
alert('bar');
})();
在同一个<script>标签内的 function xxx(...){ ... } 声明是会被提前的。所以上面的foo函数会被执行。但是goo不会。
function foo()
{
var name = 'Longbill';
return function()
{
alert(name);
}
}
var a = foo();
var name = 'Leon';
a();
以上代码会弹出"Longbill" 而不是 "Leon"!
如果你能明白这个,那你已经基本了解了JS最深奥的概念之一──“闭包”
var obj = {};
obj.a = 'a';
obj.b = function()
{
alert('b');
};
obj[0] = 'Longbill';
obj[1] = 'Leon';
obj.length = 2;
obj["a"] = 'aaa';
万物皆对象。
下期:JS中的“类”、浏览器兼容性等。
2010-11-02
优米网
http://php.js.cn