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”。

相关推荐