Javascript基础笔记
1、Javascript是一种在浏览器端执行的语言,他和java直接关系,唯一的关系就是javascript原名是LiveScript,后来吸取了java的一些特性,就只是借鉴而已,升级为javascript,简称是js,不是奸商!哈
2、Js是解释性语言,是动态语言。无需编译就可以运行,在一段js代码中,哪怕其中有语言错误,没有语法错误的部分还是可以运行的。
3、js的调试,直接在vs里面编写和调试,也可以用记事本来写,但是需要在网页上安装一个插件,这样才能运行,js代码。在vs2010里直接有,而在vs2008中需要安装visual studio 2008 sp1 补丁。 Vs2008 的THML编辑器重触发javascript自动完成Ctrl+J
4、HTML的的代码是从上往下执行的。放到<head>中的<script>在body加载之前就已经运行了。
5、事件
在超链接的点击里执行javascript
<a href = “javascript:alert(‘hello’)”>点我</a>
Javascript中也有事件的概念,当按钮点击的时候也可以执行javascript
<input type =“button” onclick = “alert(‘world’)”value = “点我哦”>
总结:只有超链接中的javascript才需要加”javascript:” ,因为它不是事件,而是把”javascript:”看成像”http:” “ftp:” “thunder://” “ed2k://” “mailto:”一样的网络协议,交由js来处理。
6、变量
Js中可以用双引号来声明字符串也可以用单引号来声明字符串,这主要是为了方便。
Javascript中有null ,undefined两种类型,null表示变量的值为空,undefined则表示变量还没有指向任何的对象,未初始化。
Javascript是弱类型,声明变量的时候无法用 int i= 10 ;只能通过 var i = 10;这里的var和C#里的var不一样!
Javascript中也可以不用var声明变量,直接用,这样的变量是“全局变量“ 这里的全局变量是加了双引号的,即不是真正的全局变量,这样声明变量不好,因为在以后其它地方也有可能会用这个变量,这样就会导致冲突。所以,在用变量的时候,都要用var来声明定义。
7、判断变量的初值
可以用一下三种方法来判断
var x
If(x== null){
alert(“null”);
}
If(typeof(x)==”undefined”){
alert(“undefined”);
}
If(!x){ // 推荐使用这种方法来写。
alert(“非X”);
}
8、函数
第一:函数没有返回值
第二:参数没有类型
第三:函数要以function开头
如下:functionadd(i1 ,i2){
return i1+i2 ;
}
Javascript不想C#那样,要求所有路径都有返回值。
如下:functionmax(i3 ,i4){
if(i3 > i4){
return i3 ;
}
}
当调用函数的时候,实参是max(2.6) ; 那么它返回来的值是undefined的。也就是没有返回。 当时max(5,3) 时,就不会出错。返回5.
如下面,也可以做字符串的相加
function fun(i5 ,i6){
return i5+i6;
}
调用的时候,fun(“你好”,”tom”) ;
9、js中的匿名函数。有点像C#里面的委托,在JQuery中用的比较多。
var f1 =function(i1 ,i2){return i1+i2;} ; // 注意,外面还有一个分号,这是必须要加上的。
alert(f1(4,2));
///////////////没有函数名。
也可以这样来用
alert(function(i1,i2){return i1+i2;}(1,4));
想这样用的话,就是这个函数用了之后就消失了。在这个例子中,这个函数只是个例子,其实际意义不大。但是匿名函数在以后的编程中会常用到。
10、面向对象
类的概念:
Javascript中没有类的概念,用一个函数来“冒充“类,并且可以用new来取得对象。
看代码:
<sctipt type = “text/javascript”>
function Person(name , age){
this.name= name ;
this.age= age ;
this.SayHello= function(alert(this.name)) ; // 匿名函数
}
var p1 = new Person(“tom”,20) ; // 这里必须要用new关键字,如果不用就成了函数调用了。
p1.SayHello() ;
</script>
、
11、Array动态数组的概念
看代码:
var names = new Array() ;// 在声明数组的时候不需要指定大小。直接用就行了。
names[0] = “tom”;
names[1] = “jerry”;
names[2] = “lily”;
…..//可以添加很多,因为这里是动态数组。就想ArrayList一样。Arr.add(***) ;
// 遍历这个names数组
for(var i=0 ;i<names.length; i++){
alert(names[i]);
}
综合运用一下:求数组中的最大值
<script type = “text/javascript”>
functionmax(arr){ // 定义一个函数,去获得传入的数组中的最大值。
var max=arr[0] ;
for(var i=1; i<arr.length ; i++){
if(max>arr[i])
max= arr[i];
}
return max;
}
var arr1 = new Array() ;
arr1[0]= 10 ;
arr1[1] = 20 ;
arr1[2] = 15 ;
alert(max(arr1)) ;
</script>
数组元素的反转:就是把第i个元素跟第length-i-1个元素交换。
另外,arr1.join(‘|’) 是将字符串数组arr1用分隔符‘|’分开,以字符串的形式输出。
12、array还可以当dictionary来用。
Js中的array是一个很好的东西,可以当动态数组,可以当dictionay ,也可以当stack,
下面演示:
<script type = ‘’text/javascript’’>
var dict = new Array() ;
dict[“小”] = “xiao” ;
dict[“中”] = “zhong” ;
dict[“大”] = “ da” ;
alert(dict[“大”]) ;
</script>
// 这段代码,运行出来的结果是da , 可以当dictionary来用。
<script type = ‘’ text/javascript’’>
vardict = new Array() ;
dict[“小”] = “xiao” ;
dict[“中”] = “zhong” ;
dict[“大”] = “ da” ;
alert(dict[“大”]) ;
for(var x indict){
alert(x) ;
}
</script>
// 这段代码输出的结果是,小,中,大。
请问,在如下代码中,输出的是啥呢?
<script type = ‘’ text/javascript’’>
vardict = new Array() ;
dict[0]= “xiao” ;
dict[1] = “zhong”;
dict[2] = “ da”;
//alert(dict[“大”]) ;
for(var x indict){ // 这就是C# 和java中的foreach 循环。
alert(x) ;
}
</script>
// 答案是:0,1,2 就是脚标!
总结,当用foreach循环时,输出的是,key值,当用查询(dict[“小”])时就是value值。
13、Array数组的简化声明
Vararr1 = [12,13,14,15] ; // 用[] 并且用逗号隔开。
// dictionary 中的初始化
Vararr2 = {“小明”:10 , “小芳”,9} ; // 用{} ,key与value用 : 隔开。
这些都是些最基础的东西,看了视频就要做点笔记,另外还要了解jq,继续探究。