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 相关文章推荐
JS OOP包机制,类创建的方法定义
Nov 02 Javascript
js模拟滚动条(横向竖向)
Feb 22 Javascript
浅析jQuery EasyUI中的tree使用指南
Dec 18 Javascript
JavaScript中函数(Function)的apply与call理解
Jul 08 Javascript
JQuery菜单效果的两个实例讲解(3)
Sep 17 Javascript
js与jquery分别实现tab标签页功能的方法
Nov 18 Javascript
详解vue-validator(vue验证器)
Jan 16 Javascript
Angular指令之restict匹配模式的详解
Jul 27 Javascript
vue源码nextTick使用及原理解析
Aug 13 Javascript
在vue中使用防抖和节流,防止重复点击或重复上拉加载实例
Nov 13 Javascript
JavaScript设计模式--简单工厂模式实例分析【XHR工厂案例】
May 23 Javascript
全面解析Vue中的$nextTick
Dec 24 Vue.js
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高级对象构建 多个构造函数的使用
2012/02/05 PHP
深入PHP curl参数的详解
2013/06/17 PHP
codeigniter框架The URI you submitted has disallowed characters错误解决方法
2014/05/06 PHP
ThinkPHP后台首页index使用frameset时的注意事项分析
2014/08/22 PHP
PHP递归创建多级目录
2015/11/05 PHP
浅谈PHP中关于foreach使用引用变量的坑
2016/11/14 PHP
PHP中$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的区别分析
2017/07/03 PHP
jQuery 锚点跳转滚动条平滑滚动一句话代码
2010/04/30 Javascript
ASP.NET jQuery 实例15 通过控件CustomValidator验证CheckBoxList
2012/02/03 Javascript
jQuery实现自定义checkbox和radio样式
2015/07/13 Javascript
js删除数组元素、清空数组的简单方法(必看)
2016/07/27 Javascript
AngularJS教程 ng-style 指令简单示例
2016/08/03 Javascript
详解jquery easyui之datagrid使用参考
2016/12/05 Javascript
详解js的异步编程技术的方法
2017/02/09 Javascript
vue使用xe-utils函数库的具体方法
2018/03/06 Javascript
Vue ElementUi同时校验多个表单(巧用new promise)
2018/06/06 Javascript
详解JS实现简单的时分秒倒计时代码
2019/04/25 Javascript
JavaScript实现多球运动效果
2020/09/07 Javascript
JS中循环遍历数组的四种方式总结
2021/01/23 Javascript
[05:17]DOTA2睡衣妹卖萌求签名 CJ第二天全明星影像
2013/07/28 DOTA
[03:59]5分钟带你了解什么是DOTA2(第二期)
2017/02/07 DOTA
[45:14]Optic vs VP 2018国际邀请赛淘汰赛BO3 第二场 8.24
2018/08/25 DOTA
python实现泊松图像融合
2018/07/26 Python
对Python实现累加函数的方法详解
2019/01/23 Python
pyqt弹出新对话框,以及关闭对话框获取数据的实例
2019/06/18 Python
Python3内置模块random随机方法小结
2019/07/13 Python
Win10下python 2.7与python 3.7双环境安装教程图解
2019/10/12 Python
Python实现动态循环输出文字功能
2020/05/07 Python
CSS3 Notes: -webkit-box-reflect实现倒影的实例
2016/12/08 HTML / CSS
如何开发一款堪比APP的微信小程序(腾讯内部团队分享)
2016/12/22 HTML / CSS
学生会竞选演讲稿
2014/04/24 职场文书
小学语文教学经验交流材料
2014/06/02 职场文书
有子女的离婚协议书怎么写(范本)
2014/09/29 职场文书
Python实战之大鱼吃小鱼游戏的实现
2022/04/01 Python
使用python生成大量数据写入es数据库并查询操作(2)
2022/09/23 Python
css弧边选项卡的项目实践
2023/05/07 HTML / CSS