1、JavaScript简介
一、什么是JavaScript
- Javascript:基于对象和事件驱动的语言,应用于客户端
二、JavaScript特点
三、Java和JavaScript区别
- 不同公司开发的,是不用的语言
- Java是面向对象 ,js是基于对象的
- java是强类型的语言,js是弱类型的语言
- java需要先编译成字节码文件再执行;js只需要解析就可以执行
四、JavaScript组成部分
- ECMScript
- ECMA:欧洲计算机协会
- 由ECMA组织指定的js的语法,语句等
- BOM
- brower object model:浏览器对象模型
- DOM
- document objct model:文档对象模型
五、JavaScript和HTML的2种结合方式★★★
-
使用一个标签
<script type="text/javascript"> //js代码,例如: alert("弹窗"); </script>
-
<script type="text/javascript" src="1.js"> </script>
六、JavaScript的原始类型和声明变量
-
原始类型
- string(字符串),
- number(数字类型),
- boolean(true和false)
- null:获取对象的引用,null表示对象引用为空,所有对象的引用也是Object
- undifined:定义一个未赋值的变量
-
声明变量:都用var
<script type="text/javascript"> var str = "abc";//string var mm = 123;//number var flag = true;//boolean var date = new Data();//null var x;//undifined alert(typeof(str)); </script>
-
查看变量类型:typeof(变量名)
七、JavaScript语句
-
if 判断语句:同java中的if-else语句
-
switch语句
switch(a){ case:1 alert("2"); break; case:2 alert("2"); break; default: alert("other"); break; }
- 区别于java,js中switch支持所有的原始类型
-
循环语句(for,while)
while(i>1){ alert(i); i--; } for(var m=0; m<=5; m++){ alert(m); }
八、JavaScript运算符
- 基本操作和java相同,以下为不同的地方:
document.write("aaaa");
document.write("<br/>");
九、JavaScript的数组★★★
-
三种定义方式★★★★★
var arr = [1,2,“3”,true];//可以存放不同的数据类型 var arr1 = new Array(5);//使用内置对象Array对象,未存放数据 var arr2 = new Array(6,7,8);//使用内置对象Array,并存入六个元素6,7,8
十、JavaScript的函数
- 三种定义方式
-
使用到关键字function
function 方法名(参数名称1,参数名称2,...) { 方法体; 【返回值;】 }
-
匿名函数
var add1 = function(参数名称1,参数名称2,...){ 方法体; }
-
使用到js里面的内置对象:Function
-
var add2 = new Function("参数名称1,参数名称2,...",“方法体和返回值”);
- 方法的重载:★面试题★
-
但是可以通过用arguments数组实现模拟重载
function add(){//所有传入的参数都会存到arguments数组中 if(arguments.length==2)//传入参数为2个 return arguments[0]+arguments[1]; else if(arguments.length==3)//传入参数为3个 return arguments[0]+arguments[1]+arguments[2]; else return 0; } add(1,2); //3 add(1,3); //6 add(1,3,4); //0
十一、JavaScript的全局变量和局部变量
十二、Script标签的位置
- 一般放在</body>后面,以免产生对象为空的错误。因为:浏览器是顺序解析,可能还未解析到js中所使用的对象的那一行
2、JavaScript常见对象
注:最重要的不是记住这些对象的方法,而是学会查阅文档√√√√
一、string对象
-
方法 解释 bold() 加粗字符串 fontcolor(“red”) 字符串颜色 fontsize(1-7) 字体大小 link(1.html) 将字符串设置为超链接到1.html sub()、sup() 设置为下标、上标 -
与java相似的方法
方法 解释 str1.concat(str2) 字符串连接 charAt(i) 返回指定位置的字符 indexOf(“a”) 返回a所在位置 split(",") 根据逗号“,”切分字符串,并返回一个字符数组 replace(“a”,“A”) 替换 substr(5,3) 从5开始向后截取三个字符 substring(3,5) 截取[3,5)的字符
二、Array对象
-
创建数组:参考上文(三种方法)
-
常用方法:
方法 解释 concat() 拼接 join(“-”) 用“-”分割数组的每个元素(默认使用的是逗号) push() 向数组末尾添加元素,返回新长度(添加数组时,数组整体也会被当做一个元素,长度也是+1,遍历的时候也是作为一个元素) pop() 删除最后一个元素,返回删除的元素 reverse() 反转
三、Date对象
-
获取当前时间:var date = new Date(); //Fri Apr 17 10:40:46 UTC+0800 2016
-
转换为习惯的格式:date.toLocaleString();
-
常用方法:
方法 解释 getFullYear() 年 getMonth()+ 1 月(范围是0-11) getDate() 日 getDay() 星期几(0-6:周天到周六) getHours()、
getMinutes()、
getSecond()时分秒 getTime() 1970-1-1至今的毫秒数
可以用于处理缓存
四、Math对象
五、全局函数
-
常用方法:
方法 解释 eval(str) 如果字符串中有js代码,就按照js代码执行 encodeURI()
decodeURI()对字符进行编码/解码 encodeURIComponent()
decodeURIComponent()同上 isNaN() 是数字返回false,不是数字返回true parseInt() 字符串—>整数
3、JavaScript中的bom和dom对象
一、bom对象
-
bom:broswer object model(浏览器对象模型)
-
对象 解释 常用属性 常用方法 navigator 获取客户机(浏览器)信息 appName screen 屏幕信息 width
lengthlocation 请求URL地址 href:获取/设置请求的URL地址 history 请求过的URL地址 back()
forward()
go(-1or1) -
window对象的方法★★★
方法 | 解释 |
---|---|
alter() | 弹窗 |
confirm()★ | 确认提示框,返回值为true和false |
prompt(显示提示内容,输入框默认值) | |
open(URL,name,features)★ | |
close() | 关闭窗口提示, |
【笔试】setInterval(“js代码”,毫秒数)★ | 每隔X毫秒就执行一次js代码 |
【笔试】setTimeout(“js代码”,毫秒数)★ | 在X毫秒之后执行js代码 |
clearInterval(id)★ | 清除setInterval设置的定时器(定时器会返回id值) |
clearTimeout(id)★ | 清除setTimeout设置的定时器(定时器会返回id值) |
二、dom对象
- dom:document object model(文档对象模型)
-
dom解析html的原理:
根据html的层级结构,会在内存中分配一个树形结构 -
DHTML
- document对象
常用方法 | 解释 | 举例 |
---|---|---|
write() | 向页面输出内容或HTML代码 | |
getElementById()★★★ | 通过标签id得到标签对象 | 得到标签对象后可以通过属性输出或设置相应的值 |
getElementsByName()★ | 返回所有和name值相同的标签对象的数组 | |
getElementsByTagName()★ | 返回所有和标签名相同的标签对象的数组 |
- element对象
-
element对象中的常用方法:
-
补充:获取列表标签下的子列表标签:唯一有效方法是getElementsByTagName()
<ul id="ulid1"> <li>aaaa</li> <li>bbbb</li> <li>cccc</li> </ul> <spript type="text/javaspript"> var ull1 = document.getElementById("uliid1"); var lis = ull1.childNode;//返回element对象ull1下子类标签的数组(Node对象中的方法,兼容性差) var lis1 = ull1.getElementsByTagName("li");//唯一有效方法 </spript>
- Node对象