刚开始学javascript经常看到各种专业名词,在此整理一下个人的学习笔记:

直接量

直接量——就是程序中直接使用的数据值,如:
88           //数字(String)
"hello world"    //字符串(Number)
true        //布尔值(Boobean)
/[a-z][0-9]/    //正则表达式(RegExp)
null        //空值(null)
{x:1,y:2}     //对象(Object)
[1,2,3,4,5]   //数组(Array)

标识符(变量名)

标识符——就是一个名字,用来对变量和函数进行命名,说白了就是变量名,如:
var str="hello world" //str就是一个标识符
function sayHi(){ alert("hello world");}   //sayHi就是一个标识符

保留字与关键字

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

数据类型

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

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

变量声明

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

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

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

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

var str="使用var声明的变量";
str2="我未使用var关键字";
console.log(delete str); //false
console.log(delete str2); //true
console.log(str); //使用var声明的变量
console.log(str2); //str2 is not defined

函数作用域和声明提前

函数作用域——变量在声明它们的函数体以及这个函数体嵌套的任意函数体内都是有定于的。也就是说函数内声明的所有变量在函数体内始终是可见的。正因如此,使得在函数体内,变量在声明之前已经可用——这个特征被称为“声明提前”。

 var scope="global";
function f(){
console.log(scope); //输出的是"underfined",而不是global
var scope="local";
console.log(scope); //输出的是"local"
}
f();
console.log(scope); //输出的是"global" //上面的代码等同于:
var scope="global";
function f(){
var scope; //声明为赋值,初始值就是underfined
console.log(scope); //输出的是"underfined",而不是global
var scope="local";
console.log(scope); //输出的是"local"
}
f();
console.log(scope); //输出的是"global"

在把代码修改一下,就可以看出声明变量的是时候是否使用var关键字的区别了:

 var scope="global";
function f(){
console.log(scope); //输出的是"global",而不是"underfined"
scope="local"; //未使用var关键字声明的变量是全局变量,在此会把之前的同名的全局变量的值修改了。
console.log(scope); //输出的是"local",而不是"global"
}
f();
console.log(scope); //输出的是"local",原来的值被覆盖了

javascript各种专业名词的更多相关文章

  1. Android开发专业名词及工具概述

    前言: 系统的学习下Android开发中涉及到的一些专业名词 和Android开发工具 名词: 一.SDK(Software Development Kit) 软件开发工具包:一般都是一些软件工程师为 ...

  2. [专业名词·硬件] 2、DC\DC、LDO电源稳压基本常识(包含基本原理、高效率模块设计、常见问题、基于nRF51822电源管理模块分析等)·长文

    综述先看这里 第一节的1.1简单介绍了DC/DC是什么: 第二节是关于DC/DC的常见的疑问答疑,非常实用: 第三节是针对nRF51822这款芯片电源管理部分的DC/DC.LDO.1.8的详细分析,对 ...

  3. Javascript中的名词

    BOM(Browser Object Model)是指浏览器对象模型,它使 JavaScript 有能力与浏览器进行"对话". DOM (Document Object Model ...

  4. [专业名词·硬件] 1、等效串联电阻ESR概述及稳压电路中带有一定量ESR电容的好处

        一.等效串联电阻ESR概述 ESR是Equivalent Series Resistance的缩写,即“等效串联电阻”.理想的电容自身不会有任何能量损失,但实际上,因为制造电容的材料有电阻,电 ...

  5. IT 需要知道的一些专业名词和解释 (长期更新)

    c2c: 就是我卖东西你来买  (comsumer to comsumer个人对个人) b2c: 就是我开公司卖东西你来买 (business to comsumer 公司对个人) o2o: 就是我开 ...

  6. lucene 专业名词作用整理

    是否切词:对关键词是否切分,举例,姓名域的一个值:"张三" , 是否切分成"张"."三"等等多个term. 是否索引:建立索引的时候是否对该 ...

  7. redux相关专业名词及函数提要

    redux: 用来管理react app 状态(state)的一个架构. store: 通过createStore()创建,用来存放state,与react app是完全分离的.createStore ...

  8. 学习Zookeeper需要了解的专业名词

    一.Zookeeper的集群角色 Leader:该角色是整个zookeeper集群工作机制中的核心 Follower:该角色是zookeeper集群状态的跟随者 Observer:在集群中充当观察者的 ...

  9. WMS专业名词解释

    1.摘果:按照单一客户上订单的内容进行拣选货品(即去货位上拣货),拣选完成后即可直接进行质检.包装. 2.播种:将多个客户订单上的货品进行汇总,然后对这些货品进行拣选.拣选完成后,再区分出每一个客户的 ...

随机推荐

  1. 创建一个MVC解决方案,添加一个控制器后,运行程序报错:”/"未找到服务器

    1.创建一个MVC项目,如图

  2. CallableStatement执行存储过程

    /** * 使用CablleStatement调用存储过程 * @author APPle * */ public class Demo1 { /** * 调用带有输入参数的存储过程 * CALL p ...

  3. thrift的简单实现

    1.使用windows实现,首先在apache官网下载一个thrift的编译工具,在项目中建一个文件叫add.thrift的文件,内容如下: namespace java com.vipshop.sa ...

  4. 从客户端(xxxxxxxxxxxxxxxxxxxxxx)中检测到有潜在危险的 Request.Form 值。

    在项目中用到了富文本编辑器,当将编辑器中的值从视图传递到控制器时,控制器就会向浏览器返回“从客户端(xxxxxxxxxxxxxxxxxxxxxx)中检测到有潜在危险的 Request.Form 值.” ...

  5. 高性能web

    http://developer.51cto.com/art/201104/255619.htm http://developer.51cto.com/art/201104/254031.htm ht ...

  6. ural 1671 Anansi's Cobweb

    这道题是并差集的简单应用 #include <cstdio> #include <cstring> #include <algorithm> #define max ...

  7. Android读取Assert文件夹下txt文本并变为String的方法

    使用场景,在assert文件夹下 有些文本文件,我们需要通过工具类读取出来,然后放到String字符串中,我们该如何操作呢: 直接上代码: 使用方法: MyActivity.readAssertRes ...

  8. Android中ListView同过自定义布局并使用SimpleAdapter的方式实现数据的绑定

    1.listview的数据填充可以通过ArrayAdapter,SimpleAdapter,也可以是一个xml文件,但是ArrayAdapter与SimpleAdapter的区别是: 2 ArrayA ...

  9. ASP.NET MVC 3 Razor Nested foreach with if statements

    You need to write code this way. @Html.Raw("<tr>") Copy the below code and paste it ...

  10. 使用 APPLY

    原文地址:http://technet.microsoft.com/zh-cn/library/ms175156(v=SQL.105).aspx 使用 APPLY 运算符可以为实现查询操作的外部表表达 ...