JS可以开发浏览器端的交互效果
JS还可以进行服务器端开发,例如:访问数据库、调用其它服务器..
JS的语法规范:
区分大小写
每行代码结束的分号可以省略
分为单行注释(//..)和多行注释(/*…*/)
一、变量---用于存储数据的容器
创建变量的六种方式中:var/function
有变量提升,而let/const/class/import
都不存在这个机制
在浏览器开辟栈内存供代码自上而下执行之前,不仅有变量提升的操作,还有很多其他的操作 => “词法解析”或者“词法检测”:就是检测当前即将要执行的代码是否会出现“语法错误 SyntaxError”,如果出现错误,代码将不会再执行(第一行都不会执行)
在相同的作用域
- 如果使用
var/function
关键词声明变量并且重复声明,是不会有影响的(声明第一次之后,之后再遇到就不会再重复声明了) - 但使用
let/const
就不行,浏览器会校验当前作用域中是否已经存在这个变量了,如果已经存在了,则再次基于let
等重新声明就会报 - 常量
相对于变量来说,常量是不会改变的,我们可以把JS中的数据值理解为常量,例如1就是数字1,不可能变成其它的,所以它就是常量。每⼀个具体的数据类型都是常量
如果和变量对⽐,我们的常量应该是:定义⼀个常量名字,给它存储⼀个值,这个值是不可能修改的,在新版本ECMAScript(ES6/ES7)中,我们可以使用const来定义一个常量。 -
var a=1; var c; a=4; console.log(a); //结果为4 consolo.log(c) //undefined(未定义) console.log(n); //undefir let b=3; let d; console.log(b); //undefined(未定义) console.log(d); //报错,不允许不赋值