简介
- 是基于对象和事件驱动的语言,应用与客户端。
- 基于对象: 提供好了很多对象,可以直接拿过来使用
- 事件驱动: html做网站静态效果,javascript动态效果
- 客户端:专门指的是浏览器
- js的特点
- 交互性:信息的动态交互
- 安全性: js不能访问本地磁盘的文件
- 跨平台性:java里面跨平台性,虚拟机只有能够支持js的浏览器,都可以运行
- JavaScript 是基于对象的弱类型的语言,java是面向对象的强类型的语言
js的组成
- ECMAScript
ECMA : 欧洲计算机协会
有ECMA组织制定的js的语法,语句…..- BOM
broswer object model: 浏览器对象模型- DOM
document object model:文档对象模型
js和html的结合方式(两种)
- 使用一个标签
<script type="text/javascript"> js代码; </script>
建议把script标签放到</body>
后面- 使用script标签,引入一个外部的js文件
<script type="text/javascript" src="a.js"></script>
js的原始类型与声明
- 定义变量 都使用关键字 var
- js的原始类型(五个)
- string: 字符串
var str = “abc”;- number:数字类型
var m = 123;- boolean:true和false
var flag = true;- null
var date = new Date();
获取对象的引用,null表示对象引用为空 ,所有对象的引用也是object- undifined
定义一个变量,没有赋值
var aa;
typeof(); 查看当前变量的数据类型
js的语句
if判断语句
=:表示赋值 ==:表示判断switch语句
switch(a) {
case 5: break;
case 6: break;
default:
……
}- 循环语句 for while do-while(和java语法一样)
- i++ ++i和java里面一样
运算符
js里面不区分整数和小数
var j = 123; alert(j/1000*1000);
j/1000*1000 在java里面得到结果是 0
在js里面不区分整数和小数,123/1000=0.123 * 1000 = 123字符串的相加和相减的操作
如果相加时候,做是字符串连接
如果相减,做的是相减的运算
例如: var str = “456”;
alert(str+1); 在java里面操作的结果是 4561 ,在js里面还是 4561
alert(str-1); 相减时候,执行减法的运算- 提示NaN:表示不是一个数字
- boolean类型也可以操作
如果设置成true,相当于这个值是1
如果设置成false,相当于这个值是0- == 和 === 区别
== 比较的只是值
=== 比较的是值和类型
js数组
- 定义方式(三种)
- : var arr = [1,2,3]; var arr = [1,”4”,true];
- :使用内置对象 Array对象
var arr1 = new Array(5); //定义一个数组,数组的长度是5- :使用内置对象 Array
var arr2 = new Array(3,4,5); //定义一个数组,数组里面的元素是3 4 5- 数组里面有一个属性 length:获取到数组的长度
- 数组可以存放不同的数据类型的数据
js函数(共三种,这里仅介绍最常用的一种)
- 函数的参数列表里面,不需要写var,直接写参数名称
使用到一个关键字 function
function 方法名(参数列表) {
方法体;
返回值可有可无(根据实际需要);
}
//定义一个有参数的方法 实现两个数的相加
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));
定义完函数,一定要记得调用
js全局变量和局部变量
- 全局变量:在script标签里面定义一个变量,这个变量在页面中js部分都可以使用
- 在方法外部使用,在方法内部使用,在另外一个script标签使用
- 局部变量:在方法内部定义一个变量,只能在方法内部使用
js的string对象
- 创建String对象 :var str = “abc”;
- 方法
(1)与html相关的方法
bold():加粗
fontcolor(): 设置字符串的颜色
fontsize(): 设置字体的大小
link(): 将字符串显示成超链接: str.link(“hello.html”)
sub() sup(): 下标和上标
(2)与java相似的方法
concat(): 连接字符串 :str1.concat(str2)
charAt():返回指定位置的字符串:str3.charAt(20);
//字符位置不存在,返回空字符串
indexOf(): 返回字符串位置str4.indexOf(“w”);
//字符不存在,返回-1
split():切分字符串,成数组
var str5 = "a-b-c-d";
var arr1 = str5.split("-");
document.write("length: "+arr1.length);
replace() : 替换字符串
document.write(str6.replace(old ,new));
substr()和substring()
str7.substr(5,5); 从第五位开始,向后截取五个字符
str7.substring(3,5); de 从第几位开始到第几位结束 [3,5)
从第几位开始,到第几位结束,但是不包含最后哪一位
Array对象
- 方法
concat()方法: 数组的连接:arr1.concat(arr12);
join():根据指定的字符分割数组:arr1.join(“-“);
push():向数组末尾添加元素,返回数组的新的长度;
//如果添加的是一个数组,这个时候把数组当做一个整体字符串添加进去:arr1.push(“zhangsan”);
pop():表示 删除最后一个元素,返回删除的那个元素:arr1.pop();
reverse():颠倒数组中的元素的顺序:arr1.reverse());
js的Date对象
- 获取当前时间
var date = new Date(); // Fri Apr 17 10:47:46 UTC+0800 2015
date.toLocaleString();//转换成习惯的格式- 获取当前的年方法
*getFullYear():得到当前的年:date.getFullYear();- 获取当前的月方法
getMonth():获取当前的月
//返回的是 0-11月,如果想要得到准确的值,加1
var da = date.getMonth()+1;- 获取当前的星期
getDay():星期,返回的是 (0 ~ 6)
外国朋友,把星期日作为一周的第一天,星期日返回的是 0
date.getDay()- 获取当前的日
getDate():得到当前的天 1-31 ://date.getDate()- 获取当前的小时
getHours():获取小时: //date.getHours();- 获取当前的分钟
getMinutes():分钟: //date.getMinutes();- 获取当前的秒
getSeconds(): 秒: //date.getSeconds();- 获取毫秒数(s使用毫秒数处理缓存的效果:http://www.baidu.com?毫秒数)
getTime() : 返回的是1970年1月 1日 至今的毫秒数
js的Math对象
里面的方法都是静态方法,使用可以直接使用 Math.方法()
- ceil(x): 向上舍人
floor(x):向下舍人
round(x):四舍五入
random():得到随机数(0-1)
js的全局变量
由于不属于任何一个对象,直接写名称使用
- eval() : 执行js代码(如果字符串是一个js代码,使用方法直接执行)
encodeURI() :对字符进行编码
decodeURI() :对字符进行解码(知道就行 encodeURIComponent() 和 decodeURIComponent())
isNaN():判断当前字符串是否是数字
* 如果是数字,返回false
* 如果不是数字,返回trueparseInt():类型转换
js的函数的重载
- 什么是重载?方法名相同,参数不同
- js里面是否存在重载?
(1)js里面不存在重载。
(2)但是可以通过其他方式模拟重载的效果 (通过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;
}
}