JavaScript笔记(1)
1在<scriptlanguage="JavaScript"></script>中使用language是因为除了JavaScript还有vbscript,如果不写language时浏览器默认解释为JavaScript代码。
2引用js文件的方式为:<scriptsrc="demo.js"type="text/javascript"></script>
3所有变量都只使用var关键字进行声明。
4变量名只能使用字母、"$"、"_",后接字母、数字、"$"、"_"。
5JavaScript不区分单引号和双引号;如果在双引号内部需要用到单引号,则可以使用单引号代替;如果在双引号内部必须使用到双引号,则需要使用转义字符。
6 JavaScript没有专门用于转化字符串类型的函数,只需要用"+"连接两个字符类型的就可以。例如:alert("yyy" + null + 123);的结果为:yyynull123。
7JavaScript的常量使用全大写字符命名。
8 如果在""中需要使用""时需要使用转义字符,例如:alert("he said \"how could this be !\"");
9在JavaScript的除法中,即使两个操作数都是整数,当无法整除时,结果是一个小数,而不是整数。此外,当除数为0时,并不会引发程序错误,而是得到一个Infinity的结果。
10 JavaScript引入了严格等于的概念,即===,要求值相同而且值的类型也要相等;注意这里不是指向同一内存空间。例:var a = 2; var b = a; var c = 2; alert(a === b); alert(a === c);的结果为:true true。11 void为取消返回值运算符。例如:
alert(void parseInt('123a4'));结果为:undefined,并不是123。12 JavaScript中的switch语句支持各种类型的case条件,包括所有基本类型和引用类型,这在Java中是不允许的,只支持字符和整数类型。例如:
var con1 = null; var con2 = 1; var con3 = Object; var con4 = "string"; switch (con1){ case null: alert(null); break; case 1: alert(1); break; case Object: alert(Object); break; case "string": alert("string"); break; }
13 lable语句的应用,例:
var output; var loop = 0; outer: for(var i = 0; i < 10; i++){ for(var j = 10; j >0; j--){ for(var k = 0; k < 10; k++){ //满足条件时,中断所有循环 if(i == j && j == k && j < 2){ output = i * j * k; break outer;//跳出最外层循环 } loop++; } } } alert(output + ":" + loop);结果为1:191;如果不用lable循环结果则为1:1000,性能改善不少。14 JavaScript中参数列表中的参数没有类型,例如:
function x(a){}
15JavaScript数组的建立方法有两种:一种是使用特殊符号创建;一种是使用对象创建。
【1】使用特殊符号创建
var a = [1, '2', true]; alert(a.length);的结果为3。
注:JavaScript中数组中的元素可以多中类型混合搭配。
【2】使用对象创建
var array1 = new Array(1, 2, 3); alert(array1.length);//结果为3,当参数个数大于等于2时,参数为传递的参数值。 var array2 = new Array(4); alert(array2.length);//结果为4,当参数个数为1个时,参数为数组的长度。 var array3 = new Array(); alert(array3);//结果为空,当前数组没有长度。16 JavaScript中给一个不存在的索引赋值,会自动扩展数组,例如:
//初始数组为只包含一个数字 var arr = [1]; //设置数组的第4个元素为1 arr[3] = 1; alert(arr[2] + '\n' + arr);结果为:undefined
1,,,1。未被赋值的数组元素的值为undefined。
17多维数组的实现方式
var arr1 = [1, 2, 3]; var arr2 = [4, 5, 6]; var arr3 = [arr1, arr2]; alert((arr3[0] === arr1) + "\n" + arr3[1][1]);结果为:
true
5
18关于函数参数需要主要几点:
【1】参数名可以重复,但通过此参数名获取的值为实际传递参数值的最后一个,如果实际传递参数值的个数少于重名参数个数,那么通过此参数名获取的值为undefined。例:
function example(a, a, a){ alert("a = " + a); } example(1, 2, 3); example(1,2);
【2】即使函数声明了参数,调用时也可以不传递参数值。例:
function example(a, a, a){ alert("1024"); } example();
19JavaScript中函数的另一种写法(匿名函数)
主要的思想是:函数也是一种数据类型,成为function类型;既然函数也是一种数据类型,那么它也可以被赋值给变量。例:
var examp = function example(a, a){ alert("1024"); } examp();
20JavaScript变量的作用域
JavaScript变量的执行环境只有两种:全局环境、函数环境。也就是说变量的作用域只有这两种情况,大括号不会作为变量的作用域,这个和Java是一个很大的区别。例:
for(var i =0 ; i < 5; i++){ var num = 20; } alert(num);
21在JavaScript的注释中千万不要出现"</script>",它会认为是“<script>”的结束符,从而导致整个JavaScript代码出现问题。这真是一个令人不爽的“Bug”。