变量
-
声明
let message; massage='hello';
-
var与let
常量
const myBirthday='122121';
-
大写形式的常数
const COLOR_RED='#F00';
数据类型
可以将任何类型的值存入变量:动态类型。
-
Number类型
-
Infinity:无穷大
-
NaN:计算错误,会被传播到最终结果。最坏的情况下,我们会得到
NaN
的结果。
-
-
BigInt类型
尾部加n表示是Bigint类型,用于表示任意长度的整数。
-
String类型
单引号、双引号、反引号。
反引号:功能扩展引号,将变量和表达式包装在${...}中,嵌入字符串。
Javascript没有character类型。
-
Boolean类型
包含true&false
-
null值:无、空、未知
-
undefined值:未被赋值,未进行初始化的对象的默认初始值
-
object类型
用于储存数据集合和更复杂的实体。
-
symbol类型:用于创建对象的唯一标识符
-
typeof运算符:返回参数的类型,运算符&函数形式
-
Math:提供数学运算的内建object
交互
-
alert
显示模态窗,用户处理完当前窗口后才能进行页面其他部分的交互。
-
prompt
显示一个带有文本消息的模态窗口,含有input框和确定、取消按钮。
result=prompt(title,[default]);
default:可选,input框的初始值。
-
confirm
显示一个带有question以及确定和取消两个按钮的模态窗口。
限制:
-
模态窗口的确切位置由浏览器决定。通常在页面中心。
-
窗口的确切外观也取决于浏览器。我们不能修改它。
类型转换
-
显式转换
-
数字型转换
在算术函数和表达式中,会自动进行Number类型转换。
不是有效数字,转换结果为NaN.
基础运算符
基本运算
链式赋值
值的比较
-
严格相等===,在比较时不会做任何的类型转换
-
null和undefined非严格相等为真
-
当使用数学式或其他比较方法时,null/undefined会被转化为数字,undefined转化为NaN
-
undefined不应与其他值进行比较
函数
-
函数声明
function showMessage(parameters){ alert('Hello everyone'); }
-
函数表达式
let sayHi=function(){ alert("hello"); };//函数被分配给了一个变量,相当于创建一个函数,并把它存进变量sayHi //函数表达式结尾有;而函数声明没有
-
函数声明与表达式对比
函数表达式在代码执行到达时被创建,并从那一刻起可用;
函数声明在其被调用前就可以被调用。
函数声明仅在代码块内部可见,外部不可见;但是将函数通过函数表达式赋值给变量后,该变量外部内部都可用。
两者之中应该首先使用函数声明。
-
其他需要注意的点
函数对象的值是一串字符串,即函数的源代码。
返回值:空返回的返回值为undefined.
不要再return与返回值之间添加新行。
-
回调函数
向函数参数传递一个函数,并期望在稍后必要时将其回调。
-
匿名函数
局部的,不分配变量的临时函数。
箭头函数
let func=(arg1,arg2,...,argn)=> expression
===
let func = function(arg1,arg2,...,argn){
return expression;
};
//for example
let sum=(a,b)=> a+b
===
let sum=function(a,b)
{
return a+b;
}
-
如果只有一个参数,还可以省略掉参数外的圆括号,使代码更短。
-
如果没有参数,括号是空的,但应该保留括号。
-
多行函数体可以用花括号括起来之后使用箭头表达式,然后用一个普通的return将需要返回的值进行返回。
运算符
-
空值合并运算符??
-
应用:从一系列值中选择出第一个非null/undefined值,也可以用||