基本概念
任何语言的核心,都会描述这门语言最基本的工作原理。而描述的内容都会涉及到这门语言的语法、操作符、数据类型、内置功能等用于构建复杂解决方案的基本概念。如上所述,ECMA-262通过叫做ECMAscript的“伪语言”为我们描述javascript的基本概念
语法
- 区分大小写
ECMAscript的一切(变量、函数名和操作符)都区分大小写 例如:变量名Test和变量名test分别代表不同的变量 - 标识符
所谓的标识符,就是指变量、函数、属性的名字,或者函数的参数
规则:
1、第一个字符必须是一个字母、下划线(_)或者一个美元符号( )2、其他字符可以是字母、下划线、美元符号( ) 2 、 其 他 字 符 可 以 是 字 母 、 下 划 线 、 美 元 符 号 ( )、数字
可以使用ASCII或者Unicode字母字符
书写方:ECMAScript标识符采用驼峰大小写格式 例如:testOne
注意:不能把关键字、保留字、true、false和null用作标识符 注释
//单行注释 /* *这是一个多行注释 */
- 严格模式
ECMAScript 5引入严格模式的概念
function doSomething () {
'use strict'
}
支持严格模式的浏览器包括 IE 10+、Firefox 4+、Safari 5.1+、Opera 12+ 和Chrome - 语句
ECMAScript中的语句以一个分号(;)结尾
关键字保留字
ECMA-262描述了一组具有特定用途的关键字,这些关键字可用于表示控制语句的开始或结束,或者用于执行特定的操作等。按照规则,关键字也是语言保留的,不能用作标识符,详细内容见《javascrip高级程序设计(第三版)》第三章 3.2 关键字和保留字
变量
ECMAScript的变量是松散类型的,所谓的松散类型就是指就是可以用来保存任何类型的数据。话句话说每个变量仅仅是用于保存值得占位符而已。
定义变量时要使用var操作符,ECMAScript 5又添加let、const来声明变量
//例如:
var message = 'abc'
注意:用var声明的变量,将成为定义该变量的作用域中的局部变量。也就是说如果函数中用var定义了一个变量,那么这个变量退出后就会被销毁
//例如
function test () {
var message = 'ab';
}
test ();
console.log(message) //报错
这里,变量message是在函数中使用var定义的。当函数被调用时,就会创建该变量并为其赋值。而在此之后,这个变量就会立即被销毁。
数据类型
数据类型包括基本数据类型(Undefined、Null、Boolean、Number、String)、复杂数据类型(Object)
- Object类型
Object的每个实例都具有下列属性和方法
1、constructor:保存着用于创建当前对象的函数
2、hasOwnPrototype(prototypeName):用于检测给定的属性在当前对象的实例中(而不是在实例的原型中)是否存在。
3、isPrototypeOf(object):用于检查传入的对象是否是传入对象的原型
4、prototypeIsEnumerable(prototypeNmae):用于检查给定的属性是否能够使用for-in语句来枚举。与hasOwnPrtotype()方法一样,作为参数的属性名必须以字符串的形式指定