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 相关文章推荐
Prototype Hash对象 学习
Jul 19 Javascript
javascript函数作用域学习示例(js作用域)
Jan 13 Javascript
node.js解决获取图片真实文件类型的问题
Dec 20 Javascript
cocos2dx骨骼动画Armature源码剖析(三)
Sep 08 Javascript
JavaScript中对JSON对象的基本操作示例
May 21 Javascript
jQuery Tags Input Plugin(添加/删除标签插件)详解
Jun 20 Javascript
概述jQuery中的ajax方法
Dec 16 Javascript
jQuery使用siblings获取某元素所有同辈(兄弟姐妹)元素用法示例
Jan 30 Javascript
详解axios在node.js中的post使用
Apr 27 Javascript
在vue中获取dom元素内容的方法
Jul 10 Javascript
ES6 async、await的基本使用方法示例
Jun 06 Javascript
uni-app 自定义底部导航栏的实现
Dec 11 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的ob_start();控制您的浏览器cache!
2007/02/14 PHP
php 获取客户端的真实ip
2009/11/30 PHP
PHP设计模式 注册表模式
2012/02/05 PHP
php随机输出名人名言的代码
2012/10/07 PHP
thinkPHP简单实现多个子查询语句的方法
2016/12/05 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
2017/08/29 PHP
Laravel如何自定义command命令浅析
2019/03/23 PHP
使用js获取图片原始尺寸
2014/12/03 Javascript
js获取json元素数量的方法
2015/01/27 Javascript
javascript组合使用构造函数模式和原型模式实例
2015/06/04 Javascript
KnockoutJS 3.X API 第四章之数据控制流foreach绑定
2016/10/10 Javascript
jQuery日期范围选择器附源码下载
2017/05/23 jQuery
JavaScript循环_动力节点Java学院整理
2017/06/28 Javascript
基于LayUI分页和LayUI laypage分页的使用示例
2017/08/02 Javascript
JavaScript类的继承方法小结【组合继承分析】
2018/07/11 Javascript
小程序视频列表中视频的播放与停止的示例代码
2018/07/20 Javascript
nodejs 十六进制字符串型数据与btye型数据相互转换
2018/07/30 NodeJs
Vue核心概念Action的总结
2019/01/18 Javascript
原来JS还可以这样拆箱转换详解
2019/02/01 Javascript
vue实现手机号码的校验实例代码(防抖函数的应用场景)
2019/09/05 Javascript
ant design vue datepicker日期选择器中文化操作
2020/10/28 Javascript
python机器学习理论与实战(四)逻辑回归
2018/01/19 Python
解决Pycharm无法import自己安装的第三方module问题
2018/05/18 Python
python实现共轭梯度法
2019/07/03 Python
keras中epoch,batch,loss,val_loss用法说明
2020/07/02 Python
css3 column实现卡片瀑布流布局的示例代码
2018/06/22 HTML / CSS
西班牙手机之家:Phone House
2018/10/18 全球购物
Static Nested Class 和 Inner Class的不同
2013/11/28 面试题
人力资源管理专业自荐书范文
2014/02/10 职场文书
中学生励志演讲稿
2014/04/26 职场文书
小学六一儿童节活动方案
2014/08/27 职场文书
教师四风问题整改措施
2014/09/25 职场文书
七年级上册语文教学计划
2015/01/22 职场文书
地震慰问信
2015/02/14 职场文书
毕业生就业推荐表自我鉴定
2019/06/20 职场文书
python 实现定时任务的四种方式
2021/04/01 Python