JavaScript基础知识¶
备注
本文知识不足一哂,仅仅是我学习过程笔记(以加强记忆)
注释¶
JavaScript注释方法有2种:
单行注释
//
多行注释
/* */
大小写¶
ECMAScript (即JavaScript) 中的一切都区分大小写。也就是不论变量、函数名还是操作符,都区分大小写。
标识符¶
标识符,即 变量、函数、属性或函数参数。
标识符由一个或多个字符组成,首字母必须是字母、下划线(
_
)或美元符号($
);其他字符则可以包含数字 ( 不能使用减号-
,这点和 Shell Atlas 不同,切记)推荐采用驼峰命名方法,即 第一个单词首字母小写,后面每个单词的首字母大写 (虽然不是强制,但是是 最佳实践 ,我个人觉得也许可以在Shell中也使用类似命名方法)
和所有语言一样,关键字、保留字、
true
、false
和null
不能作为标识符
语句¶
ECMAScript 的语句以 分号 (
;
)结尾(同 C Atlas )多条语句可以合并到一个C语言风格的代码块中:
if (test) {
test = false;
console.log(test);
}
变量¶
ECMAScript的变量是 松散类型 ,也就是变量可以保存任何类型的数据。
有3个关键字可以声明变量:
var
: 函数作用域有效const
let
: 代码块作用域有效(也就是let
作用域更小,类似在if ... {...}
这样的代码块中有效)定义多个变量的方法:
var message = "hi",
found = false,
age = 29;
变量作用域¶
使用var操作符定义的变量会成为包含它的函数的局部变量 : 也就是说,如果在一个函数内部使用
var
定义一个变量。则这个变量在函数退出时被销毁。如果在函数内部省略
var
操作符,则创建的变量是 全局变量
警告
在局部作用域定义全局变量会导致程序很难维护。在严格模式下,如果给未声明的变量赋值,会导致抛出 ReferenceError
函数作用域内部通过
var
定义变量,则这个变量定义语句在作用域内部任何位置都是一样的,ECMAScript会自动将所有变量定义语句都拉到函数作用域的顶部;并且多次使用var
声明同一个变量也没有问题(最后一个生效)let
定义的变量只在代码块部分有效,而且不会自动提升到代码块顶部;也就是说如果let
定义变量的语句在使用这个变量的语句之后,就会触发ReferenceError
合理使用
let
申明块变量可以 避免循环定义的迭代变量渗透到循环体外部 :
for (let i = 0; i < 5; ++i) {
// 这里变量 i 只在for循环内部有效,可以避免循坏体外部使用变量 i 时候误被这里的循环变量i 污染
}