注:以下属于个人学习中的理解不能保证全部正确,如果有错误以后修正。
1.javascript和c#语言一样严格区分大小写,有没有类的概念。
2.所有的变量声明都使用var,虽然能打出蓝色int,但却不能使用,应该是系统的保留字吧。
3.局部变量有块域(即花括号{}),这个域不包含if、for、swith中的{}。这和c#中个的作用域有所差别。
4.函数(方法)的声明都使用punction 关键字,并且没有返回类型,但是可以返回任何类型。
5.方法的参数个数并不影响方法的调用,可不传或传多个,参数实际上都传给了一个隐形变量arguments数组。
6.方法不可以重载,如果有,则最后一个同名的方法覆盖之前的所有方法。
7.运行时存在方法预解析,虽然执行顺序是从上到下,但是依旧可以调用之后才写下的方法。方法预解析只在<script></script>中。
8.局部变量也存在预解析,这和c#有所区别。例如
var tre = ;
function test() { alert(tre);//结果为 undifined
var tre = ;
alert(tre);//结果为 8
}
test();//调用方法
alert(tre);//结果为 7
9.判断是不是NaN(no a number)不是使用==号,而是使用 is NaN。
10.浏览器不报错,不代表没有错。
11.函数中的this相当于C#中public,var 相当于private。
12.在if()中空字符串和undefined都视为false。换言之,其他都视为true?
13.兼容性代码写法:
//span2的点击事件
document.getElementById('span2').onclick = function (evt) {
//兼容代码,有些浏览器不支持window.event 而是自带一个参数
var e = window.event || evt;// '||'符号返回'真'的变量赋值给e e.cancelBubble = true;//阻止事件冒泡....
};