javascript高级学习笔记整理


Posted in Javascript onAugust 14, 2011

一.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代码

Javascript 相关文章推荐
javascript之ESC(第二类混淆)
May 06 Javascript
JavaScript 未结束的字符串常量常见解决方法
Jan 24 Javascript
js对列表中第一个值处理与jsp页面对列表中第一个值处理的区别详解
Nov 05 Javascript
Node.js中使用mongoskin操作mongoDB实例
Sep 28 Javascript
JS折半插入排序算法实例
Dec 02 Javascript
jQuery实现响应鼠标事件的图片透明效果【附demo源码下载】
Jun 16 Javascript
浅谈jquery上下滑动的注意事项
Oct 13 Javascript
BootStrap学习笔记之nav导航栏和面包屑导航
Jan 03 Javascript
JS实现延迟隐藏功能的方法(类似QQ头像鼠标放上展示信息)
Dec 28 Javascript
JS实现的小火箭发射动画效果示例
Dec 08 Javascript
Jquery实现无缝向上循环滚动列表的特效
Feb 13 jQuery
微信小程序实现收货地址左滑删除
Nov 18 Javascript
jquery获得下拉框值的代码
Aug 13 #Javascript
Jquery中对数组的操作代码
Aug 12 #Javascript
基于jQuery的星级评分插件
Aug 12 #Javascript
基于jQuery的投票系统显示结果插件
Aug 12 #Javascript
JavaScript中的View-Model使用介绍
Aug 11 #Javascript
仿jQuery的siblings效果的js代码
Aug 09 #Javascript
html中table数据排序的js代码
Aug 09 #Javascript
You might like
php 模拟POST|GET操作实现代码
2010/07/20 PHP
apache中为php 设置虚拟目录
2014/12/17 PHP
PHP比较运算符的详细介绍
2015/09/29 PHP
YII使用url组件美化管理的方法
2015/12/28 PHP
浅谈PHP发送HTTP请求的几种方式
2017/07/25 PHP
Yii2框架中一些折磨人的坑
2019/12/15 PHP
extjs grid取到数据而不显示的解决
2008/12/29 Javascript
JQuery与Ajax常用代码实现对比
2009/10/03 Javascript
jQuery MD5加密实现代码
2010/03/15 Javascript
jquery 循环显示div的示例代码
2013/10/18 Javascript
JS随机漂浮广告代码具体实例
2013/11/19 Javascript
extjs4 treepanel动态改变行高度示例
2013/12/17 Javascript
通过js为元素添加多项样式,浏览器全兼容写法
2014/08/30 Javascript
JS获取当前脚本文件的绝对路径
2016/03/02 Javascript
javascript原生ajax写法分享
2016/04/10 Javascript
详细谈谈javascript的对象
2016/07/31 Javascript
原生Javascript和jQuery做轮播图简单例子
2016/10/11 Javascript
JavaScript 数组的深度复制解析
2016/11/02 Javascript
Bootstrap fileinput组件封装及使用详解
2017/03/10 Javascript
Angularjs 事件指令详细整理
2017/07/27 Javascript
原生JS实现简单的倒计时功能示例
2018/08/30 Javascript
[46:10]2014 DOTA2国际邀请赛中国区预选赛 CnB VS HGT
2014/05/21 DOTA
两个使用Python脚本操作文件的小示例分享
2015/08/27 Python
Python 装饰器深入理解
2017/03/16 Python
解决python "No module named pip" 的问题
2018/10/13 Python
学习python的前途 python挣钱
2019/02/27 Python
Python进阶:生成器 懒人版本的迭代器详解
2019/06/29 Python
Python使用sqlite3模块内置数据库
2020/05/07 Python
Keras设置以及获取权重的实现
2020/06/19 Python
pytorch 限制GPU使用效率详解(计算效率)
2020/06/27 Python
CAT鞋加拿大官网:CAT Footwear加拿大
2020/08/05 全球购物
应届大学生自荐信格式
2013/09/21 职场文书
消防战士优秀事迹材料
2014/02/13 职场文书
《争吵》教学反思
2014/02/15 职场文书
和解协议书
2014/04/16 职场文书
详解CocosCreator消息分发机制
2021/04/16 Javascript