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 相关文章推荐
jquery插件珍藏(图片局部放大/信息提示框)
Jan 08 Javascript
javascript实现全角与半角字符的转换
Jan 07 Javascript
Jquery ajax基础教程
Nov 20 Javascript
jquery输入数字随机抽奖特效的简单实现代码
Jun 10 Javascript
Bootstrap弹出带合法性检查的登录框实例代码【推荐】
Jun 23 Javascript
AngularJS入门教程之表格实例详解
Jul 27 Javascript
jquery实现图片切换代码
Oct 13 Javascript
一个炫酷的Bootstrap导航菜单
Dec 28 Javascript
jquery网页加载进度条的实现
Jun 01 jQuery
vue项目中api接口管理总结
Apr 20 Javascript
微信小程序非swiper组件实现的自定义伪3D轮播图效果示例
Dec 11 Javascript
jQuery实现ajax的嵌套请求案例分析
Feb 16 jQuery
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删除数组元素示例分享
2014/02/17 PHP
CodeIgniter配置之autoload.php自动加载用法分析
2016/01/20 PHP
PHP生成图片验证码功能示例
2017/01/12 PHP
Laravel统计一段时间间隔的数据方法
2019/10/09 PHP
javascript高级学习笔记整理
2011/08/14 Javascript
js函数调用常用方法详解
2012/12/03 Javascript
jQuery调用AJAX时Get和post公用的乱码解决方法实例说明
2013/06/04 Javascript
jquery通过visible来判断标签是否显示或隐藏
2014/05/08 Javascript
动态读取JSON解析键值对的方法
2014/06/03 Javascript
超链接的禁用属性Disabled使用示例
2014/07/31 Javascript
JavaScript比较两个对象是否相等的方法
2015/02/06 Javascript
在Mac OS下使用Node.js的简单教程
2015/06/24 Javascript
基于Jquery easyui 选中特定的tab
2015/11/17 Javascript
javascript中Date format(js日期格式化)方法小结
2015/12/17 Javascript
详解JS中Array对象扩展与String对象扩展
2016/01/07 Javascript
Bootstrap3多级下拉菜单
2017/02/24 Javascript
Element input树型下拉框的实现代码
2018/12/21 Javascript
nodejs中方法和模块用法示例
2018/12/24 NodeJs
微信小程序在其他页面监听globalData中值的变化
2019/07/15 Javascript
Node.js系列之连接DB的方法(3)
2019/08/30 Javascript
react native 仿微信聊天室实例代码
2019/09/17 Javascript
Vue+elementui 实现复杂表头和动态增加列的二维表格功能
2019/09/23 Javascript
python基础教程之Hello World!
2014/08/29 Python
Python实现抓取百度搜索结果页的网站标题信息
2015/01/22 Python
pandas通过loc生成新的列方法
2018/11/28 Python
windows下搭建python scrapy爬虫框架步骤
2018/12/23 Python
Pandas统计重复的列里面的值方法
2019/01/30 Python
Python3 webservice接口测试代码详解
2020/06/23 Python
使用gunicorn部署django项目的问题
2020/12/30 Python
HTML5中meta属性的使用方法
2016/02/29 HTML / CSS
团员的自我评价
2013/12/01 职场文书
计算机专业学生求职信分享
2013/12/15 职场文书
物流专业大学的自我评价
2014/01/11 职场文书
教师先进个人材料
2014/12/17 职场文书
2015小学语文教师个人工作总结
2015/05/20 职场文书
婚宴致辞
2015/07/28 职场文书