Javascript学习笔记
是一门程序设计语言
基于对象和事件驱动语言(点击之类的),用于客户端,不同于jsp是用在服务端的。
特点:
1,交互性
2,安全性(不允许直接访问硬盘)
3,跨平台(只要能解释JS的浏览器就可以执行,和平台无关。)
Javascript和Java之间的关系
Java和Javascript就像雷锋和雷峰塔的关系一样
1,Javascript基于对象,Java面向对象
2,Javascript解释执行,Java要先编译在执行。
3,Javascript弱类型,Java强类型。
Javascript和html结合方式
1,将javascript代码封装到<script>标签中
<script type="text/javascript">
alert("Hello Javascript");
</script>
2,将javascript代码封装到js文件中,并通过<script>标签中的src属性进行导入。
注意:通过<script>中的src属性指定导入js之后,标签内部的js将不会执行。
<script type="text/javascript" src="demo.js"></script>
Javascript语法
1,关键字
2,标识符
3,注释
4,变量:标记一片内存空间
5,运算符
6,语句
7,函数
8,对象
5,运算符
<script type="text/javascript">
//算术运算符
var x = 4235;//弱类型
alert(x/1000*1000);//输出为4235,并不是4000
alert("12"+1);//121
alert("12"-1);//11
alert(true+1);//2 js中false就是0或者null,非0非null就是true,默认用1表示。
//逻辑运算符 && ||
//位运算符 & | >><< >>>按位运算
var c = 6;
alert(c&3);//2
alert(5^3^3);//5 异或同一个数,等于本身
alert(c>>1);//3 右移1位 除以2的1次方
alert(c<<2);//24 左移2位 乘以2的平方
//三元运算符
</script>
一些细节:
a.undefined:未定义,就是一个常量
b.获取变量类型:
<script type="text/javascript">
typeof("abc");//string 为什么是小写
typeof('9');//string
typeof(true);//boolean
typeof(2.5);//number
typeof(78);//number
</script>
6,语句
<script type="text/javascript">
//顺序结构
//if语句
var x = 3;
if(4 == x)//这样写可以预防错误
{
alert("no");
}else
{
alert("yes")
}
//switch语句
var x = "abc";
switch(x)
case "kk":
alert("a");
break;
case "abc":
alert("b");
break;
default:
alert("c");
break;//可省略
//循环结构
//while语句
var x = 3;
while(x<3){
alert("x="+x);
//将数据直接写到当前页面中 如果输出的字符串是html标签,此时浏览器就可以进行解析
document.write("x="+x+"<br/>");
x++;
}
//for语句
for(var x = 0;x<3;x++){
document.write("x="+x);
}
//break:跳出选择结构,跳出循环结构
//continue:结束本次循环,执行下次循环
//带标号的循环。直接break w所表示的循环
w:for(var x = 0;x<3;x++){
for(var y = 0;y<4;y++){
document.write("x="+x);
break w;//跳出w表示的循环 continue w; 跳出w的当前循环,并进行下一次循环
}
}
</script>
数组
1,数组长度是可变的
2,数组的元素类型是任意的
建议在使用数组时使用同一类型的数据,操作方便
<script type="text/javascript">
//定义方式1
var arr = [];
var arr1 = [1,2,3,5];
alert(typeof(arr));
alert("len="+arr.length);
//定义方式2
var arr = new Array();//与第一种一样
var arr1 = new Array(5);//定义数组长度为5
var arr2 = new Array(4,5,6);//定义一个数组,元素是4,5,6
//遍历
for(var x = 0;x<arr.length;x++){
document.write("arr[x]")
}
</script>
7,函数
定义函数的格式
通过关键字来定义
function 函数名(参数列表){}
细节问题
1,只要使用了函数名称,就是对函数的调用
2,函数中有一个数组在对传入的参数进行存储,数组就是arguments,遍历该数组就可以拿到所有的传入参数
3,函数名就是函数对象的引用变量,如果直接把函数对象用字符串输出的话,那输出的结果就是函数的代码,如果把函数名赋值给另一个变量的话,那么就会有两个引用变量指向同一个函数对象。
<script type="text/javascript">
//定义一个函数
function demo()
{
alert("demo run");
return;
}
demo();//函数调用
//定义加法
function add(x,y)
{
return x+y;
}
var sum = add(4,5);
alert("sum="+sum);
//相关细节问题
function show(x,y)
{
alert("len="+arguments.length)
alert("x="+x+"..y="+y);
}
show(4,5,6,7,8);
function getSum()//函数名就是函数对象的引用变量,如果直接把函数对象用字符串输出的话,那输出的结果就是函数的代码
{ //如果把函数名赋值给另一个变量的话,那么就会有两个引用变量指向同一个函数对象
return 100;
}
var sum1 = getSum();
alert("sum1="+sum1);
function show1()
{
alert("show1 run...");
}
alert(show1());//这个语句会先运行show1(),所以会先弹窗 show1 run... 然后再显示 show1 这个函数的运行结果 由于show1没有返回值,所以会再输出undefined
alert(show1);//show1 是一个引用变量,指向了show1函数对象,这个语句会将 show1的函数代码弹出
</script>
动态函数
使用较少
使用的是js中的一个内置对象Function
Function中的参数全是字符串,可以通过外部赋值来改变函数的形参列表和具体函数功能
<script type="text/javascript">
var add = new Function("x,y","var sum; sum = x+y; return sum;")
var he = add(4,8);
alert("he="+he);
</script>
匿名函数
函数的简写形式
<script type="text/javascript">
var add3 = function()
{
return a+b;
}
alert(add3(4,5));
</script>
全局变量和局部变量
待续。。。。。
<script type="text/javascript"> </script>