JavaScript高级笔记概括

JavaScript高级
Js分三个部分:
1.ECMAScript标准---基本语法
2.DOM Document Object Model 文档对象模型 顶级对象是document
3.BOM Browser Object Model 浏览器对象模型 顶级对象是window
什么是js?
一门基于对象的语言
一门动态类型的语言
一门弱类型语言
一门脚本语言
一门解释性语言
Js可以做什么?
特效,游戏,移动端,服务端。。。
Js严格模式:”use strict”
编程思想:
面向过程:所有的事情都是亲力亲为,注重的是过程
面向对象:提出需求,找对象,对象解决,注重的是结果(万物皆对象)
什么是对象?
具体特指的某一个事物,有特征(属性)和行为(方法),对象可以看出是一堆无序属性的集合
Js不是一门面向对象的语言,是一门基于对象的语言,js可以模拟面向对象(封装,继承,多态)
什么是封装?
封装:就是包装,把一些重用的内容进行包装,在需要的时候直接使用
(把一个值存在一个变量中,把一些重用的代码放在一个函数中,把好多相同功能的函数放在一个对象中,把好多功能的对象放在一个文件夹中)
什么是继承?
继承:类于类之间的关系,js里面没有类的概念,但是js中有构造函数,构造函数可以通过原型来模拟继承,继承是为了数据共享
(
原型继承:改变原型的指向
借用构造函数继承:主要解决属性的问题
组合结成:原型继承+借用构造函数继承✔️构造函数名{子构造函数}.prototype = new 构造函数名{父构造函数}();+构造函数名{父构造函数}.call(this,属性1,属性2){属性之间从子构造函数中直接传}
拷贝继承:把对象中需要共享的属性或者方法直接以遍历的方式复制到另一个对象中
)
什么是多态?
多态:同一个行为针对不同的对象产生了不同的效果
创建对象的三种方式:
1.字面量的方式
2.调用系统的构造函数
3.自定义构造函数(1.开辟空间储存对象2.把this设置为当前的对象(实例对象)3.设置属性和方法的值4.把this对象返回)
工厂模式和自定义构造函数有什么共同点和区别?
共同点:都是函数,都可以创建对象,都可以传入参数
不同点:
工厂模式:函数名是小写,有new,有返回值,new之后的对象是当前的对象,直接调用函数就可以创建对象
自定义构造函数:函数名是大写(首字母),没有new,没有返回值,this是当前的对象,通过new的方式来创建对象
实例对象和构造函数直接的关系:
实例对象是通过构造函数来创建的,创建的过程叫实例化对象
如何判断对象是不是这个数据类型?
1.通过构造器的方式 (实例对象.构造器 == 构造函数的名字)
2.(对象 instanceof 构造函数的名字)
原型的作用:数据共享,节省内存空间,模拟继承
原型中的方法可以通过this互相访问(未改变指向之前)
什么是原型?
实例对象中有proto属性,叫原型,也是一个对象,也可以叫原型对象,这个属性是给浏览器使用的,不是标准的属性
构造函数中有prototype属性,叫原型,也是一个对象,也可以叫原型对象,这个属性是给程序员使用的,是标准的属性
实例对象的proto和构造函数中的prototype相等(true)
因为实例对象是通过构造函数来创建的,构造函数中有原型对象prototype,所以实例对象的proto指向的构造函数的原型对象prototype
总结实例对象构造函数原型对象之间的关系:
构造函数可以实例化对象
构造函数中有一个属性prototype,这个属性是构造函数的原型对象
构造函数prototype中有一个constructor构造器,这个构造器指向的是自己所在的原型对象所在的构造函数
实例对象的原型对象是(proto)指向的是该构造函数的原型对象
实例对象(proto)和构造函数的prototype的指向是相同的
构造函数prototype指向如果改变了实例对象(proto)指向也会改变(记住先改变指向再添加方法)
所以构造函数的原型对象prototype里面的方法实例对象是可以直接访问的
原型最终指向了哪里?
实例对象的(proto)--->构造函数的prototype的(proto)--->Object.prototype的(proto)是null
实例对象使用属性方法:现在实例对象中查找,再到实例对象的(proto)指向的原型对象prototype中找,找到则使用,找不到报错
如何在函数中把局部变量变成全局变量?
把局部变量给window就好了
什么是原型链?
是一种关系,实例对象和原型对象之间的关系,是通过原型(proto)来链接的
什么是作用域?
变量的使用范围
什么是作用域链?
变量的使用,从里向外,层层搜索,搜索到了直接使用,搜索不到则报错。
什么是预解析?
浏览器解析代码之前,把变量的声明和函数的声明提前(提升)到该作用域的最上面
什么是闭包?
函数A中有函数B,函数B访问函数A中的变量或者数据,此时就形成了闭包
闭包的模式:函数模式的闭包,对象模式的闭包
闭包的作用:缓存数据(即是优点也是缺点,数据没有及时的释放),延长作用域链
什么是沙箱?
沙箱也叫黑盒,在一个虚拟的环境中模拟真实世界的数据,虚拟世界的数据的结果和真实世界的数据结果是一样的但是不会影响真实世界
什么是递归?
函数中调用函数自己,递归一定要有结束的条件,否则会死循环
什么是浅拷贝?
就是复制,相当于把一个对象中的所有内容复制一份给另一个对象,或者说把一个对象的地址给了另一个对象,他们指向相同
什么是深拷贝?
把一个对象中的所有属性和方法一个一个找到,并且在另一个对象中开辟相应的空间,一个一个存储到另一个对象中
什么是正则表达式?
正则表达式也叫规则表达式,按照一定的规则组成的一个表达式,匹配字符串
数组和伪数组的区别:
真数组的长度是可变的,伪数组的长度是不可变的,真数组可以使用数组中的方法,伪数组不可以使用数组中的方法
函数中this的指向:
普通的函数中的this(window)
对象.方法中的this(当前实例对象)
定时器方法中的this(window)
构造函数中的this(实例对象)
原型对象方法中的this(实例对象)
函数也是对象但对象不一定是函数(内置对象Math)
对象中有(proto)是对象 函数中有prototype原型是对象
什么是回调函数?函数作为参数使用
apply和call使用语法,作用及区别
apply的使用语法:
函数名字.apply(对象,[参数1,参数2…]);
方法名字.apply(对象,[参数1,参数2…]);
call的使用语法:
函数名字.call(对象,参数1,参数2…);
方法名字.call(对象,参数1,参数2…);
apply和call的作用:调用的时候改变this的指向
apply和call的区别:参数传递的方式不一样
bind方法是赋值的时候改变this的指向
bind的使用语法:
函数名字.bind(对象,参数1,参数2…);
方法名字.bind(对象,参数1,参数2…);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容

  • 第3章 基本概念 3.1 语法 3.2 关键字和保留字 3.3 变量 3.4 数据类型 5种简单数据类型:Unde...
    RickCole阅读 5,095评论 0 21
  •   面向对象(Object-Oriented,OO)的语言有一个标志,那就是它们都有类的概念,而通过类可以创建任意...
    霜天晓阅读 2,092评论 0 6
  • 基本概念 语法区分大小写标识符注释严格模式语句 关键字和保留字 变量 数据类型typeof 操作符Undefine...
    他爱在黑暗中漫游阅读 1,095评论 0 1
  • 生长于土地 劳作于土地 埋葬于土地 你于土地终身厮守 土地是你最亲密的朋友 为了一点可怜的墒情 你没有愉快...
    叶小秋123阅读 204评论 3 18
  • 【与萌共长】20171107学习力践行Day28:昨天萌萌幼儿园发的马克绿笔没有墨水了,幼儿园也没有多余的笔可以更...
    艳萍和萌宝阅读 219评论 0 0