1. 强制类型转换
1.1 布尔值
以下值使用Booleam()进行强制类型转换时会转为false:
0,'', undefined, null, NaN
2. ==和===运算符
区别:===是严格全等,不会进行类型转换,只有等式两边值和类型均相同时才会返回true;==则限制不那么强,只要类型转换后相等则返回true。
3. 语句(statements)和表达式(expressions)
表达式就是会产生一个值的一段代码 例如
3+4
1991
true && false
语句更像一个被执行的一大段代码,本身不产生值
if(23>10){
const str = '23 is bigger'
}
模板字符只能插入表达式,而不能插入语句
4. 条件运算符(三元运算符)
可以是一个语句 也可以是一个表达式
age >= 18 ? console.log("big man!") : console.log("little boy")
const drink = are>=18? 'wine':'water'
因为可以为一个表达式,所以可以放在模板字符里。
I like to drink ${age>=18? 'wine':'water'}
5. 严格模式
- 在js文件中输入
use strict开启严格模式,在该行代码之后的所有代码都遵循严格模式的规则,通常,直接将该行代码写在文件的开头,则整个js文件都遵循严格模式规则; - 严格模式可以使错误减少,原因有二:其一,严格模式有很多禁止行为;其二,对于一些错误,严格模式写会给出提示。
6. 函数创建
-
函数声明(function declaration) 直接使用function关键字+函数名的形式进行函数声明
function calcAge1(birthyear){ return 2023-birthyear; }函数声明的特性在于,可以在声明之前调用,这个过程叫做提升。
-
函数表达式(function expression) 使用声明变量的方式,创建一个匿名函数,赋值给一个函数变量
const calcAge2 = function(birthyear){ return 2023-birthyear; }函数表达式则不能在声明前调用
-
箭头函数(arrow function)
//简单形式(当输入单一变量时) const calcAge3 = birthyear => 2023 - birthyear; //完整形式 const calcAge3 = (birthyear)=>{ const age = 2023-birthday return age }
7. 数组方法
1.push() 将元素放在数组的末尾,并返回新数组的长度
```js
const friends = ['Michael','Steven','Peter'];
const newLength = friends.push('Jay')//4
```
2. pop() 删除数组的最后一个元素,并返回已删除的元素
-
shift() 删除数组的首个元素,并返回已删除元素
-
indexOf() 返回元素索引值,若查不到则返回-1
-
includes() 查询元素,包含则返回true,不包含则返回false 注:查询本质是全等(===),必须值与类型均相同
8. 对象
特点
元素由键值对组成,每个键名也称为属性,每个键值对的顺序无所谓
获取属性值的方法
- 使用点符号
对象.属性名=属性值 - 使用中括号
对象["属性名"]该方法可以在中括号中使用表达式来进行查询,适用于需要先计算属性名再进行查询的情况
对象存方法
函数同样可以以键值对的形式存在对象中,此时我们称它为这个对象的方法。格式如下
const jonas = {
birthyear :1991 ,
calcAge: function(){
return 2023 - this.birthyear
}
}
可以使用this来指代其本体,在调用时,谁调用,则this指向谁。
jonas.calcAge()//此时this为jonas,则得到结果32
9. 循环
continue 和 break
continue 指 跳过当前循环,继续下一个循环, break 指 终止循环,跳出,继续执行循环外的下一步操作