一、特性介绍
动态化类型:同一个变量可以存储不同类型的值
多范式编程:即支持面向对象,也支持指令式和函数式
单线程驱动:避免死锁问题
事件驱动:程序中各个事件是彼此独立的,需要解决它们之间的协作
异步编程:以回调函数的形式存在
二、变量、表达式与语句
1.1 变量
const name = 'myname';
这里是在程序中定义了一个叫做name的变量
变量名区分大小写!
创建变量的方法:
let、const
声明和var
声明用法一样,不同点在于let、var
声明的是变量,const
声明的是常量。var
存在变量提升,let、const
不存在变量提升。var
在全局作用域声明的变量会挂载在window
对象上,它会创建一个新的全局变量作为全局对象的属性,这种行为说不定会覆盖到window
对象上的某个属性,而let const
声明的变量则不会有这一行为。
变量提升是指在 JavaScript 代码执行过程中,JavaScript 引擎把变量的声明部分和函数的声明部分提升到代码开头的行为。变量被提升后,会给变量设置默认值为 undefined。
1.2 操作符
基本操作符分为位操作符、算数操作符、逻辑操作符、关系操作符、字符串操作符和赋值操作符
对象操作符分为函数、数组、实例和类型
1.3 表达式
语句块:使用{ }将语句括在一起构成一个语句块
条件语句:
if (条件语句)
分支语句
else if (条件语句)
分支语句
else (条件语句)
分支语句
循环语句:
for (定义循环变量;循环条件测试;更新循环变量)
被循环语句
while (循环条件测试)
被循环语句
三、函数
1.function语句形式
function 函数名称(形参列表){
语句
}
function add (x,y){
return x+y;
}
2.直接量形式
定义变量关键字 变量名 = function(形参列表){
语句
}
const add = function (x,y){
return x+y;
}
3.构造函数形式
定义变量关键字 变量名 = new Function()('形参列表','语句')
const add = new Function('x,y','return x+y;');
对象就是将函数和其相关的数据封装而成的整体,其中函数称为对象的方法,数据称为对象的属性
1.直接量形式
定义变量关键字 对象名 = 对象直接量
let point = {
x:10,
y:10,
printCoords:function(){
console.log('坐标:('+this.x+','+this.y+')');
}
};
2.构造函数形式
定义变量关键字 对象名 = new 构造函数(构造实参)
function Point(x,y){
this.x = x;
this.y = y;
this.printCoords = function(){
console.log('坐标:('+this.x+','+this.y+')');
}
};
3.类定义形式
class 类名{
constructor(构造形参){
创造属性
}
定义方法
}
class Point{
constructor(x,y){
this.x = x;
this.y = y;
}
printCoords(){
console.log('坐标:('+this.x+','+this.y+')');
}
};