JavaScript入门
一、简介:
基于对象和事件驱动的脚本语言,应用于客户端。
—基于对象:提供好了对象,直接拿来使用,不需要new对象
—事件驱动:js提供动态效果,由事件来触发。
—客户端:浏览器
Java和JavaScript的区别:
a. 二者无任何关系
b. Java是面向对象,js是基于对象
c. Java是基于虚拟机,js是基于浏览器
d. Java是强类型语言,js是弱类型语言
二、基础语法:
- JavaScript包含三种语法
- ECMAScript基础语法(ECMA:欧洲计算机协会)
- DOM(Document Object Model)文档对象模型
- BOM(Browser Object Model)浏览器对象模型
- 在网页中添加JavaScript方法:
- 通过在网页中加入
<Script>…</Script>
标记JavaScript的开始和结束,将JavaScript代码放到<Script>…</Script>
之间。如:
<script language="JavaScript">
function returnback() {
history.back();
history.back();
}
</script>
- 也可以引入一个外部的JavaScript文件,这个JavaScript文件一般以**.js**作为扩展名。
<script src="2.js" language="JavaScript">
</script>
注意:此时不要在<script></script>
中写js代码了,即使写了也不会执行。
- 原则上,放在
<head></head>
之间。但视情况可以放在网页的任何部分。 - 一个页面可以有几个,不同部分的方法和变量,可以共享。
ps:<script>
标签可以在html的任何位置,一般地,函数定义写在<head>
中,执行语句写在<body>
后。
Js数据类型和变量定义
var或者不定义直接使用就行
JavaScript的原始类型和声名变量
JavaScript是弱类型语言,定义变量使用 var关键字。
原始类型(五个):
a) String 字符串 :var str = “string”;
b) Number 数字:var m = 123;
c) Boolean 布尔类型:var flag=true;
d) Null:对象的占位符,null表示对象引用为空,所有对象的引用也为object
e) Undefined 有变量,没有赋值
Ps: 通过使用typeof(变量名);来获取变量的类型。
JavaScript的语句
if语句、switch语句、for/while/do…while与Java使用方式一样。
运算符
基本运算与Java一样
注意:
- Js中不区分整数和小数。
var m=123;
alert(m/10001000); //结果为123
在Java中由于123为int类型,123/1000取余就是0,故结果为0。但是 在js中,不区分整数和小数123/10001000=0.123*1000=123;
- 字符串的相加和相减的操作。
var str=”123”;
alert(str+1); //结果为1231;字符串连接
alert(str-1);//结果为122;将值减1了
var str=”abc”;
alert(str-1);//提示为:NaN,表示不是一个数字(错误提示)
- 布尔类型的加减操作。
var flag=true;alert(flag+1);//结果为2
var flag=false;alert(flag+1);//结果为1
ps:相当于true为1,false为0
-
==
与===
的区别 (易错点)
==
只是判断值是否相等,如var str=“5”;if(str5) 结果是true
===
是判断值+类型是否相同,如var str=“5”;if(str=5) 结果为false -
引入知识
直接向页面输出的语句(可以显示在页面)
document.write(xx) ; 其中xx可以为变量、固定值以及HTML代码。
例子:九九乘法表
<script language="JavaScript">
//document.write("<table style='border:2px dashed orange'>");//只能设置外部边框,没有内部行列线
document.write("<table border='2' bordercolor='orange'>");//边框线和行列线统一设置
//九行
for(var i=1;i<=9;i++){
document.write("<tr>")
//九列
for(var j=1;j<=i;j++){
document.write("<td>");
document.write(j+"*"+i+"="+i*j+" "); //注意空格的转义
document.write("</td>");
}
document.write("</tr>");
//document.write("<br/>");
}
document.write("</table>");
</script>
3、数组
- 定义方式(有三种)
a) 直接定义:定义的时候直接赋值。
var arr =[1,2,3]; var arr=[1,2,”sd”];
b) 使用内置的Array对象。
var arr=new Array(5); //定义一个长度为5的数组
arr[0]=”ssd”; //给第一个赋值;
c) 使用内置的Array对象定义数组的同时直接赋值。
var mycars=new Array(“Saab”,“Volvo”,“BMW”); - 数组的属性 length,可以获取数组长度 。
数组名.length - 数组的长度可变,不会像Java那样出先数组溢出
- 数组可以存放不同的数据类型的数据。
4、方法(函数)
定义函数的三种方式(重点掌握前两种):
- 使用关键字function。
function 方法名(参数列表){
方法体;
[返回值;]
}
调用方式:方法名(参数列表);
参数列表直接写参数名称,不用写var。 - 匿名函数,无方法名。调用时需要起名字。
function(参数列表){
方法体;
[返回值;]
}
var add =function(a,b){
alert(a+b);
}
add(1,2);//调用 - 使用内置对象Function,动态函数。(不建议使用)
var fun =new Function(“参数列表”,“方法体和返回值”);
变量(全局变量和局部变量)
全局变量:在<script>
标签中定义的变量,在页面的js代码中都可以使用;
局部变量:在js的方法内定义的变量,只能在方法内部使用。
5、常用的对象类型详解
String对象
创建:var str = “acbdf