操作符
一元操作符
只操作一个值:自增++,自减--
一元加(+):对数值没有任何影响,对其他数据类型会进行类型转换,同Number()转型函数
一元减(-):把数值变成负数,对其他数据类型会进行类型转换,同Number()转型函数(并且变成其负值)
位操作符
- 按位非(~):返回数值的一补数(对数值取反并减一)
- 按位与(&)
- 按位或( | )
- 按位异或:(^)
- 左移:数值2(二进制10)左移5位,得到64(二进制1 000 000)
let oldValue = 2; //二进制10 let newValue = oldValue << 5; //二级制 1000 000,即十进制64
- 有符号右移(>>)
- 无符号右移(>>>)
布尔操作符
逻辑非(!)
逻辑与(&&)
逻辑或( || )
乘性操作符
乘法操作符(*)、除法(/)、取模(%)
指数操作符
ES7新增,同Math.pow(),(**)
let squared = 3;
squared **= 2;
console.log(squared); // 9
加性操作符
加法操作符(+)、减法、
关系操作符
< , > , =
相等操作符
== , !=
=== , !==
条件操作符
(a? b:c)
赋值操作符P97
逗号操作符
语句
if语句
do-while语句
后测试循环语句,即循环体中的代码执行后才会对退出条件进行求值。(循环体内的代码至少执行一次,先执行,再判断)
let i = 0;
do{
i +=2;
}while(i < 10);
while语句
先判断在执行
let i = 0;
while(i < 10){
i +=2;
};
for语句
先判断,进入循环时执行表达式
for-in语句
一种严格的迭代语句,用于枚举对象中的非符号键属性
for(property in expression) statement
for(const propName in window){
document.write(propName);
}
for-in循环要迭代的变量是null或者undefined,则不执行循环体
for-of语句
一种严格的迭代语句,用于遍历可迭代对象的元素
for(property in expression) statement
for(const el of [2,4,6,8]){
document.write(el);
}
标签语句
break和continue语句
with语句(一般不推荐使用)
将代码作用域设置为特定的对象
应用场景:针对一个对象反复操作,这时候将代码作用域设置为该对象能提供便利
with (expression) statement;
let qs = location.search.substring(1);
let hostName = location.hostname;
let url = location.href;
with(location){
let qs = search.substring(1);
let hostName = hostname;
let url = href;
}
switch语句
跟if语句紧密相关,控制流语句,es中的switch与c语言中的switch语法非常相似
switch(i){
case 25:
console.log("25");
break;
case 35:
console.log("35");
break;
case 45:
console.log("45");
break;
default:
console.log("Other");
}
函数
函数对于任何语言来说都是核心组件,因为他们可以封装语句
函数中的return语句,可以有多个,也可以不带返回值