JavaScript
JavaScript是一种运用于 JavaScript解释器或引擎中的解释型脚本语言。
js脚本嵌入html执行的步骤
1.将js代码嵌入在元素“事件”中 (行内js)
onclick:当单击元素所做的操作
<div id ="" onclick="js代码" > 文字 </div>
2.将js代码嵌入在< script>标记中(内嵌js)
< script>< /script>:允许出现网页的任意位置处
<script>
document.write('<b>欢迎</b>');
console.log('脚本执行结束');
</script>
3.将js代码嵌入在外部脚本文件中(**.js)
创建js文件,编写js文件,在页面中引入js文件
<script src="js文件路径">< /script>
注意:在第三种方法中,不允许出现任何js代码内容,大小写敏感
js组成
1.ECMAScript:基础语法
< script>
var a= [1,2];
var sum = 0;
for(var i = 0;i <a.length ;i++){sum+=a[i];}
document.write(sum);
</script>
2.DOM(文档对象模型): js有能力与网页进行对话
<body>
<p id="change">改变字号</p>
<button onclick="document.getElementById('change').style.fontSize='24px'">点击改变字号</button>
</body>
3.BOM(浏览器对象模型): js有能力有浏览器进行对话
< script>
function load()
{
window.open('http://www.baidu.com','_blank','width=600,height=200,top=100px,left=0px')
}
</script>
<body>
<button onclick="load()">百度</button>
</body>
变量
1.变量语法:(注意:var不可省略,否则声明将变成全局变量)
声明: var 变量名; 赋值: 变量名=值 ;
var 变量名1,变量名2…;
变量声明后,从未赋值,称之为未经初始化变量,变量未被定义,直接打印或使用结果错误。
var stuName="小猪";
console.log(stuName); //输出小猪
2.变量的使用
(1)获取变量的值----GET操作
var userpsd='123';
console.log(userpwd);
document.write(userpwd);
var newpwd= userpwd;
(2)保存设置变量的值----SET操作
var oldpwd='124';
oldpwd='128';
oldpwd=newpwd;
数据类型
1.数据类型:
原始数据类型(基本数据类型):数字、字符串、布尔、空、未定义
注意:字符串类型与任何类型结合均变成字符串类型
引用数据类型:
强制转换:
(1)变量.tostring()
(2)integer 语法:var result = parseInt(数据);
(3)parseFloat语法:var result = parseFloat(数据);
(4)number语法:var result = number(数据);
函数
1.定义函数
function 函数名(形式参数){
可执行语句;
console.log(“语句”); //控制台输出语句
return 值; // 带返回值的函数
}
2.调用函数
var 变量 = 函数名(实际参数 );
3.作用域:变量或函数的可访问范围
4.函数作用域的变量(局部变量):只能在当前函数中可用
5.按值传递:
数组
1.创建数组(2种方法)
var arr = [ ];
var arr = new Array();
2.关联数组 :只能用for in循环
var bookInfo = [];
bookInfo[‘bookName’] = ‘中国’;
bookInfo[‘price’] = 35.6;`
for (var in hash){
key//只是元素的下标名
hash[key]//当前元素值
}
1.数组转字符串
String(arr):将arr中每个元素转为字符串。逗号分割
arr.join(“连接符”):将arr中每个元素转为字符串,用自定义连接符分隔
2.拼接和选取:不直接修改原数组,而返回新数组
var new Arr = arr.concat(值1,值2,arr2,…) //拼接
var subArr = arr.slice(starti,endi+1) //选取,含头不含尾
3.修改数组:var deles = arr.splice(starti,n ); //不考虑含头不含尾
4.颠倒数组:arr.reverse(); //仅负责数组颠倒,不负责排序
5.排序数组:arr.sort(); //默认将所有元素转为字符串再排列
DOM:对网页增删改查的操作
DOM:查找
- 按ID属性,精确查找一个元素对象:
var elem = document.getElenmentByid("id");
var ul = document.getElenmentByid("mylist");
2.按标签查找:查找指定parent节点下所有标签为tag的子节点
var elems = parent.getElenmentByTagName("tag");
var ul = document.getElenmentByid("mylist");
var list = ul.getElenmentByTagName("li");
3.通过name属性查找
var elem = document.getElenmentByName("name属性值");
//可以返回dom中具有name属性值的所有子元素集合
4.通过class查找:查找指定父类下的class属性的元素
var elems = parent.getElenmentByClassName("class"); //具有兼容性问题
var div = document.getElenmentByid("mylist");
var list = div.getElenmentByClassName("title");
5.通过css选择器查找
(1) 只查找一个元素: 如果选择器匹配多个,只返回第一个
var elem = parent.querySelector("Selector");
(2)找多个 :返回非动态集合
var elem = parent.querySelectorAll("Selector");
DOM:修改
1.修改属性
修改样式
DOM:添加
1.添加元素的步骤:
(1)创建空元素
var elem = document.creatElement(“元素名”)
var tr = document.creatElement("tr");
2.设置关键属性和关键样式
(1)设置关键属性
a.innerHTML = "go to tmooc"
a.herf = "http://tmooc.cn"
<a herf = "http://tmooc.cn">go to tmooc</a>
(2)关键样式
a.style.opacity = "1";
a.style.cssText = "width:100px; height:100px;"
3.将元素添加到DOM树
(1) parentNode.appendChild(childNode) (可用于将一个父元素追加最后一个子节点)
var div = document.creatElement("div");
var txt = document.creatTextNode("文字");
div.appendChild(txt);
document.body.appendChild(div);
(2)parentNode.insertBefore(newChild,existingChlid) (可用于将父元素中指定子节点添加一个新的子节点)
<ul id ="mu">
<li>首页</li>
</ul>
var ul = document.getElementById('mu');
var newli = document.creatElement("li");
ul.insertBefore(newli,ul.lastChild);
添加元素优化
BOM:
1.浏览器对象模型
获取当前窗口的大小
2.定时器
(1)周期型定时器:让程序指定时间间隔反复自动执行一项任务
1.给定时器取名
var timer = setInterval(function(){
console.log("hello");
},1000);
2.停止定时器
clearInterval(timer);
(2)一次型定时器:让程序延迟一段时间执行
setTimeout(function(){
alert("hello");
},1000);