基础知识:
1) 函数的声明方式:普通的声明方式;
function myFun(m,n){ alert(m+n);}
使用变量初始化函数;
Var myFun =function (m,n){ alert(m+n);}
使用构造函数;
var myFun=new function(‘m’,’n’,’alert(m+n)’);
2)回调函数:将函数作为另一个函数的参数
//就是在一个函数里调用另一个函数之类的。
3)函数的内部属性:在函数的内部,有两个特殊的对象:arguments和this.
arguments.length检测函数的参数个数;
4)this:在函数外部使用this,this就指的是window对象;
函数内使用this也是window对象;
用new来调用,那么绑定的将是新创建的对象;
function test(){this.x=100;}
var obj=new test();
ogj.x=100;
作为某个对象的方法调用
function test(){this.x;}
var objo={};
objo.x=1000;
objo.m=text;
objo.m();//这里的x等于100,说明this指向objo;
事件监听函数中的this;
var div1=document.getElementById(‘div1’);
div1.οnclick=function(){this.innerHTML;};//this指向的是div元素;
5)全局变量可以看做window对象的属性;//调用:window.x;
6)函数的属性和方法:每个函数都包含两个属性:length和prototype
length:当前函数希望接受的命名参数的个数;arguments.length是实际传入的参数个数;
每个函数都包含两个非继承而来的方法:apply()和call();
函数名.apply(this,[参数]);//这里的this是作用域。可将“[参数]”改为arguments;
函数名.apply(this,参数1,参数2);
apply()和call()都是复制使用其他函数内容,只是接受参数的方式不太一样;通常用来扩充函数运行的作用域而非单纯的传递参数;
7)基本类型值有:undefined,NULL,Boolean,Number,和String;
8)引用类型:对象、数组、函数。
9)在变量复制时候,基本类型复制的是值本身,而引用类型复制的是地址;
//引用值
var man1=’张三’;
var man2=man1;//单将man1的值赋给man2,地址不复制;
//引用地址
var person1=new Object();
var preson2=preson1;//将preson1的地址复制到preson2;
面向对象:
1)类:每个对象都由类定义,可以把类看作对象的配方。
2)实例:程序使用类创建对象时,生成的对象叫做类的实例。由类创建对象实例的过程叫做实例化。
3)JavaScript对象定义:可以把对象理解为属性集合,每个属性存放一个原始值、对象或函数。
4)方法的实质就是函数,而属性的实质就是变量。
5)创建对象的方法:本质上都是把把“属性”和“方法”封装成一个对象。
var people=new Object();//创建对象
people.name=’孙悟空’;//添加属性
people.weapon=’金箍棒’;//添加属性
people.run=function(){
return this.name+’的武器是’+this.weapon
}//创建方法;this是指的当前作用域下的对象,注意和谁调用这个方法有关,和在哪定义没有关系。
6)工厂模式:使用创建并返回特定类型的对象的工程函数(其实就是普通函数,没啥区别,只是叫法不同)//和以前做移动函数一样,将定量变为可传递的参数,封装在一个函数里;
7)使用工厂模式创建的对象实例的地址是不同的,说明两个对象会占用两个地址空间的内存。
8)//如果有new函数里的this就是新创建出来的对象,如果没有就是window;
function fun(){this;}
fun();//window
new fun();//新创建
9)构造函数模式://构造函数不需要使用return语句返回对象,他的返回是自动完成的;
function creatPeople(name,weapon){
this.name= name;//添加属性
this.weapon= weapon;//添加属性
this.run=function(){
return this.name+’的武器是’+this.weapon
}
}
var wujing=new creatPeople(‘沙悟净’,‘禅杖’);
wujing instanceof creatPeople;//判断wujing是否是由creatPeople产生的;
10)Prototype模式(原型模式):Prototype方式定义的方式,函数不会拷贝到每一个实例中,所有实例共享Prototype中的定义,节省了内存。
function peop(){}
peop.prototype.name=’喽啰‘;
peop.prototype.weapon=’大刀‘;
peopprototype.run=function(){
return this.name+’的武器是’+this.weapon
}
//这时所有实例方法,其实都是同一个内存地址,指向Prototype对象,因此提高了运行效率;
var monster=new peop();
peop. Prototype.isPrototypeOf(monster);//判断monster是否是原型创建的;
11)in运算符可以用来判断某个实例是否含有某个属性,不管是不是本地属性;
12)构造函数和原型组合模式;即用构造函数定义对象的所有非函数属性,用原型方式定义对象的函数属性(方法),结果是所有的函数都只创建一次,而每个对象都具有自己的对象属性实例。
function Moster(name,arr){
constructor: Moster,
this.name=name,
this.job=arr,
Moster.prototype={
run:function(){return this.name+’的武器是’+this.job;}//方法
}
}
13)继承的现实:对象冒充(构造函数绑定)//使用apply()和call()方法
//原型链方法;
function Monkey (){}
Monkey.prototype.type=’猴子’;
Monkey.prototype.say=function(){alert(‘我是快乐的猴子’)}

function Magicmonkey(){}
//将Magicmonkey的prototype对象指向一个Monkey的实例。
//相当于删除了prototype对象原先的值,然后赋予了一个新值。
//不能继承多个类,后边的会覆盖前面的;
Magicmonkey. Prototype=new Monkey();
Magicmonkey. Prototype.skill=’法术’;//这句必须在上面这个实例之后;
var sunWukong=new Magicmonkey();
混合方式:用对象冒充继承函数的属性,用原型链继承prototype对象方法。
function Magicmonkey(type,home){
Monkey.call(this,type,home);//继承属性
}
Magicmonkey. Prototype=new Monkey ();//用原型链继承Monkey 类的方法;
var wukong=new Magicmonkey(‘猴子‘,’花果山‘);//调用
匿名函数与闭包:
1) 匿名函数:没有名字的函数;
单独的匿名函数是无法运行和调用的
可以把匿名函数赋值给变量
通过表达式自我执行,语法:(匿名函数)()
匿名函数传递参数,语法:(匿名函数)(参数)
2) 闭包:指有权访问另一个函数作用域中变量的函数。
调用方式:myfn()()或var bb=myfn();bb();
3) 闭包的第一个用途:通过闭包可以访问局部变量
4) 闭包的第二个用途:可以让这些变量的值始终在内存内。
5) 闭包优点:可以把局部变量驻留在内存中,可以避免使用全局变量;
6) Cookie是储存于访问者计算机中的变量。常见应用场景:自动登录,记住用户名。。。
document.cookie=’张三’;//创建cookie;
7)JSON是储存和交换文本信息的语法。类似XML。本质上字符串。
//js中的对象表示
Var user={
Name:’张三’,
Age:’30’
}
//josn对象表示
{
“name”:”张三”,
“age”:”30”
}
//普通数组
Var arr=[“aa”,100,true];
//josn数组
[“aa”,100,true]
8)josn解析:eval可以将josn文本转换为javascript对象。
Var jsonobj=JOSN.parse(jsonstr,function(key,value){});// jsonstr是josn数据;第二个值是函数;
9)josn的序列化:js对象转换为josn数据(字符串)
Var jsonstr=JOSN.stringify(jsonobj,[数组]);//数组里是要解析的参数;
Var jsonstr=JOSN.stringify(jsonobj, function(key,value){});
Var jsonstr=JOSN.stringify(jsonobj, null,4);//第三个参数表示缩进;
9)AJAX异步于Javascript和XML;可以通过在后台与服务器进行少量的数据交换,是网页实现异步更新。这意味着可以不重新加载整个网页的情况下对网页某部分进行更新。
10)创建AJAX对象
Var myajax=new XMLHttpRequest()//IE6以下不支持
Var myajax=new ActiveXObject(“Microsoft.XMLHTTP”);
11)向服务器发送请求:使用open()和send()方法:
连接服务器:
//open(方法,文件名,异步传输);
方法:请求类型;GET或POST;
文件名:文件在服务器上的位置;
异步传输:ture(异步)或false(同步)
Myajax.open(‘GET’,’text.txt’,ture);
12)发送请求
Myajax.send (null);
13)接受返回的数据
responseText属性:reponnseText属性返回字符串形式的响应。
responseXML属性:如果来自服务器的响应是XML。而且需要作为XML对象作为哦解析,请使用responseXML属性;
onreadystatechange事件:每当readyState改变时,就会触发onreadystatechange事件;
onreadystatechange:属性:储存函数或函数名,每当readyState改变时,就会触发onreadystatechange事件;
readyState:存由XMLHttpRequest的状态。从0到4发生变化。
Myajax. Onreadystatechange=function(){
If (Myajax.readyState4){
If(Myajax.status200)// status==200表示未找到页面
}
}
14)
JQuery:
1)能解决不同浏览器之间的兼容问题;
2)基础语法:$(selector).action();
$就是JQuery对象;选取对象的符号;功能函数的前缀;

javascript进阶学习笔记笔记相关推荐

  1. JavaScript进阶5-学习笔记

    文章目录 JavaScript进阶5-学习笔记 例子 JavaScript进阶5-学习笔记 参考理解:https://blog.csdn.net/hhhmonkey/article/details/1 ...

  2. JavaScript进阶4-学习笔记

    文章目录 JavaScript进阶4-学习笔记 递归 JavaScript进阶4-学习笔记 前端: 根据Ui写页面,使用vuecli+vue---测试功能---需要数据(json,array,字符串) ...

  3. JavaScript进阶3-学习笔记

    文章目录 JavaScript进阶3-学习笔记 闭包 JavaScript进阶3-学习笔记 //组件封装 什么是封装? 将冗余的代码精简化 例如:写代码:a页面有一个函数,b页面也需要这个函数,很多人 ...

  4. JavaScript进阶2-学习笔记

    文章目录 JavaScript进阶2-学习笔记 this指针 如何改变this指向 事件委托.事件冒泡 JavaScript进阶2-学习笔记 this指针 This是什么? this是Javascri ...

  5. JavaScript进阶1-学习笔记

    文章目录 JavaScript进阶1 预解析 作用域 面向对象的写法 JavaScript进阶1 预解析 //预解析 //1) console.log(a); var a = 1; //解析过程 va ...

  6. JavaScript进阶学习(二)—— 基于原型链继承的js工具库的实现方法

    文章来源:小青年原创 发布时间:2016-07-03 关键词:JavaScript,原型链,jQuery类库 转载需标注本文原始地址: http://zhaomenghuan.github.io... ...

  7. JavaScript进阶学习-webAPI(总结)

    webAPI DOM 概念 JS分三个部分: ECMAScript标准:js的基本语法 DOM:Document object model -文档对象模型-操作页面的元素 BOM: Browser o ...

  8. 【总结整理】javascript进阶学习(慕课网)

    数组 数组是一个值的集合,每个值都有一个索引号,从0开始,每个索引都有一个相应的值,根据需要添加更多数值. 二维数组 二维数组 一维数组,我们看成一组盒子,每个盒子只能放一个内容. 一维数组的表示: ...

  9. 【JavaScript进阶学习】NodeJs语言的介绍及基本使用

    NodeJs语言的介绍 NodeJs服务器语言,后端语言,采用了ECMAScript的语法,用来在服务器中开启服务,操作文件,处理路径,处理请求,发送数据等服务功能. NodeJs的解析器:V8引擎 ...

最新文章

  1. 开源资产管理系统java_开源资产管理软件 GLPI 9.3.1 部署
  2. 大家调试ZEND的时候应该会用到zend studio,不知道是不是中国购买zend产品的用户太少了还是我安装的问题,...
  3. java个人学习笔记:取模运算 整数除运算 +运算
  4. android wifimanager权限,Android 6.0.1 - 权限问题= wifiManager.getScanResults()返回0
  5. python进阶(第三章1) 字典
  6. 第十七节:ES6新增的Map和WeakMap 又是什么东西?
  7. 树的几种遍历方式(递归/非递归)
  8. gson和json-lib的区别
  9. 山重水复 Thinkpad T61改装记
  10. 互联网晚报 | 06月03日 星期五 | 步步高回应“即将倒闭”传闻、爱彼迎启动房东/房源迁移计划;抖音宣布与中超联赛达成合作...
  11. rk3399 外接一个usb声卡,同时指定另一个usb声卡做放音功能
  12. 机器学习与数据挖掘工程师的发展方向总结
  13. 专业主义——大前研一
  14. 2015年电商行业十大发展趋势分析预测
  15. 分享使用谷歌Colab 常用小tips, 玩转Google Colab
  16. 计算机专业知识面狭窄,软件学院“计算机基础”实验教学改革探索
  17. 怎样用word制作标准格式公文操作实例
  18. Python 简单的人名对话
  19. ActivityManagerService解读之Activity启动初探
  20. IDEA快速移动光标到行首或行尾;

热门文章

  1. 获取并设置HTML5 Video的当前进度
  2. 有哪些IT巨头,在打造Ceph这朵开源存储金花?
  3. Vijos1901 学姐的钱包
  4. 上游服务不可用了,下游服务如何应对?
  5. 坑爹项目「spring-cloud-alibaba」,我们也来一个
  6. boss直聘一句话介绍优势_「公关界的007」95后职场前夜,BOSS直聘想跟够“敢”的你聊聊...
  7. Brightree发布针对居家健康和临终关怀助理的BrightreeCARE App
  8. HTML学习之——文字方向
  9. mysql 复合索引_mysql联合索引(复合索引)详解
  10. 《I'm a Mac:雄狮训练手册》——0.3 Lion