/*
1、javascript 的简介
* 是基于对象和事件驱动的语言,应用于客户端
- 基于对象:
** 提供好了很多对象,可以直接拿过来使用
- 事件驱动:
** html做的网站是静态效果,javascript 做的网站可以实现动态效果
- 客户端:专门指的是浏览器
*js有三大特点:
1、交互性:
-信息的动态交互
2、安全性:
-js不能访问本地磁盘文件
3、跨平台性:
- java里面的跨平台性需要安装虚拟机
-js的跨平台性只要能够支持js的浏览器,都可以运行
*js 和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 中,需要先编译文件后再执行
*js 的组成:
三部分组成:
1、ECMAScript
- ECMA :欧洲计算机协会
- 由ECMA组织制定的js的语法,
2、BOM
- broswer object model:浏览器对象模型
3、DOM
- document object model:文档对象模型
2、js 和 html 的结合方式(两种):
第一种:
- 使用一个标签
第二种:
- 使用script标签,引入一个外部的js文件
<script type="text/javascript" src="js文件路径"> </script>
-使用第二种方式的时候,在script标签中的代码将不会执行
3、js的原始类型和声明变量:
** java 的基本数据类型 byte short int long float double char boolean
** 定义变量都使用关键字 var
** js 的原始类型
- string 字符串类型
var str = "abc";
- number 数字类型
var mum = 123;
- boolean true 和 false
var fal = true;
- null
-- var date = new Date();
-- 获取对象的引用,null 表示对象引用为空,所有对象的引用也是object
- undifined
** 定义一个变量,没有赋值
** var A;
typeof() 查看变量当前的数据类型
4、js的语句:
- java 里面的语句
** if 判断
** switch 语句
** 循环语句 for、while、do-while
-js里面的语句
** if 判断语句:
** switch语句
-- java 里面支持数据类型 string 在jdk1.7 开始支持
-- js 里面支持所有的数据类型
switch(a){
care 5:
break;
care 6:
break:
default:
}
** while 循环:
var i = 5;
while(i>=1){
alert(i);
i--;
}
** for 循环
-- java 中的写法
for (int i=0; i <=10 ; i++){
执行代码块;
}
-- js 中的写法
for (var i=0; i<=10 ;i++){
执行代码块;
}
*** 需要注意的是一个等号表示赋值运算,两个等号表示条件判断,
*** 另外 i++(先执行再加一)和 ++i(先加一再执行)与java 中的效果是一样的
5、js 运算符
** += :x +=y ==> x= x + y;
** js不区分整数和小数
var j = 123;
alert(j/1000*1000);
// 在java中,上面的输出为0,因为默认的数据为整数,所以0/100 =0.123就是 0,0*1000还是等于0
// 在js中是不区分整数和小数的,也就是说只有number 没有float 和 duble;所以结果等于 123
** 字符串的相加和相减的操作
var str = "456";
** 如果相加的时候,做的是字符串拼接的操作
alert(str+1); // 在java里操作的结果等于 :4561 字符串的拼接,在js里面也是4561
** 如果是相减的时候,做的是数学运算,
alert(str-1); // 在java里面这样的运算式子是不成立的,而在js中,结果等于455
// 如果 str里面不为数字,执行相减的运算时,将提示NaN
var str = "abc"
alert(str - 1);
** boolean 类型的相加相减操作
-- 如果flag = true ,相当于 flag =1
如果flag = false ,相当于 flag = 0
所以 flag + 1 或 flag - 1 跟数学运算是相同的
** == 和 === 区别:
var aa = "5";
// == 比较的是值,输出为 5
if(aa==5){alert(5+"== 比较的是值,输出为 5");}else{alert("other");}
// ===比较的是值和类型,输出为 other
if(aa === 5){alert(5);}else{alert("other:"+"=== 比较的是值和类型,输出为 other ");}
6、实现99乘法表:
**引入知识
– 直接向页面输出的语句(可以把内容显示在页面上,相当于java中的System.out.println())
** document.write();
**99乘法表有9行9列
for(var i =1;i<10;i++){
for(var j = 1;j<=i;j++){
document.write(j+"*"+i+"="+j*i+" ");
}
document.write("<br/>")
}
** 在document.write("")中嵌套html代码时,如果需要给html标签设置属性值,那么属性值用单引号括起
-- 例如 document.write("<table border='1' bordercolor='orange'>");
-- document.write() 可以输出变量,也可以输出html代码:
7、js的数组
** 什么是数组
- 使用变量 ,var m = 10;
- java 中的数组定义 int[] arr = {1,2,3};
- js中数组的定义:
第一种:var arr = [1,2,3,“4”,true];
第二种:使用内置对象Array对象
var arr1 = new Array(5); // 定义一个数组,长度为5
arr1[0] = 1; // 对每一个进行赋值
第三种:使用内置对象Array()
var arr2 = new Array(3,4,5)
** 数组中的属性 length
-- length属性:获取数组的长度
** 数组可以存放不同的数据类型
8、js的函数(方法):
– 在java中定义方法:
public 返回值类型 方法名称(参数列表){ 方法体;返回值}
public int add(int a,int b){
int sum = a + b;
return sum;
}
– js 中定义方法(函数)有三种方式:
第一种方式:
*** 使用到一个关键字 function
– function 方法名(参数列表){
方法体;
返回值;(返回值可有可无,根据实际需要设置)
}
第二种方式:
*** 匿名函数:
var func =function (参数列表){
方法体;
返回值;
}
*** 调用的时候也是func(参数)
第三种方式:
*** 动态函数
*** 使用到js 里面的一个内置对象 Function
var func = new Function("参数列表","方法体和返回值");
-- 动态函数的实现代码:
var chanshu="x,y";
var fanfati="var sum=x+y;return sum;"
var func4 = new Function(chanshu,fanfati);
alert(func4(7,8));
9、js的全局变量和局部变量:
** 全局变量: 在script标签里面定义一个变量,这个变量在页面中js 部分都可以使用
-- 在方法的外部使用,在方法的内部使用,在另外一个srcipt标签中使用
** 局部变量: 在方法内部定义一个变量,只能在方法内部使用
-- 只在局部使用,在方法中定义的变量,只能在方法中使用!
10、script 标签的位置
** 一般script 都放在 body结束标签的后面,避免script在取值的时候出现错误
– 程序的解析是从上到下的,所以必须保证script 标签中需要获取的值在script标签之前已经存在
*/