第三章 基本概念
3.1 语法
3.1.1 区分大小写
- 变量名test和Test完全不同
3.1.2 标识符:变量、函数、属性的名字,或者函数的参数
- 命名规则
- 第一个字符必须是一个字母、下划线、或者美元符号$
- 其他字符可以是字母、下划线、美元符号、数字
- 采用驼峰大小写格式:第一个字母小写,剩下每个单词首字母大写。
- for example:myName、herAge。
- 驼峰式命名虽不是强制要求,但可以视为一种最佳实践。
3.1.3 注释
包括单行注释和块级注释。
- 单行注释:以两个斜杠开头。如下所示:
// alert(“HelloWorld!”)
- 块级注释:以一个斜杠和一个星号(
3.1.4 严格模式
- 定义:为JavaScript定义的一种不同的解析与执行模型。
- 使用方法:
- 在整个脚本中启用严格模式,可以在顶部添加代码
“use strict”;
。 - 也可以在函数内部的上方包含这条编译指示。
- 在整个脚本中启用严格模式,可以在顶部添加代码
- 使用效果:严格模式下,ECMAScript3中的一些不确定行为会得到处理,而且对某些不安全的操作也会抛出错误。严格模式下,js的执行效果会有很大不同。
3.1.5 语句
- ECMAScript中的语句以一个分号结尾,但非必需。
- 若省略分号,则由解析器确定语句的结尾。
- 建议不要省略分号,因为写上解析器就不必要再花时间推测应该在哪里插入分号了。
3.2 关键字和保留字
ECMA-262描述了一组具有特定用途的关键字和一组不能用做标识符的保留字。
- 关键字:可以用于表示控制语句的开始或结束、或用于执行特定操作等。
- 保留字:保留字虽然在这门语言中还没有特定的用途,但他们有可能在将来被用作关键字。
3.3 变量
- ECMAScript的变量是松散类型,即可以用来保存任何类型的数据。
- 定义变量时要用var操作符,后跟变量名,例如
var message
,当然了,也可以直接在定义的时候对变量做一个初始化,例如var message = ‘hi’ ;
- 这段的意思是变量message中保存了一个字符串“hi”。像这样初始化变量并不会把它标记为字符串类型,初始化的过程就只是给变量赋了一个值。
- 因此,划重点,可以在修改变量的同时修改值的类型。例如:
var message = ‘hi’ ; message = 100 ; //有效,但不推荐 //这个例子代表变量message一开始保存了一个字符串“hi”,然后该值又被一个数字值100取代了。
- 有一点需要注意,用var操作符定义的变量将成为该变量的作用域中的局部变量。也就是说如果在函数中使用var定义一个变量,那么这个变量在函数退出后就会被销毁。例如:
function test(){ var message = ‘hi’ ; //局部变量 } ; test(); alert(message); //错误 //为什么是错误? //这里,变量message是在函数里用var定义的,当函数被调用时,就会创建该变量并为其赋值。而在此之后,这个变量会立即被销毁。所以在执行alerat()那行代码的时候message已经被销毁了,因此报错。
那么,该怎么解决呢?
- 在函数内部省略掉var操作符,就可以创建一个全局变量,例子:
function test(){ message = ‘hi’ ; //局部变量 } ; test(); alert(message); // hi //在函数内部不用var会创建全局变量。 //但我们并不提倡这种做法,因为局部作用域中定义的全局变量很难去维护。 //所以我们应该选择在开始就定义好所有的变量。