1.组成
ECMAscript BOM DOM
ECMAscript 描述了该语言的语法和基本对象
文档对象模型(DOM),描述处理网页内容的方法和接口
浏览器对象模型(BOM),描述与浏览器进行交互的方法和接口
2.特点
1.客户端代码,在客户机执行
1.Javascript特殊的地方在于它也可以作为服务器端代码执行,但是需要搭建Node环境。node hello.js
2.在浏览器上运行
2.弱类型语言重复声明不会报错
3.解析性语言,需要内置于浏览器或者nodejs平台的js解析器解析执行
4.从上往下按照顺序执行
3.注释
单行注释 //
多行注释
4.标识符/变量命名规则
1.变量名由字母,数字,下划线以及$组成。
2.不要使用下划线或者数字作为变量名的开头
3.变量名应该具有一定的意义,使用小驼峰命名规则;
4.不要使用关键字或是保留字
关键字break do try typeof
保留字class float package throws
5.变量
定义变量采用var关键字
声明 var message;
初始化 message = "hello"
声明并初始化 var message = "hello";
定义多个变量 var message= "hello",found=false,age = 29;
6.var let const
1.使用var声明的变量存在变量提升
2.使用var声明的变量可以重复声明
3.var声明的变量作用域没有块级作用域
1.function foo(){
if(true){
var a='hello';
console.log(a);//hello
}else{
}
console.log(a);//hello
}
foo()
console.log(a);//报错
2.//如果在函数中定义变量没有加var,该变量为全局变量
function test(){
message = "hello";
}
test();
console.log(message); //可以访问
3.//用var操作符定义的变量将成为定义该变量的作用域中的局部变量
//全局作用域
function b() {
a = 10;
return;
}
var a = 1;
b();
console.log(a);//10
2.let 用于声明一个变量
1 变量不会提升,即在变量声明之前无法使用该变量
2.不可以重复声明
3.具有块级作用域,只在当前作用域有效
3.const 用于声明一个常量
1.变量声明不会被提升,即在变量声明之前无法使用该变量
2.不允许重复声明。
3.具有局部作用域,即const声明的变量只能在对应代码块中使用
4.const声明的变量在声明的时候就需要赋值,并且只能赋值一次,不能修改。