1. JavaScript数据类准换
转换为Number:根据parseInt()来转化。
转换String:任何类型加字符串即为字符串。
转换Boolean:true,false,所有非0数字为true,否则为false
Undefind / null 直接转换为false
2. JavaScript数据专递
基本数据类型采用值传递:
3. JavaScript语法 函数与事件
函数和事件通常是一种绑定关系,通过事件调用函数。如果绑定多个函数,中间用分号隔开。
l 常用事件
l Onload
l OnClick
l MouseOver 鼠标移动到指定目标上
l MouseOut 鼠标离开指定目标
l Focus 当元素获得焦点
l Blur 当元素失去焦点
l Change 1.输入内容发生改变,2.select选项发生改变
l Onkeyup 键盘案件弹起
l 常用事件
l Onload
l OnClick
l MouseOver 鼠标移动到指定目标上
l MouseOut 鼠标离开指定目标
l Focus 当元素获得焦点
l Blur 当元素失去焦点
l Change 1.输入内容发生改变,2.select选项发生改变
l Onkeyup 键盘案件弹起
4. JavaScript面向对象编程
JavaScript定义属性和方法
方法一:
function Test(){ //javascript定义属性 Test.prototype.name="zsw"; //javascript定义方法 Test.prototype.say = function(){ alert(this.name + " love hy!"); }; }
function a(){ new Test().say(); //javascript调用方法 } |
方法二:
function boy(){ //js通过this定义属性 this.name = "zsw"; this.age = 21; //js通过this定义方法 this.say = function(){ alert(this.name + " love hy!"); } };
function b(){ var _boy = new boy(); alert(_boy.name); alert(_boy.age+""); _boy.say(); }; |
总结:
定义属性,方法 1.使用prototype创建 2.使用this创建
|
5. Json的方式创建对象
var json = {name:'zsw',age:20}; alert(json.name); |
function showName(o){ alert(o.name); alert(o["name"]); }
function showObject(){ var json = "{name:'zsw',age:20}";
showName(eval("("+json+")")); } |
Json对象是可以传递的
原理:JSON可以在字符串和对象间转换。 可以通过JavaScript的eval()方法将字符串转换成对象。 |
6.动态添加属性和方法
function test1(){}; function runTest1(){ var t1 = new test1(); t1.name = "zsw"; t1.age = 21; t1.say = function(){ alert("Hello World!!!"); }; alert(t1.name); t1.say(); }; |
7.在内置对象添加属性和方法
8.Javascript面向对象中的继承
function Person(){ Person.prototype.name = "zsw"; Person.prototype.age = 21; Person.prototype.say = function(){ alert("Javascript 面向对象的继承"); }; }
function Student(){ Student.prototype.schoolName = "bdqn"; }
function TestStu(){ Student.prototype = new Person(); var s = new Student(); alert(s.schoolName); s.say(); } |
9.定义私有属性
function Person(){ Person.prototype.name = "zsw"; Person.prototype.age = 21; Person.prototype.say = function(){ alert("Javascript 面向对象的继承"); }; }
function Student(){ Student.prototype.schoolName = "bdqn"; //定义私有属性 var gfName = "hy"; }
function TestStu(){ Student.prototype = new Person(); var s = new Student(); alert(s.schoolName); s.say();
alert(s.gfName); //不可见,因为访问的私有属性
} |
10.定义静态属性
function Person(){ Person.prototype.name = "zsw"; Person.prototype.age = 21; Person.prototype.say = function(){ alert("Javascript 面向对象的继承"); }; }
function Student(){ Student.prototype.schoolName = "bdqn"; //定义私有属性 var gfName = "hy"; Student.cityName = "深圳"; }
function TestStu(){ Student.prototype = new Person(); var s = new Student(); alert(s.schoolName); s.say();
alert(s.gfName); //不可见,因为访问的私有属性
//访问静态属性 alert(Student.cityName); } |
11.Json对象
定义Json对对象,在对象中添加属性:
function jsonTest(){ var jsonObj = { name:'周尚武', sex:'男', age:21 };
alert(jsonObj.name); } |
Json添加方法:
function jsonTest(){ var jsonObj = { name:'周尚武', sex:'男', age:21, say:function(){ alert("Json对象中添加方法!"); } };
alert(jsonObj.name); jsonObj.say(); } |
Json添加子对象:
function jsonTest(){ var jsonObj = { name:'周尚武', sex:'男', age:21, say:function(){ alert("Json对象中添加方法!"); } };
alert(jsonObj.name); jsonObj.say();
var jsonArray = ["A","B","C"]; alert(jsonArray[0]); } |
在此复习一下静态方法
function test(){ test.prototype.name="huangyi"; test.cityName="深圳"; } function T(){ alert(test.cityName); //将输出undefined } |
以上调用test.cityName必须先把test实例化一下:
function test(){ test.prototype.name="huangyi"; test.cityName="深圳"; } function T(){ new test(); alert(test.cityName); } |
总结:
Javascript面向对象和所有面向对象编程语言一样,都是通过实例化的方式进行访问,两个对象间的非静态变量不会被干扰。 JSON中,属性可以是方法,甚至可以是一个子对象。 使用静态变量,需要实例化一下function,告诉浏览器它不是函数,而是对象。
|
12.方法覆盖
function test(){ test.prototype.name = "zsw"; test.prototype.age = 21; test.prototype.say=function(){ alert("Hello World!"); } }
function T(){ var t = new test(); t.say = function(){ alert("你好!"); } t.say(); } |
13.重写window.alert();提示框
<script type="text/javascript"> function run(){ window.alert = function(s){ var o = document.getElementById("Layer1"); o.innerHTML = "<input name='button' type='button' οnclick='closeWin()' value='关闭' />"+s; o.style.display = "block"; }
window.show = function(s){ alert(s); }
show('zsw love hy!!'); }
function closeWin(){ var o = document.getElementById("Layer1"); o.style.display = "none"; } </script> <style type="text/css"> <!-- #Layer1 { position:absolute; left:341px; top:168px; width:296px; height:142px; z-index:1; color:#FFFFFF; display:none; background-color:#00CC99; } --> </style> </head>
<body> <div id="Layer1">
</div> <input type="button" value="点击" οnclick="run()" /> </body>
|
补充:javascript复制继承法
- <mce:script type="text/javascript"><!--
- function dw(s){
- alert(s);
- }
- Function.prototype.extend_p = function(obj){
- for(var i in obj){
- this.prototype[i] = obj[i];
- }
- }
- Person = function(){
- this.name = "accp";
- this.setName = function(obj){
- this.name = obj;
- }
- this.getName = function(){
- return this.name;
- }
- }
- Student = function(){
- }
- Student.extend_p(new Person());
- var s = new Student();
- s.setName('黄翊');
- dw(s.getName());
- // --></mce:script>
Javascript 原始继承法
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
- <title>javascript原始继承法</title>
- <mce:script type="text/javascript"><!--
- function ds(s){
- alert(s);
- }
- Person = function(){
- this.name = "hy";
- this.setName = function(obj){
- this.name = obj;
- }
- this.getName = function(){
- return this.name;
- }
- }
- Student = function(){
- this.stuNo = "0001";
- }
- Student.prototype = new Person();
- var stu = new Student();
- stu.setName('黄翊');
- alert("名字:"+stu.getName());
- alert("编号:"+stu.stuNo);
- // --></mce:script>
- </head>
- <body>
- </body>
- </html>