JavaScript的基本概念
主要内容:
- 语法
- 数据类型
- 流控制语句
- 理解函数
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的基本概念的更多相关文章
- javascript,jquery(闭包概念)(转)
偶尔听人说javascript闭包,让我联想起以前学编译原理和数字逻辑里讲的闭包,以前上课讲的闭包很难懂,而且含有递归的意思在里面,现在不想再查看里面的闭包概念. 但javascript我是经常要用, ...
- JavaScript之DOM概念
一.DOM概念 1.DOM是什么? 1.1 起源.DOM起源于Netscape与Microsoft 公司的DHTML(动态HTML). 1.2 名词解释.Document Object Model,文 ...
- JavaScript之基本概念(一)
在我们学习一门编程语言之前,我们应该先了解它的一些基本概念,包括它是什么,它能用来干什么,怎么用等等.这部分内容建议学习时间一天. 一 何为‘JavaScript’ 1 . 什么是JavaScr ...
- JavaScript 的基本概念( ES5 )
语法 区分大小写 标识符 第一个字符必须是一个字母,下划线或者一个美元符( $ ).其他规则无论,最好按照通用的驼峰大小写. 注释 // 单行注释 /* 多行注释 */ 严格模式 在顶部添加如下代码 ...
- JavaScript闭包的概念及用法
1.闭包的概念: 闭包就是能够读取其他函数内部变量的函数. 例如: function f1(){ var n=999; function f2(){ alert(n); } return f2; } ...
- JavaScript函数的概念
函数是这样的一段代码,它只定义一次,但可能被执行或调用任意多次. JavaScript函数是参数化的:函数的定义会包含形参,这些参数在函数的整体中像局部变量一样工作.函数调用时会为形参提供实参的值.除 ...
- javascript中重要概念-闭包-深入理解
在上次的分享中javascript--函数参数与闭包--详解,对闭包的解释不够深入.本人经过一段时间的学习,对闭包的概念又有了新的理解.于是便把学习的过程整理成文章,一是为了加深自己闭包的理解,二是给 ...
- JavaScript一些关键概念
垃圾回收:http://www.cnblogs.com/dolphinX/p/3348468.html 引用计数和标记清除 作用链和闭包:http://www.cnblogs.com/dolphinX ...
- [javascript|基本概念|一元操作符]学习笔记
只操作一个值的操作符 递增/递减操作符 前置型/后置型 前置型:操作符位于操作数前面 e.g.: var a = 30; ++a; 等同于 var a = 30; a = a + 1; --> ...
随机推荐
- bing 搜索引擎 无法访问 bug
bing 搜索引擎 无法访问 bug 自从 Google 不好正常使用以后, 一直在使用 bing, 今天突然就 无法访问了,怎么回事?被黑了? ... loading https://cn.bing ...
- Java并发编程实战3-可见性与volatile关键字
1. 缓存一致性问题 在计算机中,每条指令都是在CPU执行的,而CPU又不具备存储数据的功能,因此数据都是存储在主存(即内存)和外存(硬盘)中.但是,主存中数据的存取速度高于外存中数据的存取速度(这也 ...
- Django 2.0 学习(21):Django Session
Django Session Session 与Cookie 1.简介 1.Cookie不属于http协议范围,由于http协议无法保持状态,但实际情况,我们又需要"保持状态",因 ...
- 在CentOS中安装与配置SVN的方法
安装说明系统环境:CentOS-6.4安装方式:yum install (源码安装容易产生版本兼容的问题)安装软件:系统自动下载SVN软件 1.检查已安装版本 #检查是否安装了低版本的SVN[root ...
- Alpha 冲刺 —— 十分之十
队名 火箭少男100 组长博客 林燊大哥 作业博客 Alpha 冲鸭鸭鸭鸭鸭鸭鸭鸭鸭鸭! 成员冲刺阶段情况 林燊(组长) 过去两天完成了哪些任务 协调各成员之间的工作 测试整体软件 展示GitHub当 ...
- 【bzoj3575】 Hnoi2014—道路堵塞
http://www.lydsy.com/JudgeOnline/problem.php?id=3575 (题目链接) 题意 给出一个有向图和一条最短路,问最短路上任意一条边断掉,此时的最短路是多少. ...
- Libssh认证绕过CVE-2018-10933漏洞复现
0x00 漏洞描述 libssh 0.6 及以上的版本,在服务端的代码实现中存在身份认证绕过漏洞.在向服务端认证的流程中,攻击者通过将 SSH2_MSG_USERAUTH_REQUEST 消息替换为 ...
- CodeVs.1036 商务旅行 ( LCA 最近公共祖先 )
CodeVs.1036 商务旅行 ( LCA 最近公共祖先 ) 题意分析 某首都城市的商人要经常到各城镇去做生意,他们按自己的路线去做,目的是为了更好的节约时间. 假设有N个城镇,首都编号为1,商人从 ...
- 单点登录(十一)-----遇到问题-----cas启用mongodb验证方式报错--Unable to locate Spring NamespaceHandler for XML schema na
cas启用mongodb验证方式报错--Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.sp ...
- Android Studio下“Error:Could not find com.android.tools.build:gradle:2.2.1”的解决方法
ref from: Android Studio下“Error:Could not find com.android.tools.build:gradle:2.2.1”的解决方法http://blog ...