javascript高级学习笔记整理

首页 > 网络编程 > JavaScript > javascript技巧 更新日期: 2015-10-18
打算做一个js面向对象的贪吃蛇,但是最终是流产了,整理了下废弃的代码,回顾了下PPT.想学习js面向对象的朋友也可以参考下。
一.js面向对象的一种实现
代码如下:

<script type="text/javascript">
function Person() {
this.name = "张三";
this.age = 0;
var nickName = "小三"; //类似私有变量,函数中的局部变量在函数执行完后自动销毁.
this.SayHi = function () {
alert("我的名字是" + this.name + " ,大家都叫我" + nickName + " ,我今年已经" + this.age + "岁了");
}
}
/////////////////////////
function Student(myclass, myteacher) {
this.myClass = myclass;
this.myTeacher = myteacher;
this.SayHi = function () {
if (this.myClass != undefined) {
alert("我是"+this.myClass+"的"+this.name);
}
else if (arguments.length == 2) {
alert("我是" + this.myClass + "的" + this.name + ", 我的老师是" + this.myTeacher);
}
else {
new Person().SayHi();
}
}
}
Student.prototype = new Person(); //创建继承关系
//////////////
onload = function () {
var p = new Person(); //类似实例化类Person,对象的创建(解析两次)并不是推荐用法
p.age = 18; //给Person的age赋值, age相当于属性
p.SayHi(); //调用Person里的公共方法,输出结果:我的名字是张三 ,大家都叫我小三 ,我今年已经18岁了!
var stu = new Student('三年级二班', 'jameszou'); //有参构造函数
stu.name = 'le'; //父类的属性
stu.SayHi(); //Student重写了SayHi方法
var stu1 = new Student();
stu1.myClass = '三年级三班';
stu1.myTeacher = 'ly';
stu1.SayHi(); //输出:我是三年级三班的张三"
var stu2 = new Student();
stu2.age = 20;
stu2.SayHi();//输出:?:我的名字是张三,大家都叫我小三,我今年0岁了
}
</script>

二.6种简单数据类型:
1)Undefined.一个变量被定义但是没有给他赋值.
2)Null.(引用类型)
3)Number.数值类型
var num = 1.0这个时候num是int类型,只有当小数点后面不为0的时候才是浮点型,
isNaN()可以判断传人的值是否为Number类型,
var num = parseInt('112412aaa11'); num=112412;
4)Boolean.
5)String
6)function
Function类型:
执行环境:就是当前函数(方法)所处在的父环境。比如在window下执行的函数他的执行环境就是window。
没有块级作用域:if等语句没有用块状作用域,if,for等用大括号括起来的代码并不能形成一个块状作用域。
var变量声明:用var声明变量时,会他把添加到最近的可用环境,即不用var定义的一个变量是全局变量.
声明语句会首先执行,以保证程序的运行.
垃圾回收:变量对象设为null的时候原对象将被自动回收.
属性:
this.函数所在的执行环境,函数在执行时所处的作用域.
prototype(原型).
三.复杂类型
Object:
Object类型本质是一个无序的键值对列表,类似于集合,json格式。
创建Object可以有多种方式:
1)var obj = new Object(); obj.name="lz"; obj.age=17;
2)var s = {}; s.name="ly"; s.age=18;
3)var s = {"name":"ln","age":"17"};
访问Object对象的属性的方法:
1)obj.name
2)obj["name"]
Array类型:
相当于List<T>,length属性是可读写的(可以利用这一点删除数组元素)
数组的栈方法:(后进先出)
push() 往里加 pop() 从栈头往外拿
数组的队列方法:(先进先出)
shift() 从队列尾部往外拿 unshift() 从队列尾部往里加
排序:
sort() 排正序,将数组中的数据按照一定的顺序排列,参数可以传递一个可传入比较方法(类似于接口) reverse() 翻转
连接数组: concat()
var colors=["a","b"];
var newcolor=colors.concat("yellow",["c","d"]);//colors有5个元素。
concate方法中若传入数组,会把该数组拆分,将其中元素加入目标数组中。若传入json格式数据,一个json数据就看成一个元素加入数组。
四.其他
typeof: return true or false,
instanceof 判断复杂类型的类型 return true or false,如果用它来判断值基本类型类型永远返回false,
eval()他会把eval()中的参数解析出来,插入到eval执行的位置,效果相当于在相应的位置直接写入JS代码

> 本站内容系网友提交或本网编辑转载,其目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请及时与本网联系,我们将在第一时间删除内容!

相关文章
  • prototype学习笔记整理
    prototype 学习笔记整理,学习prototype的朋友可以参考下.var Class = { create: function() { return function() { this.initialize.apply(this, arguments); } } } 定义了一个class函数作为创建类的模版或者说是原型 使用方法 代码如下: < ...
  • DWRutil.js学习笔记整理
    util.js包含一些有用的函数function,用于在客户端页面调用,它可以和dwr分开,独立营用于你的系统中. 主要功能如下: 1.$() 获得页面参数值 2.addOptions and removeAllOptions 初始化下拉框 3.addRows and removeAllRows  填充表格 4.getText  取得text属性值 5.ge ...
  • javascript高级程序设计(第三版)学习笔记一正则表达式整理
    javascript高级程序设计 正则表达式整理,想学习js正则表达式的朋友可以参考下1.创建正则表达式 第一种方式:注意这里的正则表达式不能使用单引号或者双引号,如下 var pattern1 = /[abc]/i; // 匹配第一个"a"或"b"或"c",不区分大小写 第二种方式:使用RegEx ...
  • awk简介与学习笔记收集第1/3页
    Awk学习笔记 整理:Jims of 肥肥世家 <[email protected]>Copyright © 2004 本文遵从GPL协议,欢迎转载.修改.散布. 第一次发布时间:2004年8月6日 ------------------------------------------------------------------------ ...
  • JavaScript高级程序设计第3版学习笔记6初识js对象
    砌好墙,下面出场的就是房子了,在ECMAScript中,对象就是我们所说的房子,至于你所写的整个应用程序,那就是一整套建筑群了在房子里面可以放你想放的任意事物--如果你有足够的美学造诣,你甚至可以弄一个房中房试试--当然,为了方便管理,我们会给房子里存放的所有事物都会取上一个不重复的名字,比如医药房间里的各种药品名称.在ECMAScript中,你可以在对象中 ...
  • JavaScript高级程序设计第3版学习笔记概述
    在JavaScript面世之初,没有人会想到它会被应用的如此广泛,也远比一般人想象中的要复杂强大的多,在我自己学习的过程中,曾经有过多次震撼在JavaScript面世之初,没有人会想到它会被应用的如此广泛,也远比一般人想象中的要复杂强大的多,在我自己学习的过程中,曾经有过多次震撼,只是常常没有过多久,很多美轮美奂的用法就又模糊起来,希望通过对JavaScri ...
猜你喜欢