JavaScript基础—插曲02
Js学习基础
1:关于js中的数组
这里面可以是键值对的形式来存储的,我们必须利用forIn来输出,这就相当于foreach一样。
- var dir = new Array();
- dir['0'] = '1111';
- dir['1'] = '2222';
- dir['2'] = '3333';
- alert(dir['0']);
- for (var key in dir) {
- alert('1'+key+'2'+dir[key]);
- }
键值对集合的形式
- var dicr = { '0': 'ahiu', '1': 'xiaohui', '2': 'aahui' };
- for (var key in dicr) {
- alert(''+key+' '+dicr[key]);
- }
2:js中的String对象
CharAt(index)方法,获取指定索引位置的字符(索引从0开始)
- var meg = '啊四道口附近的回复';
- alert(meg.charAt(4));
indexOf('',startIndex):获取指定字符第一次出现的次数,startIndex表示从第几个开始找。
Split('分隔符',limit):根据分隔符将一个字符串返回一个数组,limit为返回数组的个数。
SubStr(startIndex,len):截取字符串,从第几个开始startIndex,截取几个字符len。
Substring(startIndex,stopIndex):截取字符串,从什么地方开始到什么地方结束。
ToUpperCase():转换大小写。
3:js中面向对象
à函数名小写,是函数,大写就是对象<js中叫做构造函数>。
à下面的是将person当作了普通的函数来调用。可以直接进行调用。
- function person() {
- }
- person();
à这里是当作对象来使用。当成类来使用
- function Person() {
- }
- var p = new Person();
à通过构造函数创建对象,且对象可以看成键值对集合,可以进行遍历(forIn)。这里的this就是我们的Person对象。就相当于创建了user_name,等变量。也可以直接点就可以直接创建。
- //通过构造函数创建Person对象
- function Person(name,age,email) {
- this.user_name = name;
- this.user_age = age;
- this.user_email = email;
- this.sayHello= function() {
- alert(this.user_name+' '+this.user_age+' '+this.user_email);
- }
- }
- var p = new Person('阿辉', '23', 'zhanghui.com');
- p.sayHello();
à通过对象字面量直接创建对象(集合初始化器)
- var p1 = {
- user_name: 'ahui',
- user_age: '23',
- user_email: 'zhanghui.com',
- sayHello: function() {
- alert('大家好,才是真的好,我是:'+this.user_name);
- },
- sau_Hi: function() {
- alert('ss'+this.user_email);
- }
- };
- p1.sayHello();
4:instanceod判断哪个对象是那个类型
通过对象instanceof类型(),可以判断一个对象是否是某个类型。
- function person(parameters) {
- }
- alert(person instanceof person);
- alert(person instanceof Object);

5:函数对象中的prototype属性:原型
解释:原型,雏形,蓝本。
每个方法可以存到原型对象。原型对象是个单独的对象,是减少程序的运行时间。比如申明两个相同的函数里面若只是方法不同,则这些方法不会保存到栈中,他们二者相同的部分都保存到prototype中。
利用这个来实现js的继承,关于原型对象,属性和方法都可以存进去,但是大多数存储的是方法。
一般的普通对象没有这个属性,只有函数对象才有,相当于父类的方法,但是孩子不继承它的。可是孩子对象可以访问到父类的prototype方法中方法。
- function Person(name,age,email) {
- this.user_age = age;
- this.user_email = email;
- this.user_name = name;
- }
- //这里就是实现了js中的继承的关系
- Person.prototype.sayHello=function() {
- alert('11'+this.user_name);
- };
- var p1 = new Person('第一', '23', '333');
- p1.sayHello();
- var p2 = new Person('第二', 'aaaa', '3333');
- p2.sayHello();
定义在prototype中的成员是所有对象共享的,所以一般讲方法定义在prototype中,而属性定义在构造函数中。通过该属性可以实现js的继承。不要为内置对象随便添加新成员,防止混乱,可以对自定义对象通过该方法添加新成员。
原型对象中的成员是只读的,不可以第二次的改变这个值。若是添加了,只是为其对象自己添加了个属性,并不是其原型中的值发生了改变。利用引用类型来理解就好了。
Eg:利用原型给现有类型添加方法。
- String.prototype.addwjx = function() {
- return
this + 'bbb'; - };
- var msg = 'aaaa';
- msg=msg.addwjx();
- alert(msg);
6:js中的继承<原型继承>
Js中没有类的概念,继承是通过对象和对象来实现的。这里的对象是new之后的。通过原型来使不同的对象之间关联起来。
- <script type="text/javascript">
- function Person(name,age) {
- this.user_name = name;
- this.user_age = age;
- this.sayHello = function() {
- alert('我叫'+this.user_name+',今年'+this.user_age);
- };
- };
- function Student(name) {
- this.ahui_name = name;
- };
- var person = new Person('阿辉', '23');
- Student.prototype = person; //这里实现了继承,通过原型来使对象和对象之间连接起来。
- var s1 = new Student('小辉');
- s1.user_name = '阿辉+';
- s1.user_age = '23+';
- s1.sayHello();
- </script>
JavaScript基础—插曲02的更多相关文章
- JavaScript基础第02天笔记
JavaScript基础第02天 1 - 运算符(操作符) 1.1 运算符的分类 运算符(operator)也被称为操作符,是用于实现赋值.比较和执行算数运算等功能的符号. JavaScript中常用 ...
- JavaScript基础插曲-练习
Javascript基础学习 eg:利用正则表达式来去掉空格. 1:msg=' Hello ': <script type="text/javascript"> ...
- JavaScript基础插曲—元素样式,正则表达式,全局模式,提取数组
JavaScript基础学习 学习js的基础很重要,可以让自己有更多的技能.我相信这个以后就会用到. Eg:点击选择框,在div中显示出选择的数量 window.onload = function() ...
- JavaScript基础—插曲
Javascript基础 1:js中我们最好使用单引号,其实可以使用双引号的但是为了区别所以js中全部使用单引号.注释和C#的是一样的.网页里面的执行顺序是从上到下依次执行的,不管你js放到哪里,都会 ...
- JavaScript基础插曲---apply,call和URL编码等方法
Js基础学习 Js的压缩: 就是利用js的语法格式通过缩短变量名,去掉空格等来进行压缩. Apply和call的使用 1:apply方法:应用某一对象的方法,用于一个对象替换当前对象.主要是改变thi ...
- JavaScript基础插曲—获取标签,插入元素,操作样式
Js基础 1:document.write() 这个是动态创建元素内容,利用js.这个可以利用js来创建元素,文本,标签等,document.write()与document.writeln()的区别 ...
- JavaScript基础精华02(函数声明,arguments对象,匿名函数,JS面向对象基础)
函数声明 JavaScript中声明函数的方式:(无需声明返回值类型) function add(i1, i2) { return i1 + i2;//如果不写return返回 ...
- JavaScript基本入门02
目录 JavaScript基础入门 02 条件语句 if 语句 if .. else 语句 switch 结构 循环语句 while 循环 continue 关键字 do...while语句 for ...
- JavaScript基础语法资料
JavaScript基础第01天 1 - 编程语言 1.1 编程 编程: 就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程. 计算机程序: 就是计算机所执行的一系列的 ...
随机推荐
- 可在广域网部署运行的QQ高仿版 -- GG叽叽V2.4,增加远程协助、桌面共享功能(源码)
QQ的远程协助.或者说桌面共享是一个非常实用的功能,所以,2.4版本的GG复制了它,而且,GG增强了桌面共享的功能,它可以允许指定要共享桌面的区域,这样,对方就只能看到指定区域的桌面,这对节省流量会非 ...
- 【重磅推荐】腾讯Bugly2015年移动应用质量大数据报告
2015年,随着移动智能设备的普及,移动端用户的增速明显放缓:相比之下,由于云服务.众筹平台.推广平台等基础设施和服务的不断改善,极大降低了创业的门槛,越来越多人投身于移动应用的创新创业中. 想让用户 ...
- Nim教程【九】
向关注这个系列的朋友们,道一声:久违了! 它并没有被我阉掉,他一定会得善终的,请各位不要灰心 Set集合类型 为了在特殊场景下提高程序的性能设置了Set类型,同时也是为了保证性能,所以Set只能容纳有 ...
- 浅析Ajax跨域原理及JQuery中的实现分析
AJAX 的出现使得网页可以通过在后台与服务器进行少量数据交换,实现网页的局部刷新.但是出于安全的考虑,ajax不允许跨域通信.如果尝试从不同的域请求数据,就会出现错误.如果能控制数据驻留的远程服务器 ...
- 厚积薄发,拥抱 .NET 2016
厚积薄发这个词是高三英语老师在高考前写在黑板上,高中三年努力这么久,是时候迎面而上,冲刺向前.所以,一想到.NET 2016,脑海里蹦出的第一个词就是它. .NET 2016 是 .NET 一次质的飞 ...
- 在Mongoose中使用嵌套的populate处理数据
假设有如下mongodb的schema定义: drawApply = new Schema({ salesId: { type: Schema.ObjectId, ref: 'sales' }, mo ...
- User and User Groups in Linux
本文梳理了一下Linux用户和用户组的常用的一些命令. 有关的配置文件: /etc/group 存储当前系统中所有用户组信息 /etc/gshadow 存储当前系统中所有用户组的密码 /etc/pas ...
- 前端chrome浏览器调试总结
引言 "工欲善其事,必先利其器" 恩,这句话我觉得说的特别有道理,举个例子来说吧,厉害的化妆师都有一套非常专业的刷子,散粉刷负责定妆,眼影刷负责打眼影,各司其职,有了专业的工具才能 ...
- GUID相关知识
全局唯一标识符(GUID,Globally Unique Identifier)是一种由算法生成的二进制长度为128位的数字标识符.GUID主要用于在拥有多个节点.多台计算机的网络或系统中.在理想 ...
- [SpringMVC]SpringMVC学习笔记一: springmvc原理及实例解析.
前言:今天来回顾下SpringMVC的开发原理, 使用图文并茂的方式 来解析其中的内幕, 我相信懂了其中的运行机制后, 对于面试中SpringMVC大家都可以说so easy了. 一, 图示法 第二张 ...