第七次网页前端培训(JavaScript)

1内置对象

        Arguments 只在函数内部定义,保存了函数的实参

        Array          数组对象

        Date          日期对象,用来创建和获取日期

        Math          数学对象

        String         字符串对象,提供对字符串的一系列操作

1.1String

        charAt(index):返回指定位置字符

        indexOf(chr):返回指定字符串位置,从左到右,找不到-1.

        substr(m,n):从m,取n个字符,n不写,取到最后

        substring(m,n):从m,取到第n个位置(左闭右开)

        toLowerCase()、toUpperCase():转小写,转大写

        length:属性,非方法,返回字符串长度

1.2Math

        Math.random():随机数

        Math.ceil():向上取整,1.3-2

        Math.floor():向下取整,1.3-1

1.3Date

获取日期

        getFullYear():年

        getMonth():月(0-11)

        getDate():日

        getHours():时

        getMinutes():分

        getSeconds():秒

设置日期

        setYear(),setMonth(),setDate(),setHours(),setMinutes(),setSeconds(),toLoacaleString()转换成当地时间字符串

    <script type="text/javascript">
			var str = "hello world";
			console.log(str);
			console.log(str.substring(3));
			console.log(str.substring(3,5));
			
			console.log(str.toLowerCase());
			console.log(str.toUpperCase());
			
			console.log(Math.random());
			console.log(Math.ceil(1.2));
			console.log(Math.floor(1.2));
			
			var date = new Date();
			console.log(date);
			console.log(date.getFullYear());
			console.log(date.getMonth()+1);
			console.log(date.getDate());
			console.log(date.getHours());
			console.log(date.getMinutes());
			console.log(date.getSeconds());
		
			var second1 = (date.getSeconds()>10)?date.getSeconds():"0"+date.getSeconds();
			var datestr = date.getFullYear() + "-" + (date.getMonth()+1) + "-" + date.getDate() + " " + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds();
			console.log(datestr);
			console.log(date.toLocaleString());
		</script>

2对象

        对象是js的核心概念,也是重要数据类型。js所有数据都可视为对象,对象在js中是json格式

        {键:值,

        键:值}

2.1对象的创建

        1字面量形式创建(用的最多)

                var 对象名 = {}

                var 对象名 = {
                                键:值}

        2通过new Object对象创建

                var 对象名 = new Object()空对象

        3通过Object对象的create方法创建

                var 对象名 = Object.create(null)

                var 对象名 = Object.create(对象)

			var obj1 = {};
			console.log(obj1);
			var obj2 = {
				name: "zhangsan",
				age: 18
			}
			console.log(obj2);
			var obj3 = new Object();
			console.log(obj3);
			var obj4 = Object.create(null);
			console.log(obj4);
			var obj5 = Object.create(obj2);
			console.log(obj5);

        对象的操作

                获取对象属性(如不存在,null)

                对象名.属性名(取)

                对象名.属性名 =  值(存在则修改,不存在创建)

2.2对象的序列化与反序列化

        序列化:对象(json对象)转字符串(json字符串);反序列化:字符串转对象

        序列化:var 变量名 = JSON.stringify(object);

        反序列化:var 对象名 = JSON.parse(json字符串)

			var obj = {
				name:"zhangsan",
				pwd:"123456",
				age:19
			}
			console.log(obj);
			var oobj = JSON.stringify(obj);
			console.log(oobj);
			
			var objj = '{"name":"zhangsan","pwd":"123456","age":19}';
			console.log(objj);
			var oobjj = JSON.parse(objj);
			console.log(oobjj);

        注:当字符串转为对象时,需要将键打上""

2.3this(关键字)

        用在函数,谁调用函数,this就是谁 

                1直接调用:this是window对象

                2调用对象中的函数,this是对象

			function text(){
				console.log("这是一个测试方法...");
				console.log(this);
			}
			text();
			var o = {
				name:"zhangsan",
				age: 18,
				sayHello:function(){
					console.log("你好啊~")
					console.log(this)
				}
			}
			o.sayHello();

 

3事件

        有了事件,才使页面有了交互,点击是事件。

        作用:验证数据;增加页面动态效果;增强用户体验度 

        相关名词:事件源(谁触发的事件),事件名(触发了什么事件),事件监听(谁管这个事情,谁监视),事件处理(发生了怎么办)

        onload事件:当文档加载完毕后执行

        onclick事件:点击事件
 

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
	</head>
	<body onload="loadWindow()">
		<button onclick="text()">按钮</button>
		
	</body>
	<script type="text/javascript">
		function loadWindow(){
			console.log("文档加载完毕...");
		}
		function text(){
			console.log("按钮被点击了...");
		}
	</script>
</html>

3.1事件类型(鼠标事件,键盘事件,HTML事件)

        Window事件属性:针对window对象触发的事件(<body>内)

        表单事件(Form事件),键盘事件(Keyboard事件),鼠标事件(Mouse事件),由媒体触发的事件(Media事件)

        常用事件:onclick点击,元素失去焦点onblur,获得焦点onfocus,onload,onchange用户改变域的内容(常用下拉框),onmouseover当鼠标悬停,onmouseout当鼠标离开,onkeyup,onkeydown

        事件流:一个事件发生,向其他地方传播

                事件冒泡(IE):从小到大,事件开始由最具体元素接受,逐级向上到不具体的节点(文档)

                事件捕获:从大到小,事件开始由文档节点接受,逐级向下到具体的节点

3.2事件处理程序(事件绑定方式)

        事件就是用户或浏览器自身执行的某种动作。例如click、load和mouseover都是事件的名字,而响应某个事件的函数就叫做事件处理程序((或事件侦听器)。事件处理程序的名字以"on"开头,因此 click事件的事件处理程序就是onclick,为事件指定处理程序的方式有好几种。

        1HTML事件处理程序

                直接在HTML元素上绑定

<input type="button" value="Press me" onclick="alert'thanks';"/>

                这样做有一些缺点,例如耦合度过高,还可能存在时差问题(当用户点击按钮时,处理函数还末加载到,此时
 处理函数是单独写的一段JS代码),而且在不同的浏览器上可能会有不同的效果。
 
 通过 JavaScript指定事件处理程序的传统方式,就是将一个函数赋值给一个事件处理程序属性。这种方式被所
 有现代浏览器所支持。这种方式首先必须取得一个要操作的对象的引用,每个元素都有自己的事件处理程序属性,
 这些属性通常全都小写,例如 onclick,然后将这种属性的值设为一个函数,就可以指定事件处理程序了。例如:

         2DOM0级事件

        通过 JavaScript指定事件处理程序的传统方式,就是将一个函数赋值给一个事件处理程序属性。这种方式被所有现代浏览器所支持。这种方式首先必须取得一个要操作的对象的引用,每个元素都有自己的事件处理程序属性,这些属性通常全都小写,例如 onclick,然后将这种属性的值设为一个函数,就可以指定事件处理程序了。例如:

<body>
    <button id="myBtn">按钮</button>
    <script type="text/javascript">
        var btn = document.getElementById('myBtn');
		btn.onclick = function(){
			console.log('you click a button');
		}
	</script>
</body>

         以这种方式添加的事件处理程序会在事件流的冒泡阶段被处理。而且,只能为同一个元素的同一个事件设定一个处理程序(覆盖),也可以通过删除DOMO级方法指定的事件处理程序,只要将属性值设为null即可:

btn.onclick = null;

         3DOM2级事件(可以绑定同一个类型多次)

        "DOM2级事件”定义了两个方法,用于处理指定和删除事件处理程序的作: addEventListener()和removeEventListener().所有DOM节点都包含这两个方法,并且他们都接受3个参数:要处理的事件名、作为事件处理程序的函数和一个布尔值。最后这个布尔值参数如果是true,则表示在捕获阶段调用事件处理程序;如果是false则表示在冒泡阶段调用事件处理程序。

		<button type="button" id = "btn3">按键2</button>
var btn2 = document.getElementById("btn3")
			btn2.addEventListener("click",function(){
				console.log("aa")
			},false)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值