一、数字类型的用法
false null隐式转换为:0 true隐式转换为:1
1、Number.isNaN函数:
用于判断传入的是否是非数值(NaN)(不会隐式类型转换)
2、Number.isFinite函数:
用来检查一个数值是否非无穷。(有限的) 有限的: 返回true 无限:返回false(不会隐式类型转换)
先判断是否为数字类型,如果不是数字类型直接返回false
Math.PI 返回true
3、Number.parseInt函数 :
parseInt函数:解析一个字符串,返回一个整数。不是数值返回NaN
4、Number.isInteger函数:
用来判断是否是整数。(不会隐式类型转换)
4.00000000返回true是整数
5、Math.trunc函数:
用于去除一个数的小数部分,返回整数部分。(会隐式类型转换)
undefined//NaN
6、Math.sign函数:
用来判断一个数到底是正数 返回1、负数 返回-1、还是零 返回0。(会隐式类型转换)
二、对象的使用
1、对象的属性名和变量名一样,可以省略对象的属性值
2、可以省略 :function(在对象函数中)
3、表达式可以作为对象的属性名
Object.is函数
函数的作用:比较两个值是否严格相等,或者说全等。相当于===
Object.assign(目标对象,源对象)函数
函数作用:将源对象的属性赋值到目标对象上。(会覆盖)
Object.getPrototypeOf函数
函数作用:获取一个对象的prototype属性
Object.setPrototypeOf(实例化对象,{})函数
函数作用:设置一个对象的prototype属性。
三、参数的默认值(解决形参undefined)
1、解构赋值
2、逻辑运算符(重点)
3、赋初值
四、rest参数
rest参数,这是一个新的概念,rest的中文意思是:剩下的部分。
…rest
五、扩展运算符(. . .)
解构赋值:. . . 数组/对象
1、遍历数组
var arr = [10,20,30,40,50]
console.log(...arr)
2、当作数组中的元素
var arr2 =['a',...arr,'b']
console.log(arr2) ;
3、深拷贝
var [...newArr] = arr
console.log(newArr);
newArr.push(60)
console.log(newArr);
console.log(arr);
4、函数的调用
function fn(x, y, z, m, n) {
console.log(x, y, z, m, n);
}
fn(...arr)
5、与解构赋值结合
var[x,...arr1] = arr
console.log(x,...arr1);
6、转换成真正的数组
var str = '我们是Web21期'
console.log(Array.from(str));
console.log([...str]);
六、箭头函数
将function去掉,在()后面加上=>
箭头函数的特点:
1、如果只有一个参数可以省略小括号
2、在函数体中只有return一条语句,return和{}可以省略
3、箭头函数中没有内置对象arguments
4、箭头函数不能写构造函数
5、箭头函数没有原型prototype
6、箭头函数call()方法,apply()方法可以进行调用,但是不会改变this指向
7、箭头函数this指向父作用域(定义它的地方)只有函数才能产生作用域
七、symbol数据类型(唯一值)
Symbol的初衷:解决对象的属性名冲突
1、声明Symbol()
2、Symbol是独一无二的
3、Object.getOwnPropertySymbols函数 获取对象中Symbol属性名
4、Reflect.ownKeys函数 获取所有的属性
5、Object.keys() Object.values() 获取对象中除了唯一值的属性
6、Symbol.for函数
函数作用:根据参数名,去全局环境中搜索是否有以该symbol.for()参数为名的symbol值,有就返回它,没有就以该参数名来创建一个新的symbol值
Symbol.for函数
函数作用:根据参数名,去全局环境中搜索是否有以该symbol.for()参数为名的symbol值,有就返回它,没有就以该参数名来创建一个新的symbol值
for循环
slice
Arrary.from
扩展运算符