javascript术语大全_javascript各种专业名词理解

更新日期: 2018-12-01阅读: 4k标签: 术语

javascript经常用到的各种专业名词,在此整理一下分享给大家:  


直接量

直接量(Literals)就是程序中直接使用的数据值,常见的有两种:数值和字符串

(1)数值:1,2,3,4,1.1,-1.....数学中的数字
(2)字符串:程序中被单双引号包裹起来的内容都是字符串。eg:"string"
(3)其他字面量:true  false   null   正则表达式 


变量

变量是存储信息的容器。一般我们都会使用变量来表示你的数据,变量的名字我们称之为标识符,他必须满足一些规则:

变量名必须以字母、下划线、$开头,其次的部分可以加上数字(0-9)。还有一点,因为JavaScript是大小写敏感的,所以字母就理所当然的包括了从A到Z和从a到z。


原始值

原始值(primitive value)是固定而简单的值,是存放在栈(stack)中的简单数据段,也就是说,它们的值直接存储在变量访问的位置。原始类型的值被称为原始值,是因为它们是不可细化的。原始类型有以下五种类型:Undefined,Null,Boolean,Number,String。对变量或值使用typeof运算符将会返回原始类型的字符串。


引用值

存储在堆(heap)中的对象,也就是说,存储在变量处的值是一个指针(point),指向存储对象的内存处。 


保留字与关键字  

关键字——是被js定义过的单词,如:var,function
保留字——目前还没被js定义单词,但是以后肯能会被js定义使用的单词,也就是很有可能在未来版本的js中会成为关键字的单词。所以不能使用保留字做标识符,如果用了,一旦新版本js发布,那么你之前的程序就会报错了。 


数据类型

数据类型分为:原始类型、对象类型、null、underfined

原始类型——包括数字,字符串,布尔值
对象类型——除了数字,字符串,布尔值,null,underfined之外的都是对象。
null,underfined分别代表了各自特殊类型的唯一成员。

 

变量声明

变量声明也就是使用var关键字来声明变量,如果在声明的时候未赋值,则它的初始值就是underfined。

用var关键字在函数体外声明的变量是全局变量;在函数体内使用var声明的变量则是局部变量,该变量只对该函数可见。

如果未使用var关键字声明的变量,无论它是否在函数体内声明的,它都是全局变量。

他们的区别是,使用var关键字声明的变量不能被delete删除,而未使用var声明的变量则是可以删除的。 


表达式、语句 

JavaScript中的表达式和语句是有区别的.一个表达式会产生一个值,它可以放在任何需要一个值的地方,比如,作为一个函数调用的参数.下面的每行代码都是一个表达式: 

myvar
3 + x
myfunc("a", "b")

语句可以理解成一个行为.循环语句和if语句就是典型的语句.一个程序是由一系列语句组成的.JavaScript中某些需要语句的地方,你可以使用一个表达式来代替.这样的语句称之为表达式语句.但反过来不可以:你不能在一个需要表达式的地方放一个语句.比如,一个if语句不能作为一个函数的参数

 

函数、方法

function 关键字声明的称为函数,函数是完成某个特定功能的一组语句。如没有函数,完成任务可能需要五行、十行、甚至更多的代码。这时我们就可以把完成特定功能的代码块放到一个函数里,直接调用这个函数,就省重复输入大量代码的麻烦。 

另外,函数本质上也是一个对象。


构造函数

构造函数是用函数来初始化一个新建对象,使用new运算符。JavaScript的构造函数并不是作为类的一个特定方法存在的;当任意一个普通函数用于创建一类对象时,它就被称作构造函数,或构造器。一个函数要作为一个真正意义上的构造函数,需要满足下列条件:

1、 在函数内部对新对象(this)的属性进行设置,通常是添加属性和方法。
2、 构造函数可以包含返回语句(不推荐),但返回值必须是this,或者其它非对象类型的值。


匿名函数

js中的匿名函数是一种很常见的函数类型,匿名函数可以简单理解为没有名字的函数,匿名函数的基本形式为:

(function(){...})();

 前面的括号包含函数体,后面的括号就是给匿名函数传递参数并立即执行之,匿名函数的作用是避免全局变量的污染以及函数名的冲突。


立即执行函数

js立即执行函数可以让你的函数在创建后立即执行,js立即执行函数模式是一种语法,可以让你的函数在定义后立即被执行,这种模式本质上就是函数表达式(命名的或者匿名的),在创建后立即执行。

立即执行函数的两种常见形式:( function(){…} )()和( function (){…} () ),一个是一个匿名函数包裹在一个括号运算符中,后面再跟一个小括号,另一个是一个匿名函数后面跟一个小括号,然后整个包裹在一个括号运算符中,这两种写法是等价的。要想立即执行函数能做到立即执行,要注意两点,一是函数体后面要有小括号(),二是函数体必须是函数表达式而不能是函数声明。  


命名空间

允许开发人员在一个独特, 应用相关的名字的名称下捆绑所有功能的容器。  使用命名空间(namespace)来组织代码,避免全局变量污染、命名冲突。遗憾的是,JavaScript中并不提供对命名空间的原生支持。


全局对象  

全局对象是预定义的对象,作为 JavaScript 的全局函数和全局属性的占位符。通过使用全局对象,可以访问所有其他所有预定义的对象、函数和属性。全局对象不是任何对象的属性,所以它没有名称。 
全局对象只是一个对象,而不是类。既没有构造函数,也无法实例化一个新的全局对象。

包装对象

js中一切皆对象,即便是三种原始类型的值——数值、字符串、布尔值,在一定条件下,也会自动转为对象,也就是原始类型的“包装对象”。  

所谓“包装对象”,就是分别与数值、字符串、布尔值相对应的Number、String、Boolean三个原生对象。这三个原生对象可以把原始类型的值变成(包装成)对象。


全局变量、局部变量

js的变量有两种作用域:全局变量和局部变量。没有使用 var 声明的变量和在function之外声明的变量都是全局变量,是window属性之一;
使用 var 声明的变量属于所在函数,不管在函数的哪个位置出现,等价于在函数一开始声明。局部变量比同名全局变量的优先级高,所以局部变量会隐藏同名的全局变量。要想访问被隐藏的全局变量就加上 window. 前缀。
js没有块作用域,在语句块之后,在函数结束之前,语句块定义的变量都是可以访问的。  

原型、原型链

原型是JavaScript中一个比较难理解的概念,原型相关的属性也比较多,对象有”prototype”属性,函数对象有”prototype”属性,原型对象有”constructor”属性。

因为每个对象和原型都有原型,对象的原型指向原型对象, 而父的原型又指向父的父,这种原型层层连接起来的就构成了原型链。


作用域

JavaScript作用域就是变量和函数的可访问范围,变量作用域分为全局作用域和局部作用域。

全局作用域:

1.没有用var声明的变量(除去函数的参数)都具有全局作用域,成为全局变量,所以声明局部变量必须要用var
2.window的所有属性都具有全局作用域
3.最外层函数体外声明的变量也具有全局作用域 
局部作用域:
1.函数体内用var声明的变量具有局部作用域,成为局部变量
 2.函数的参数也具有局部作用域   

总结:在函数体内局部变量的优先级高于同名的全局变量,声明局部变量必须用var

JavaScript是函数作用域(function scope),没有块级作用域。无论函数体内的变量在什么地方声明,对整个函数都是可见的,即JavaScript函数里声明的所有变量都被提前到函数体的顶部,只是提前变量声明,变量的赋值还是保留在原位置

函数作用域只能用函数来声明独立作用域,并不是每一个花括号都是一个独立作用域,例如:for循环并不能创建一个局部的作用域


作用域链

JavaScript的变量都是对象的属性,而该对象可能又是其它对象的属性,而所有的对象都是全局对象的属性,所以这些对象的关系可以看作是一条链, 链头就是变量所处的对象,链尾就是全局对象  

 在不包含嵌套的函数体内,作用域链上有两个对象:

 1.定义函数参数和局部变量的对象
 2.全局对象

在包含嵌套的函数体内,作用域链上至少有三个对象。


闭包

闭包是函数和声明该函数的词法环境的组合,这个环境包含了这个闭包创建时所能访问的所有局部变量。  闭包的特点:

1. 作为一个函数变量的一个引用,当函数返回时,其处于激活状态。
2. 一个闭包就是当一个函数返回时,一个没有释放资源的栈区。
简单的说,Javascript允许使用内部函数---即函数定义和函数表达式位于另一个函数的函数体内。而且,这些内部函数可以访问它们所在的外部函数中声明的所有局部变量、参数和声明的其他内部函数。当其中一个这样的内部函数在包含它们的外部函数之外被调用时,就会形成闭包。






链接: https://fly63.com/article/detial/1465

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!