首页 > 网站 > WEB开发 > 正文

javascript学习笔记1

2024-04-27 14:21:02
字体:
来源:转载
供稿:网友

javascript学习笔记1

Javascript是解释执行的客户端的基于对象和事件驱动的动态语言,解释型的语言并不需要对其进行编译,只是从上到下直接执行即可。

在js中,函数就是对象,例如可以向如下这样写代码,但是平时不常用

var test02 = new Function("a","b","alert(a+b);");

通过上面的代码还可以看出,函数里的形参可以不写var声明,因为js是弱类型,传进来的参数一定是var,所以可以不写

还可以向下面这样用函数,

var ttt = "chengyuan";function test() {        var aa="jubu";        bb='weichengyuan';        alert(aa);    }       function test2(){        alert(ttt);    }    function test3(){        var t1=true;        var t2="true";        if(t1==t2){            alert("true");        }else{                        alert("false");        }    }        function test4(){        alert("true"==1);    }    function test5(){        alert(Number("true"));    }    function test6(param){        param();    }</script></head><input type="button" value="test1" onclick="test();"/><input type="button" value="test2" onclick="test2();"/><input type="button" value="test3" onclick="test3();"/><input type="button" value="test4" onclick="test4();"/><input type="button" value="test5" onclick="test5();"/><input type="button" value="test6" onclick="test6(test2);"/><body>

  

test6()里传入的是函数的名字,然后在函数体内加上括号就可以执行这个方法。上面的其它方法也具有代表意义,可以看看。

上面的代码输出依次为

image

image

image

image

image

image

不得不说的是NaN,他的意思是Number is not a Number,当将一个不能转为数字的js变量转为Number时,就会出现NaN类型,它是唯一一个自己不等于自己的类型,NaN类型也不可能等于别的类型的值。

js有6种类型,分别为string,object,Number,boolean,null,undefined,其中,null是undefined的衍生类;常用的有 String boolean Number。

可以通过typeof(变量名)来得到变量的类型。

“==”和“===”的差别:

==等值符 发生类型的自动转换 ===等同符 不发生类型的自动转换,比较的时候先比较typeof的值 进行比较的时候 String boolean Number 类型相同 直接进行比较 类型不同 发生类型转换,同时向Number靠拢,调用Number方法

用+进行两个类型相加时,遇到string类型的变量时整体全部变为string,这个与java语法很相近,但是需要明确指定的是javascript和java并没有任何关系。而且,js不支持重载,当有多个名字相同的函数时,这个函数实际上是最后一个相同名字的函数,前面的函数永远不会被执行,因为它们被覆盖了。

现在有一个function如下:

function test8(){        alert(Number("123.345"));        alert(parseInt("123.a45"));        alert(parseFloat("123.a45"));        alert(parseInt("a123.456"));    }

  

输出的结果为:123.456

123

123

NaN

这是因为对值进行解析的时候是从左边一位一位解析的,当遇到了不能解析的字符时就停止解析,所以第四个的结果刚刚解析就碰到了这个问题,故出现了NaN。

function test(a,b,c){

}

其中,test.length表示形参的个数。

arguments.length表示的是实参的个数,当某个形参的个数为3个时,可以向其传大于3个的实参,这时后面的参数将会被 无视,当向其传入2个实参时,alert时会出现NaN,因为第三个没有传入的实参被 自动的附于了undefined类型。

还有如下的情况,代码如下:

<a href="javascript:void(0);" onclick="test01();">test01</a>中"javascript:void(0);" 这个方法常用,用于将这个超连接指向当前页的当前位置。

<input type="button" value="一个事件两个方法" onclick="test01();test02();"/>

一个事件要两个方法的写法如上。

eval() 函数可计算某个字符串,并执行其中的 JavaScript 代码。

代码如下:

function test9(){        var c="abcd";        var a = "var b=c"        eval(a);        alert(b);    }

  

输出结果为abcd

function test10(){        var a ="[1,2,3,4,5,6]";        eval("var dd = "+a);        alert(dd[7]);    }

  

输出结果为undefined

 function test11(){        var arr = "[1,2,3,4,5,6]";        eval("var dd = "+arr);        alert(dd[3]);    }

  

输出结果为3

js定义数组:

var arr = new array();

或者var arr = [1,2,3,4];

或者var arr = new array(10);

需要注意的是,JS里面定义的数组的长度是可变的,这和java的数组是有区别的


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表