主要内容:

  • 语法
  • 数据类型
  • 流控制语句
  • 理解函数

ECMA-262描述了JavaScript语法等基本概念。目前,ECMA-262第3版中定义的ECMAScript是各个浏览器实现最多的版本。所以主要按照第3版地冠以的ECMAScript介绍语言的基本概念,并就第5版的变化给出说明

3.1 语法

3.1.1 区分大小写

例如 test与Text分别表示两个不同的变量。函数名称不能用typeof,但是TypeOf是一个有效的函数名。

3.1.2 标识符

所谓标识符,就是指变量、函数、属性的名字,或者函数的参数。标识符可以按照下列格式规则组合起来的一个或多个字符:

第一个字符必须是字母、下划线(_)或美元符号($)。

其他字符可以是字母、下划线、美元符号或数字。

标识符中的字母可以包含扩展的ASCII或Unicode字母字符,但是不推荐这样做。标识符命名采用驼峰命名法。

关键字、保留字、true、false和null不能用作标识符。

3.1.3 注释

与C风格注释相同,包括单行注释和块级注释。

//单行注释

/*

多行( 块级)注释

*/

3.1.4 严格模式

ECMAScript 5 引入了严格模式的概念。为JavaScript定义了一种不同的解析和执行模型。在严格模式下,ECMAScript 3 中一些不确定的行为将得到处理,而且对某些不安全的操作也会抛出错误。在整个脚本中启用严格模式,可以在顶部添加以下代码:

"use strict"

在函数内部的上方包含这条编译指示,也可以指定函数在严格模式下执行:

function doSomething(){

"use strict"

//函数体

}

支持严格模式的浏览器包括IE10+、Firefox 4+、Safari 5.1+、Opera 112+ 和Chrome。

3.1.5 语句

ECMAScript中的语句以一个分号结尾;如果省略分号,则由解析器确定语句的结尾。虽然语句结尾的分号不是必需的,但我们建议任何时候都不要省略它。因为这样可以避免很多错误。

3.2 关键字和保留字

ECMA-262描述了一组具有特定用途的关键字,这些关键字可用于表示控制语句的开始或结束,或用于执行特定的操作等。ECMAScript的全部关键字(带*号的是第5版新增关键字)如下:

ECMA-262还描述了另外一组不能用作标识符的保留字,它们有可能将来被用作关键字。以下是ECMA-262第3版定义的全部保留字:

第5版把非严格模式下运行时的保留字缩减为下列这些:

在严格模式下,第5版还对以下保留字施加了限制:

let和yield是第5版新增的保留字

3.3 变量

ECMAScript的变量是松散类型的,可以保存任何类型的数据。每个变量仅仅是一个用于保存值得占位符而已。定义变量时要使用var操作符。

var message;

这行代码定义了一个名字为message的变量,该变量可以用来保存任何值(未经初始化的变量,会保存一个特殊的值undefined)。ECMAScript也支持直接初始化变量,因此在定义变量的同时可以设置变量的值。

var message="hello";

message=100;//有效,但不推荐。

使用var操作符定义的变量将成为定义该变量的作用域中的局部变量。如果在函数中使用var定义一个变量,那么这个变量在函数退出后就会被销毁,例如:

function test(){

var message="hello";//局部变量

}

test();

alert(message);//错误

如果定义变量时,省略了var,这就会创建一个全局变量

function test(){

message="hello";//局部变量

}

test();

alert(message);//"hello"

这样,只要调用过一次test()函数,这个变量就有了定义,就可以在函数外部的任何地方被访问到。

虽然省略var操作符可以定义全局变量,但是我们不推荐这么做。因为在局部作用域中定义的全局变量很难维护,而且如果有意地忽略var操作符,也会由于相应 的变量不会马上就有定义而导致不必要的混乱。给未经声明的变量赋值在严格模式下会导致抛出ReferenceError错误。

可以使用一条语句定义多个变量,之间用逗号分隔

var message="hello",

found=false,

age=18;

在严格模式下,不能定义名为eval或arguments的变量,否则会导致错误。

JavaScript的基本概念的更多相关文章

  1. javascript,jquery(闭包概念)(转)

    偶尔听人说javascript闭包,让我联想起以前学编译原理和数字逻辑里讲的闭包,以前上课讲的闭包很难懂,而且含有递归的意思在里面,现在不想再查看里面的闭包概念. 但javascript我是经常要用, ...

  2. JavaScript之DOM概念

    一.DOM概念 1.DOM是什么? 1.1 起源.DOM起源于Netscape与Microsoft 公司的DHTML(动态HTML). 1.2 名词解释.Document Object Model,文 ...

  3. JavaScript之基本概念(一)

    在我们学习一门编程语言之前,我们应该先了解它的一些基本概念,包括它是什么,它能用来干什么,怎么用等等.这部分内容建议学习时间一天. 一 何为‘JavaScript’ 1 .    什么是JavaScr ...

  4. JavaScript 的基本概念( ES5 )

    语法 区分大小写 标识符 第一个字符必须是一个字母,下划线或者一个美元符( $ ).其他规则无论,最好按照通用的驼峰大小写. 注释 // 单行注释 /* 多行注释 */ 严格模式 在顶部添加如下代码 ...

  5. JavaScript闭包的概念及用法

    1.闭包的概念: 闭包就是能够读取其他函数内部变量的函数. 例如: function f1(){ var n=999; function f2(){ alert(n); } return f2; } ...

  6. JavaScript函数的概念

    函数是这样的一段代码,它只定义一次,但可能被执行或调用任意多次. JavaScript函数是参数化的:函数的定义会包含形参,这些参数在函数的整体中像局部变量一样工作.函数调用时会为形参提供实参的值.除 ...

  7. javascript中重要概念-闭包-深入理解

    在上次的分享中javascript--函数参数与闭包--详解,对闭包的解释不够深入.本人经过一段时间的学习,对闭包的概念又有了新的理解.于是便把学习的过程整理成文章,一是为了加深自己闭包的理解,二是给 ...

  8. JavaScript一些关键概念

    垃圾回收:http://www.cnblogs.com/dolphinX/p/3348468.html 引用计数和标记清除 作用链和闭包:http://www.cnblogs.com/dolphinX ...

  9. [javascript|基本概念|一元操作符]学习笔记

    只操作一个值的操作符 递增/递减操作符 前置型/后置型 前置型:操作符位于操作数前面 e.g.: var a = 30; ++a; 等同于 var a = 30; a = a + 1; --> ...

随机推荐

  1. 微信小程序 功能函数 点击传参和页面

    // 商品详情页跳转函数 detailInto: function (e) { // console.log() var change = e.currentTarget.dataset.id; wx ...

  2. ADO.NET:C#/SQL Server

    1.首次要准备的(工具)是:a.Microsoft Visual Studio Ultimate 2012;b.Microsoft SQL Server Management Studio ; 2.首 ...

  3. python对excel操作

    学习一下:原文链接:http://www.cnblogs.com/lhj588/archive/2012/01/06/2314181.html 一.安装xlrd模块 到python官网下载http:/ ...

  4. Fortinet Security Fabric

    Fortinet Security Fabric 这个世界从不固步自封.在技术方面,这意味着解决方案供应商必须保持不断创新和探索才能实现生存与发展. 在网络安全领域,这更是至理名言.许多黑客都是才华横 ...

  5. 【最大流/二分图匹配】【网络流24题】【P3254】 圆桌问题

    Description 假设有来自m 个不同单位的代表参加一次国际会议.每个单位的代表数分别为ri (i =1,2,--,m). 会议餐厅共有n 张餐桌,每张餐桌可容纳ci (i =1,2,--,n) ...

  6. JAVA中的File.separate(跨平台路径)

    转: JAVA中的File.separate(跨平台路径) 2016年03月27日 23:33:50 才不是本人 阅读数:1952   在Windows下的路径分隔符和Linux下的路径分隔符是不一样 ...

  7. 人人贷网的数据爬取(利用python包selenium)

    记得之前应同学之情,帮忙爬取人人贷网的借贷人信息,综合网上各种相关资料,改善一下别人代码,并能实现数据代码爬取,具体请看我之前的博客:http://www.cnblogs.com/Yiutto/p/5 ...

  8. Python【第三方模块&标准模块】

    模块: 模块其实就是一个python文件 1.标准模块.标准包 #python自带的这些模块,直接import就能用的 import string,random,datetime,os,json 2. ...

  9. P3155 [CQOI2009]叶子的染色

    P3155 [CQOI2009]叶子的染色 题目描述 给一棵m个结点的无根树,你可以选择一个度数大于1的结点作为根,然后给一些结点(根.内部结点和叶子均可)着以黑色或白色.你的着色方案应该保证根结点到 ...

  10. Hadoop生态圈-Sqoop部署以及基本使用方法

    Hadoop生态圈-Sqoop部署以及基本使用方法 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Sqoop(发音:skup)是一款开源的工具,主要用于在Hadoop(Hive)与 ...