javascript相关知识

全新的作用域和闭包的概念
  如何区分数据在内存中存放的位置是堆、栈还是池
    1.看到var或者function一定在栈中,typeof的结果是function
    2.typeof的结果如果不是object都在池里
    3.typeof的结果如果是object都在堆里
  闭包
    临时闭包是由函数调用所产生
    闭包中又会划分栈和堆两个区域,在闭包中定义的变量会在闭包的栈中,我们称之为局部

  变量
    不是定义在闭包中的变量,我们称之为全局变量
  作用域
    局部变量的作用域就只在当前的闭包中产生作用
    全局变量的作用域可以再任何闭包中被访问,全局变量的作用域其实就是window对象
  JS执行过程
    1.先提升当前闭包中的变量(函数)(全局对象,也相当于一个闭包)(所以可以在function前面

    调用function)
    2.“从上往下执行的”
    3.遇到闭包的时候,有会反复执行步骤1和步骤2

  构造器
    1.在javascript中,构造器就是函数,所以我们把构造器叫做构造器函数
    2.构造器函数名字首字母是大写 普通函数名字首字母是小写
    3.构造器函数的名字一般是名词 普通函数的名字是动词
    4.使用构造器函数需要通过new关键字来调用 普通函数无需通过new关键字
  构造器函数和普通函数的使用
    普通函数的调用会创建一块临时的闭包空间
      因为闭包中的代码执行完毕,则空间消失。
      通常调用普通函数,关注的是执行的内容和返回的结果。
    构造器函数的调用(new)会创建一块非临时的闭包空间
      new会在堆中创建一块内存空间,并且调用构造器,构造器默认会返回这块内存空间的地址。
    (构造器函数没有return,或者说默认返回this)
    1.this代表的就是当前这块内存空间的引用
    2.this代表的调用者的引用
    构造器(constructor)和对象(object)
    原型(prototype)
    原型本身就是对象
      所有构造器都有prototype这个原型属性
      所有被这个构造器所创建(new)出来的对象都能够共享这个原型
      * 主要是构造器创建对象的功能,都定义在prototype中,因为prototype是共享的实例(单例)
      * 原型里面用来定义共享的函数,或者定义共享的默认值属性

    私有成员
      通过在this作用域中定义var局部的变量或者函数来实现
    原型
      每一个构造器函数,都有一个原型(对象),在堆中,所谓的原型其实就是一个对象
      扩展系统构造器的原型
      每一个通过该构造器函数new出来的对象,他们都有一个默认的属性叫做prototype,这个对象的地址就是构造器里面prototype的地址
    继承 原型链
      所有的对象都是继承与Object
      *call方法用来改变方法调用时所创建的闭包的this引用
      *apply方法用来改变方法调用时所创建的闭包的this引用
      区别在于,call传参数是一个个传,apply传参数是数组的方式传
      *arguments是在函数调用时系统内置的一个对象用来代表用户传入的参数列表(数组)

时间: 2024-11-06 03:29:30

javascript相关知识的相关文章

JavaScript 相关知识

一.数组 var a = [1,2,3,4]; console.log(a.length); // 4 a.push(5); console.log(a); // [1, 2, 3, 4, 5] var ret = a.pop(); console.log(ret); // 5 a.unshift('aaa'); // 头部插入元素 console.log(a); // ["aaa", 1, 2, 3, 4] var ret1 = a.shift(); // 头部移除元素 consol

相关知识: JavaScript

相关知识: JavaScript JavaScript是一种编程语言,它被广泛用来实现web站点和应用中的交互效果. JavaScript可以同样式进行交互,你可以通过编写程序来动态改变文档上元素的样式. 有三种方法可以实现这样的效果: 控制样式表—可以添加.删除.修改样式表. 控制样式规则—可以添加.删除.修改样式规则. 控制DOM中的单个元素—可以不依赖样式表来修改元素样式. 更多细节 要了解 JavaScript的更多细节,可以到这个wiki JavaScript . 范例: 一个Java

与Javascript相关的数据结构和算法

著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处.作者:豪情链接:http://www.zhihu.com/question/36882354/answer/69416260来源:知乎 建议先打好基础,了解js语言的特性或玩法,然后再来玩算法,个人感觉才能四两拨千斤,算法这种东西,是高级抽象的东西,简单说:是熟悉计算机语言解决日常需求的前提下,熟练的选择一种高效的做事方式,先了解如何将日常的需求或人类的自然语言转换为计算机语言,然后在进一步的确定算法在整个代码开发中所扮演的角色

javascript 相关小的知识点集合

本文主要是列出一些javascript 相关的,不限于javascript的,容易记错或者遗忘的小知识,小技巧. 1.javascript中的false 在 JavaScript,常见的 false 值: 0, '0', +0, -0, false, '',null,undefined,NaN 要注意空数组([])和空对象({}): console.log([] == false) //true console.log({} == false) //false console.log(Boole

web聊天相关知识

http相关知识 http是无状态,请求,响应模式的通信模式,就是用户每次通过浏览器点击一下页面,都需要重新与web服务器建立一下连接,且发送自己的 session id 给服务器端以使服务器端验证此用户的身份.客户端若想从web服务器上获取数据,必须主动发起一个请求,然后接收服务器端的返回,服务器端不会主动向客户端推送消息. 基于传统的web服务器只会被动响应客户端请求的这个特性,想实现web实时聊天的需求,有以下几个方式:   轮询(polling) 轮询,客户端向服务器发出请求以获取一些数

HTML入门基础教程相关知识

HTML入门基础教程 html是什么,什么是html通俗解答: html是hypertext markup language的缩写,即超文本标记语言.html是用于创建可从一个平台移植到另一平台的超文本文档的一种简单标记语言,经常用来创建web页面.html文件是带有格式标识符和超文本链接的内嵌代码的ascii 文本文件——html结构了解. html文本是由 html命令组成的描述性文本,html 命令可以说明文字. 图形.动画.声音.表格.链接等. html网页结构包括头部 (head).主

BI 主要环节 ETL 相关知识

BI架构-BI 主要环节 ETL 相关知识 主要功能  :将源系统的数据加载到数据仓库 及数据集市层中: 主要问题体现:  复杂的源数据环境,包括繁多的数据种类.巨大的加载数据量.错综复杂的数据关系和参差不齐的数据质量 常见术语  ETL:数据抽取.转换.加载(Extract/Transform/Load)  EXF:抽取的文件(Extract File)  CIF:共用接口文件(Common Interface File)  PLF:预加载文件(Preload File)  LDF:

【转载】JavaScript基础知识体系

前言 最近总是有一种感觉,对于知识没有积淀,很多时候都是忘记了哪里就去查一下,比如JS这种语言,很是浪费时间,如果能够把这些知识形成知识体系塞进大脑,做到即用即取就好了,那么就可以借助思维导图来帮助我们完成这项工作.所谓温故而知新,今天把JavaScript相关的知识整理下(图片来自网络). 一.JavaScript变量 二.JavaScript数据类型 三.JavaScript运算符 四.JavaScript流程语句 五.JavaScript字符串函数 六.JavaScript正则表达式 七.

angular管道相关知识

什么是管道 每个应用开始的时候差不多都是一些简单任务:获取数据.转换它们,然后把它们显示给用户. 获取数据可能简单到创建一个局部变量就行,也可能复杂到从WebSocket中获取数据流.一旦取到数据,我们可以把它们原始值的toString结果直接推入视图中. 但这种做法很少能具备良好的用户体验. 比如,几乎每个人都更喜欢简单的日期格式,例如1988-04-15,而不是服务端传过来的原始字符串格式 -- Fri Apr 15 1988 00:00:00 GMT-0700 (Pacific Dayli