JavaScript
JavaScript是浏览器的核心脚本,Css和JavaScript都是为HTML服务的,JS是按照事件驱动的,如鼠标点击就是一个事件,事件都会对应一个事件句柄,如事件Click的句柄就是onclick,事件句柄一般以属性存在,
第一种引用JS
1 2
| <input type="button" value="hello" onclick="_JSCode" />
|
JS有一个内置对象叫Window,window.alert(“_Content”)
第二种引用
1
| <script type="text/javascript">alert("_Content")</script>
|
在脚本块的JS代码不需要事件,直接执行,按照顺序执行,脚本块可以放在任何地方
第三种引用
1 2
| <script type="text/javascript" src="js/1.js"> </script>
|
在引入时,就会之间执行JS的代码,JS标签不是自闭和的,
语法
java是右边的值赋给左边的变量,而JS是左边的变量赋给右边的值
1 2 3 4
| var i = 1; i = true; i = new Object();
|
函数
java中的函数 修饰符+返回值+方法名(参数)+方法体,返回值,方法名和参数应该是关键,java中形参和实参必须一致,返回值也得符合,而JavaScript不需要返回值类型,所有有以下两个写法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| function _Name(){ _Function_Body; }
_NAME = function(){ _FUNCTION_BODY; }
_Name(a,b)
var uu = new _NAME()
alert(uu)
<input type="button" value="hello" onclick="sayHello('jack')" />
|
当传入的参数不符合规定时,有NaN(Not a number),undfined几种情况,JS中出现方法名相同时,后面的函数会直接覆盖,JS中只靠函数名分辨函数,而不是参数,因为参数没有类型,只是一个名字
虽然函数参数没有限制了,但我们还是希望输入特定的参数
1 2 3 4 5 6 7
| function sum(a,b){ if(typeof a == "number" && typeof b == "number"){ return a + b; } alert(Warning) }
|
变量
-
全局变量的会在浏览器的内存中,局部变量只在函数周期,访问变量时是就近原则,undefined是一个值,变量依旧不能为空,当变量没有赋值默认是undefined,Undefined只有一个值就是undefined,
-
Number代表所有的数字,以及NaN,Infinity(无穷大),
-
字符串为空的时候自动转换为false,否则就是true,数字1为true,0为false,null和NaN为false,undefined是false,Infinity是true,
-
大String属于Object,小String属于是原始类型,有点像包装类
-
Object含有prototype和constructor属性,toLocaleString,toString,valueOf方法
方法就是类,类里面有个属性prototype可以扩展,例如uu.prototype.getName = function(){},这样uu对象就扩展了getName的方法,
1 2 3 4 5 6
| User = function(username, password){ this.username = username; this.password = password; } var u = new User();
|
JS常用事件
Blur click focus keydown keyup load mousedown mouseover mousemove mouseout reset select submit change
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| <input type="button value="hello" id="mybtn" />
//第二种是JS代码完成事件,documenet是内置对象 var button = document.getElementById("mybtn");
//不能加括号!!!! //onclick就是button的一个属性,这个属性类型是方法 //因为类就是方法,这里的方法不能加(),不然就会直接执行方法,onclick是属性,也是方法 button.onclick = sayHello;
//sayHello=function(){}这也是为什么不能加(); button.onclick = function(){ alert(); }
//页面加载后再执行 window.onload = ready; function ready(){ var button = document.getElementById("mybtn"); button.onclick = function(){ alert(); } //同理,只是注册,页面先全部过一遍后再执行onload window.onload=function ready(){ var button = document.getElementById("mybtn"); button.onclick = function(){ alert(); }
|
load是一种事件,加载完毕就会发生,不赋值就没有任何操作,和click一样,默认都会有这个属性,事件发生自动触发函数,函数可以再绑定另一个事件,不带括号是对象,带了就是执行函数,
下面是获取回车键值事件
1 2 3 4 5 6 7 8 9 10 11
| <input type="text" id="username" />
window.onload = function(keyNum){ if(keyNum.keyCode === 13){ alert(); } }
function sayHello()
|
下面是超链接不跳转
1 2
| <a href="javascript:void(0)" onclick="window.alert('test')">click </a>
|
javascript的数组非常厉害,就和集合一样,什么类型都可以放,还可以自动扩容
下面是遍历的代码
1 2 3 4 5 6 7 8
| for(var i in arr){ alert(arr[i]); }
with(_Object){ alert(_username) }
|