javascript学习一、js的初步了解
1、javascript的简介:
*javascript 是一种基于对象和事件驱动的语言,主要应用于客户端。
-- 基于对象:
** 提供了很多对象,可以直接使用。
--事件驱动:
** html做的网页是静态效果,javascript做的是动态效果。
--客户端:
主要是指浏览器。
*js的特点:
(1)交互性:
--信息的动态交互。
(2)安全性:
--s不能访问本地磁盘中的文件。
(3)跨平台性:
--与java不同,js直接使用 浏览器跨平台。
*javascript和java之间的区别:(没有任何关联)
(1)java是sun公司(现在是oracle)发布
js是网景公司发布。
(2)javascript是基于对象的,java是面向对象的。
(3)java是强类型的语言, js是弱类型的语言。
(4)js是解析就可以执行, java需要先编译再执行。
*js的组成
有三部份
(1)ECMAScript
--ECMA :欧洲计算机协会, 由其为js指定语法。
(2)BOM
--broswer object model : 浏览器对象模型。
(3)DOM
--document object model :文档对象模型。
2、js和html的结合方式(两种)
第一种:
--使用一个标签:
<script type="text/javascript" > js代码 </script>
第二种:
--引入外部文件:
-- 创建一个 .js文件。
-- <script type="text/javascript" src=" 外部文件地址 "> </script>
注意: 在第二种中的script标签中不要写其他js代码了,不会被执行。
3、js的原始类型和声明变量
** java中有是八大基本数据类型 : byte short int long float double char boolean
js中,只有五个原始类型:
--string: 字符串
*** var str = "abc";
--number: 数字类型
*** var num = 123;
--boolean: true和false
*** var falg = true;
--null:
*** 获取对象的引用,null用来表示引用为空,所有对象的引用都为 object
*** var date = new Date();
--undifined
*** 定义一个变量,没有被赋值
*** var aa;
** typeof() ;查看当前变量的数据类型。
** alert() ; 在页面跳出一个对话框。
** document.write();直接想页面输出的语句(可以把括号内的语句输出到页面上)
也可以输出html代码。
4、js的语句
--在java里面的语句:
***if语句
***switch语句
***循环语句: for 、while、 do-while
--在js里面也有这些语句
***if判断语句
注意: *****=: 赋值
*****==:判断
***switch语句
--java从1.7才开始支持 string,枚举类型,
--js中所有类型都支持。
--switch(a){
case 1:
break;
case 2:
break;
default:
... ...
}
--循环语句: for 、 while 、 do-while:与java中的用法一致。
其中, i++ 和 ++i 和java中是一样的。
5、js的运算符
** += : x+=y; 等于: x=x+y;
**js里面不区分整数和小数
var j = 123;
alert(j/1000*1000);
--java中,结果为:0
--js中, 结果为:123
**js中的字符串的相加和相减的操作
var str = "123";
***在相加的时候,做的是字符串的连接。
***在相减的时候,做的是减法运算。
如: alert(str+1)//结果为1231.
alert(str-1)//结果为122.
住意:当str不是一个数字的时候,减法运算会提示错误。
var str = "abc";
alert(str-1);//结果为:提示NaN: 表示这不是一个数字。
**boolean也可以进行数学运算
***如果设置成 true ,进行数学运算的时候,相当于值为:1
***如果设置成 false ,进行数学运算的时候,相当于值为: 0
** == 和 === 的区别
他们都是用来做相等判断的,
*** == 比较的是 值
*** === 比较的是 值 和 类型
如: var i = "5";
i==5 为: true
i===5 为: false。
6、九九乘法表的练习(输出到页面)
*使用: document.write()输出到页面上。
document.write可以输出变量,也可以输出html代码(加双引号)
document.write里面是双引号,里面的标签属性必须使用双引号。
7、javascript的数组
--与java不同,js是弱类型的语言,数组中可以存放不同类型的值。
--java数组定义: int[] arr = {1,2,3};
--js数组定义方式(三种):
第一种: var arr = [1,2,3] || var arr = [1,"2",true]
第二种: 使用内置对象 Array,
var arr = new Array(5); //定义了一个长度为5的数组。
arr[0] = "1"; arr[1] = 2; arr[2] = true;
第三种: 使用内置对象 Araay,
var arr = new Array(3,"4",true);//定义一个数组,其中值为:3,4,true
--数组中有一个属性 length: 获得数组的长度。
--数组的长度是可变的。(与java数组进行区分)
--数组可以存放不同类型的值(与 java 数组进行区分)
8、js中的方法
**在java中定义方法:
修饰词 返回值类型 方法名(参数列表){
方法体;
返回值;
}
public int add(int a, int b){
int sum = a+b;
return sum;
}
**在js中定义方法,有三种方式:
第一种方式:
***使用一个关键字 function
***function 方法名(参数列表){
方法体;
返回值(视需求,可有可无);
}
for example:
function add(a ,b,c){
var sum = a+b+c;
return sum;
}
(调用方法名,使用定义的方法)
第二种方式:
匿名方法。
*** var 变量名 = function(参数列表){
方法体;
返回值;
}
如:
var add = funtion(a,b){
var sum = a+b;
return sum;
}
(之后使用变量名调用方法)
第三种方式:
***动态方法。
***使用一个js的内置对象 Function
var 变量名 = new Function("参数列表","方法体 和 返回值"); (注意,参数和方法体之间是逗号)
var add = new Function("a,b", "var sum=a+b; return sum");
(之后使用变量名调用函数)
****注意,此方式中,可以预先定义好参数列表,和方法体与方法名,在定义方法的时候直接传进来。
9、js的全局变量, 和局部变量
**全局变量: 在script标签里面定义的一个变量,这个变量在页面中js部分都可以使用
--在方法外部使用, 在方法内部使用, 在另一个scipt标签里使用。
**局部变量: 在方法内部定义的一个变量,只能在在方法内部使用。
--如果在方法外部使用,则会提示出错。
--SCRIPT5009: "nn"未定义
12-js的局部变量.html,行18 字符3
**ie(火狐)自带了一个调试工具,ie8及其以上版本,按F12,在页面下方出现调试栏。
10、script标签可以放的位置
**按照格式来说, script标签可以放在任何位置(head,body,甚至是html外)
**但是,在开发中,为了能顺利和htnl代码结合,最好放在:</body> 的后面。
原因:如果script语句中要使用body中的 (如<input type="text"/>中的)值 ,
而script本shent在head中,那么就会出问题,
html是从上到下进行解析的,此时,script中要使用body中
的值,但是还没有解析到body,就拿不到这个值。
所以:建议script放在</body>得后面。
11、js方法的重载
**js中没有重载,在有多个同名但是不同参数的方法时,按照解析顺序,调用方法处使用
其上面的离其最近的 定义的方法。(如果参数不合,就会报错: NaN)