语言基础1
语法
区分大小写
标识符
- 第一个字符必须是字母,
下划线
或美元符号($); - 驼峰命令:第一个单词首字母小写,后面每个单词首字母大写;
注释
- 单行
//
- 多行
/*... */
严格模式
- 脚本开头
"use strict"
(有引号) - 函数体开头
1 |
|
语句
- 代码块使用花括号
- 加分号
保留字与关键词
break | do | in | typeof |
---|---|---|---|
case | else | instanceof | var |
catch | export | new | void |
class | extends | return | while |
const | finally | super | with |
continue | for | switch | yield |
debugger | function | this | default |
if | throw | delete | improt |
enum(将来用) |
严格模式
implements | package | public |
---|---|---|
interface | protected | static |
let | private | await |
eval | arguments |
变量
关于javastript变量,等日后更加了解堆栈之后,再做细致探讨
var
1 |
|
1 |
|
var声明作用域(函数作用域)
用var操作符定义的变量会成为包含它的函数的局部变量。
1 |
|
可以通过省略var,创建全局变量,但不推荐,且严格模式不可用
1 |
|
1 |
|
小tip,定义多个变量时,可以在一条语句中用逗号分隔每个变量
1 |
|
var声明提升,提到函数作用域顶部,多次声明同一变量没有问题,去最新的一个为最终值。
1 |
|
变量提升 foo函数等同于foo_1
1 |
|
1 |
|
let声明(块作用域)
为了更好的理解var
和let
的区别,借用mdn里的例子或许更好的一点。这里的函数作用域和块作用域更加直观一点,关于作用域的探讨,后面再做。
出现这样的结果是因为var
和let
的作用域不同
let
不允许同一个块中出现冗余声明。
注意区分是否在同一块作用域
let
没有变量提升
全局声明
与var
关键词不同,使用let在全局作用域中声明的变量不会成为window对象
条件声明
因为let
的作用是块,所以不可能检查前面是否已经使用let
声明过同名变量,不能进行条件试声明.
const声明
const
与let
的行为基本相同,唯一一个重要的区别是用它声明变量时必须同时初始化变量,且不能修改const声明变量的值。const
声明的限制只适用于与它指向的变量的引用。换句话说,如果const
变量引用的是一个对象,那么修改对象的属性并不违反const
的规则。
语言基础1
https://lijusting.top/posts/fd87b51f/