这两天了解到一门新的脚本语言----javascript,貌似能干的事情好多呀哈哈哈哈,言归正传啧。
目录
javascript简介
js的简介
javascript是基于对象和事件驱动的语言,应用于客户端。基于对象说的是javascript提供好了很多对象,可以直接拿过来使用,而不是我们在java中要得到一个对象得new一个对象;可以实现动态效果,而客户端专门指的是浏览器。(javascript以下统称为js)
js的特点
1.交互性:可以实现信息的动态交互
2.安全性: js不能访问本地磁盘的文件
3.跨平台性:只要能够支持js的浏览器,都可以运行
javascript和java的区别
首先要明确,毫无关系。主要区别以下几点
1.java是sun公司,现在oracle,js是网景公司
2.js 是基于对象的,java是面向对象
3.java是强类型的语言,js是弱类型的语言
- 比如java里面 int i = "10"; //报错
- js: var i = 10; var m = "10"; //可以操作
4.js只需解析就可以执行,而java需要先编译成字节码文件,再执行。
javascript的组成
1.ECMAScript
- ECMA : 欧洲计算机协会
- 由ECMA组织制定的js的语法,语句,也就是基础语法。
2.BOM
- broswer object model: 浏览器对象模型
3.DOM
- document object model:文档对象模型
js与html结合方式
1.使用一个标签
<script type="text/javascript" src="1.js"></script>
直接在script标签里面写js的代码
2. 使用script标签,引入一个外部的js文件
<script type="text/javascript" src="1.js"></script>
使用第二种方式时候,就不能在script标签里面写js代码了,不会执行。
那么还存在一个问题,script标签应该放在html标签的哪个位置呢?其实最佳的位置应该是把script标签放到 </body>后面 。因为如果在js里面需要获取到input里面的值,如果把script标签放到head里面会出现问题。html解析是从上到下解析的,script标签放到的是head里面,直接在里面取input里面的值,因为页面还没有解析到input那一行,肯定取不到。
js原始类型和声明变量
原始类型
1. string: 字符串
var str = "abc";
2. number:数字类型
var m = 123;
3. boolean:true和false
var flag = true;
4. null:对象引用为空,只是一个占位符
var date = new Date();
获取对象的引用,null表示对象引用为空 ,所有对象的引用也是object
5.undifined: 定义一个变量,没有赋值
var aa;
定义变量
java的基本数据类型 byte short int long float double char boolean。而js中定义变量都使用关键字 var
用typeof();来查看当前变量的数据类型
js的语句
1. if判断语句
if(..) {
---;
} else {
---;
}
=:表示赋值; ==:表示判断
2.switch语句
switch(a) {
case 5:
break;
case 6:
break;
default:
......
}
参数a支持各种数据类型
3.循环语句 for while do-while
var i = 5;
while(i>1) {
alert(i);
i--;
}
4.for循环
for(int i=0;i<=10;i++) {
alert(i);
}
js的运算符
1.+= : x+=y; ===> x=x+y;
注意:js里面不区分整数和小数
var j = 123;
alert(j/1000*1000);
// j/1000*1000 在java里面得到结果是 0
// 在js里面不区分整数和小数,123/1000=0.123 * 1000 = 123
2. 字符串的相加和相减的操作
如果相加时候,做是字符串连接; 如果相减,做的是相减的运算
var str = "456";
//alert(str+1); //拼接 4561
alert(str-1); //相减时候,执行减法的运算455
提示NaN:表示不是一个数字
3.boolean类型也可以操作
如果设置成true,相当于这个值是1
如果设置成false,相当于这个值是0
4. == 和 === 区别
比较的只是值; === 比较的是值和类型
js数组
java中的数组是存放相同类型元素的集合。而在js中数组可以存放不同的数据类型的数据。
定义方式(三种)
第一种:
var arr = [1,2,3]; var arr = [1,"4",true];
第二种:使用内置对象 Array对象
var arr1 = new Array(5); //定义一个数组,数组的长度是5
arr1[0] = "1";
第三种:使用内置对象 Array对象
var arr2 = new Array(3,4,5); //定义一个数组,数组里面的元素是3 4 5
其实第二种和第三种定义方式其实大同小异。如果括号内是一个数字表示数组长度,是多于一个的数字表示数组里面的元素。
数组里面有一个属性 length:获取到数组的长度
js的函数(动态函数和匿名函数)
定义方法
1. 使用到一个关键字 function
function 方法名(参数列表) {
方法体;
返回值可有可无(根据实际需要);
}
eg:
function test() {
alert("qqqqq");
}
//调用方法
test();
//---------------------------------------------------
//定义一个有参数的方法 实现两个数的相加
function add1(a,b) {
var sum = a+b;
alert(sum);
}
//add1(2,3);
//有返回值的效果
function add2(a,b,c) {
var sum1 = a+b+c;
return sum1;
}
alert(add2(3,4,5));
2. 匿名函数
var add = function(参数列表) {
方法体和返回值;
}
eg:
var add3 = function(m,n) {
alert(m+n);
}
//调用方法
add3(5,6);
3.动态函数:使用到js里面的一个内置对象 Function
var add = new Function("参数列表","方法体和返回值");
js的全局变量和局部变量
1.全局变量:在script标签里面定义一个变量,这个变量在页面中js部分都可以使用,即在方法外部使用,在方法内部使用,在另外一个script标签使用
2.局部变量:在方法内部定义一个变量,只能在方法内部使用
js的函数重载
java中的重载是方法名相同,参数列表不同,返回值不同的一组函数。但是,在js中,我们要明确一点,js中是不存在重载的!!
如果写了若干“重载的函数”会调用最后一个方法。且把传递的参数保存到 arguments数组里面,因此我们可以通过其他方式模拟重载的效果 (通过aruguments数组来实现)
function add1() {
//比如传递的是两个参数
if(arguments.length == 2) {
return arguments[0]+arguments[1];
} else if (arguments.length == 3) {
return arguments[0]+arguments[1]+arguments[2];
} else if (arguments.length == 4) {
return arguments[0]+arguments[1]+arguments[2]+arguments[3];
} else {
return 0;
}
}
js在基础语法我整理了如上,接下来就会学习js的对象。